Uploaded by O'ktam Abdurahmonov

NAMUNA

advertisement
MUSTAQIL ISHNI BAJARISH UCHUN NAMUNA
Har bir mavzu bo’yicha mustaqil ish hisobotlari quyidagi tarkibga ega bo’lishi
tavsiya etiladi.
№
Mazmuni
Taxminiy
hajmi
1
Mustaqil ish uchun tavsiya etilgan mavzu bo’yicha nazariy 4-5 bet
ma’lumotlar
2
Mavzuga doir amaliy topshiriqlarining yechimlari bo’yicha 7-10
ma’lumotlar:
betgacha
Masalaning qo’yilishi;
Masalaning matematik modeli;
Yechish algoritmi;
Algoritm tahlili;
Dasturlash tilidagi kod matni va dastur natijalari;
Natijalar tahlili (dastur otladkasi).
3
Mustaqil ish mavzusi bo‘yicha xulosalar. O’z-o’zini tekshirish 1-1.5 bet
va baholash bo’yicha nazorat savollariga javoblar tayyorlash.
JAMI:
12-15 bet
Mavzular bo‘yicha qo‘llaniluvchi didaktik va texnik vositalar filial
kutubxonasi va kafedra qoshidagi kompyuter sinflarida mavjud bo‘lib, unda kafedra
professor-o‘qituvchilari
tomonidan
“Algoritmlarni
loyihalash”
fanidan
tayyorlangan o‘quv qo‘llanmalar, uslubiy ko‘rsatmalar, elektron darsliklardan
foydalanish tavsiya etiladi.
Mustaqil ta’lim ishi hisoboti titul varag‘i quyidagi ko‘rinishda bo‘lishi kerak:
O‘ZBEKISTON RESPUBLIKASI RAQAMLI
TEXNOLOGIYALAR VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI
UNIVERSITETI SAMARQAND FILIALI
"Dasturiy injiniring" kafedrasi
№
мustaqil ta’lim ish hisoboti
Fan “ Algoritmlarni loyihalash”
Guruh
Talaba
Rahbar
Samarqand-202_ y.
MUSTAQIL ISHNI BAJARISH NA’MUNASI
1-Mustaqil ish.
1-mavzu: “Algoritmlarni loyihalash va tahlil qilish. Chiziqli va
tarmoqlanuvchi algoritmlar” bo‘yicha mustaqil ish topshiriqlari.
1- TOPSHIRIQ: Quyidagi nazariy savollarga nazariy javob bering
1. Algoritmlarni baholash kriteriyalari haqida ma’lumot bering
2. Algoritmni asimtotik baholash haqida aytib bering
3. O(n) va O(n2) murakkablikdagi baholashlarni taqqoslang
4. Algoritm murakkabligini static va dinamik o’lchovlari haqida ma’lumot
bering.
5. Vaqt va hajm bo’yicha qiyinchiliklar haqida ma’lumot bering
6. Algoritmlarni eng yomon va o’rtacha holatlarda baholash haqida ma’lumot
bering
7. Taqribiy integrallash usuli va aniqligi bo’yicha hisoblash
2- TOPSHIRIQ: Quyidagi masalalar uchun algoritm va dastur tuzing
Amaliy masalalar
1- masala. Ikkita butun musbat a va b sonlar berilgan. Ularning eng katta
umumiy bo’luvchisini topish talab qilinadi. Ya’ni, eng katta butun musbat son topish
kerakki, unga a va b ni bo’lganda butun son chiqsin.
2- masala. Butun sonlardan iborat n ta son berilgan. Shu sonlarni elementlar
miqdori kamayish tartibida chiqarish algoritmi va dasturini tuzing.
t/r
Element soni va miqdori
Tartiblangan massiv
1
5
23 45 34 56 25
56 45 36 25 23
2
10
5 3 -2 -5 0 1 0 5 8 7
8 7 5 5 3 1 0 0 -2 -5
NAZARIY SAVOLLARGA JAVOBLAR
1- nazariy savol: Algoritmlarni baholash kriteriyalari haqida ma’lumot
bering.
Javobi: Algoritmlar sifatini baholash uchun mezonlarni ko’raylik. Mavjud
mezonlar juda taxminlashgan. Masalan, algoritmni bajarishda bajaruvchining xotira
uskunalari hajmi yetarli bo’lmasa, u algoritm yomon deb hisoblanadi. Boshqa
mezon sifatida algoritmning bajarilishi uchun talab qilinadigan vaqtni ko’rsatish
mumkin. Vaqtni baholash bajaruvchining fizik xarakteristikalari hisobga olinishi
kerak. Chunki har bir operatsiya har xil o’zgaruvchilar bilan bajarilganda vaqt ham
har xil bo’ladi. Bunchalik aniq ma’lumotni har bir foydalanuvchi uchun yig’ib
bo’lmaganligi sababli odatda o’rtacha tezkorlik qabul qilinadi. Ketma-ket
bajarilayotgan operatsiyalar sonini aniqlab, uni o’rtacha tezkorlikka ko’paytirsa,
algoritm bajarilishining amalga yaqin bo’lgan vaqtini topishimiz mumkin.
Demak, algoritmlarni baholash uchun ikkita asosiy kretiriya mavjud ekan:
2
- Algoritmni ishlash vaqti bo’yicha baholash;
- Algoritmni bajarish uchun xotiradan egallagan hajmi bo’yicha baholash.
2- nazariy savol: Algoritmni asimtotik baholash haqida aytib bering.
Javobi: Algoritmlarni asimptotik (O()) baholash – algoritmda kiruvchi
ma’lumotlarning bajariladigan amallar soniga ma’lum bir qonuniyatlar asosida mos
qo’yilishidir. Bu qonuniyatlar kvadratik, factorial, logarifmik bo’lishi mumkin.
Agar kiruvchi ma'lumotlarning o'lchamlari oshsa, algoritmning bajarilish
vaqti f(N) funksiyasi bilan bir xil tezlikda oshsa, algoritmda O(f(n)) murakkablik
bor.
Agar kiruvchi ma'lumotlarning o'lchamlari oshsa, algoritmning bajarilish
vaqti f(N) funksiyasi kvadratik tezlikda oshsa, algoritmda O(f(n^2)) murakkablik
bor.
Uch asimptotik belgilar asosan algoritmlarning vaqt murakkabligini ifodalash
uchun ishlatiladi :
1) Θ-notation (teta);
2) O-notation (O);
3) Ω-notation (Omega).
Hisoblash mashinalar tezligi oshishiga qaramasdan, ular yordamida
yechilayotgan masalalar kattaligini oshishini algoritm qiyinligini tahlil orqali
aniqlaydi.
3- nazariy savol:
Javobi:
va hakozo shu tarzda barcha nazariy savollarga javob berilgandan keyin
amaliy masalalarni yeshimlarini quyidagicha bayon qilamiz.
Amaliy masalalar
1-masala. Ikkita butun musbat a va b sonlar berilgan. Ularning eng katta
umumiy bo’luvchisini topish talab qilinadi. Ya’ni, eng katta butun musbat son topish
kerakki, unga a va b ni bo’lganda butun son chiqsin.
Yechimi:
1. Masalaning qo‘yilishi: Ikkita butun musbat a va b sonlar berilgan. Ularning
eng katta umumiy bo’luvchisini topish talab qilinadi. Ya’ni, eng katta
butun musbat son topish kerakki, unga a va b ni bo’lganda butun son
chiqsin.
2. Matematik modeli: Berilgan masalaning yechimi uchun matematik usullar
qo’llaniladi. Bular, sonlarni tub ko‘paytuvchilarga ajratish usuli yoki
Evklid usuli. Dasturlashda samarali bo‘lganligi uchun ushbu masalaga
Evklid usulini qo‘llaymiz. Buni quyidagi video ishlanmadan ko‘rib olish
mumkin: https://youtu.be/0AxkgGfEkgA?si=8zwG61_REFSTK9wH .
3. Algoritmni ishlab chiqish. Samarali algoritmni ishlab chiqish modelni
to’g’ri tanlashga bog’liqdir. Algoritm to’g’ri ishlashi mumkin, lekin u vaqt
va xotira bo’yicha ham samarali bo’lishi kerak.
3
Demak, yuqorida ta’kidlaganimizdek, berilgan masala uchun Evklid
algoritmidan foydalanamiz. Algoritmning asosiy g‘oyasi, berilgan
sonlarning kattasini ketma-ket kichigiga bo’lishga asoslanadi. Ya’ni
Evklid algoritmi quyidagicha:
1-qadam. Berilgan sonlarni toqqoslab ularning kattasini aniqlang;
2-qadam. Katta sonni kichigiga qoldiqli bo‘ling;
3- qadam. Agar qoldiq 0 ga teng bo‘lsa, berilgan sonlarning kichigini
EKUB deb oling va 5-qadamga o‘ting.
4- qadam. Katta son bilan kichik sonni va kichik son bilan qoldiqni joyini
almashtiring va 2-qadamga qayting.
5- qadam. Natijani chop qiling.
(Algoritmni blok-sxema ko’rinishida tasvirlash ham mumkin)
4. Algoritmni to’g’riligini tekshirish. Shu algoritmni tadqiq qilib ko’raylik.
m=119, n=544 butun sonlar berilgan bo‘lsin.
1-qadamda n>m;
2-qadamda n%m = r (544%119=68), ya’ni r=68;
3- qadamda r nolga teng bo‘maganligi uchun 4-qadamga o‘tamiz;
4- qadamda n=m, m=r almashtirishni bajaramiz va 2-qadamga qaytamiz:
- 2-qadamda n%m = 119%68 = 51, ya’ni r = 51;
- yana 4-qadamda n=m, m=r almashtirishni bajaramiz;
- n%m = 68 % 51 = 17, ya’ni r=17;
- yana 4-qadamda n=m, m=r almashtirishni bajaramiz;
- n%m = 51 % 17 = 0, ya’ni r=0;
- oxirgi bo‘lishda qoldiq 0 ga teng bo‘lgani uchun natijani chop qilamiz. Natija
EKUB(119,544) = 17.
5) Dastur Kodi
#include <iostream>
using namespace std;
int main() {
int m, n;
cout << "m = "; cin >> a;
cout << "n = "; cin >> b;
while (a != b) {
if (m > n)
m %= n;
else
n %= m;
if (a == 0)
a = b;
if (b == 0)
b = a;
}
4
cout << a << endl;
return 0;
}
Dasturni tekshirish (Yechim olish)
Xuddi shu tarzda berilgan barcha amaliy masalarning yechimlari
keltiriladi.
Xulosalar
Adabiyotlar
5
Download