O’ZBEKISTON RESPUBLIKASI AXBOROT
TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH
VAZIRLIGI MUHAMMAD AL-XORAZMIY
NOMIDAGI TOSHKENT AXBOROT
TEXNOLOGIYALARI UNIVERSITETI
QARSHI
FILIALI “TELEKOMUNIKATSIYA
TEXNOLOGIYALARI VA KASBIY TA`LIM
“FAKULTETI 2-BOSQICH TT-11_22S-GURUH
TALABASINING“
DASTULASH
” FANIDAN
TAYYORLAGAN
2-MUSTAQIL ISHI
Bajardi : Hayitov. A
Qabul qildi : Xudoyorov. L
Qarshi - 2023
MAVZU: CHIZIQLI JARAYONLARNI TAAHKIL ETISH(ALGORIT
VA DASTUR)
Reja:
1.Algoritm nima.
2.U nechi turga bulinadi.
3.Chiziqli jarayonlarni qanday tashkil etamiz
Algoritm so‘zi buyuk matematik Al
-
Xorazmiyning nomi bilan bog‘liq
bo‘lib, u birinchi bo‘lib arab raqamlaridan foydalangan holda
arifmetik amallarni bajarish qoidasini bayon etdi.Har qanday
qo‘yilgan masalani kompyuterda echish
uchun oldin uning echish
usulini tanlab, keyin
uning algoritmini ishlab chiqish kerak bo‘ladi.
Demak, hech bir masala yo‘qki uning echilish yo‘llarini bilmasdan va
algoritmini tasavvur qilmasdan turib uni kompyuterda echib
bo‘lmaydi.2.Algoritm va uning xossalari
Elektron hisoblash
mashinalarining vujudga kelishiga
qadar algoritmga har xil ta’rif berib
kelindi. Lekin ularning barchasi ma’no jihatdan birbiriga juda yaqin
bo‘lib, bu ta’rif hozirgi kunda quyidagicha talqin qilinadi.Ta’rif.
Algoritm deb,
qo‘yilgan masalani echish uchun ma’lum qoidaga
binoan bajariladigan amallarning chekli qadamlar ketma-ketligiga
aytiladi.Har qanday algoritm ma’lum ko‘rsatmalarga binoan b
ajariladi
va bu
ko‘rsatmalarga buyruq deyiladi.Algoritm quyidagi muhim
xossalarga ega:
Aniqlik va tushunarlilik
–
deganda algoritmdaijrochiga berilayotgan
ko‘rsatmalar ani
q
mazmunda bo‘lishi tushuniladi.
Ommaviylik
–
deganda har bir algoritm
mazmuniga ko‘ra bir turdagi
masalalarning
barchasi uchun ham o‘rinli bo‘lishi tushuniladi.
Natijaviylik
–
deganda algoritmda chekli
qadamlardan so‘ng albatta
natija bo‘lishi
tushuniladi.
Diskretlik
–
deganda algoritmlarni chekli qadamlardan tashkil qilib
bo‘laklash imkoniyati
tushuniladi.
3.Algoritm turlari Algoritmning uchta turi bor: chiziqli, tarmoqlanuvchi
va takrorlanuvchi.
CHiziqli algoritm
–
deb hech qanday shartsiz faqat ketma-ket
bajariladigan jarayonlarga aytiladi.
Tarmoqlanuvchi algoritm
–
deb ma’lum
shartlarga muvofiq
bajariladigan ko‘rsatmalardan
tuzilgan algoritmga aytiladi.
Takrorlanuvchi algoritm
–
deb biron bir shart tekshirilishi yoki biron
parametrning har xil qiymatlari asosida algoritmda takrorlanish yuz
beradigan jarayonlarga aytiladi. Algoritmlarni turli usullarda tasvirlash
mumkin. Masalan: so‘z bilan ifodalash; formulalarda berish;
blok-sxemalarda tasvirlash; dastur shaklida ifodalash va
boshqalar.Algoritmlarni blok-
sxema ko‘rinishda tasvirlash qulay va
tushunarli
bo‘lgani uchun ko‘p ishlatiladi. Bunda algoritmdagi har bir
ko‘rsatma o‘z shakliga ega. Masalan: parallelogramm ko‘rinishdagi
belgi ma’lumotlarni kiritish va chiqarish; to‘g‘ri to‘rtburchak belgisi
hisoblash jarayonini; romb belgisi shartlarning tekshirilishini
bildiradi.Hayotimizda algoritmlarni turli sohalarda ba’zan bilgan
holda ba’zan esa bilmagan holda ishlatamiz. Algoritmlar faqat
matematik xarakterga ega bo‘lmasdan ularni
oddiy hayotiy
turmushimizda ham ko‘p qo‘llaymiz. Masalan, ovqat tayyorlash, cho
y
damlash, biror berilgan ishni bajarish va boshqa. Bu ishlarni
bajarishda ma’lum bo‘lgan aniq ko‘rsatmalarni ketma ket bajaramiz.
Agar bu ko‘rsatmalar aniq
bir ketma ketlik tartibida bajarilmasa
kerakli natijani olaolmaymiz. Misol tariqasida matematik
xarakterga ega bo‘lmagan butelbrod tayyorlash algoritmini ko‘rib
chiqaylik. Bunda boshlang‘ich berilganlar: non, kolbasa va pishloq.
Natija: butelbrod. Butelbrod tayyorlash algoritmi:
1.Non bo‘lagini kesib olish;
2.Kolbasa va pishloq bo‘lagini kesib olish;
3.Kolbasa va pishloq bo‘lagini non bo‘lagi orasiga qo‘yish.
Agar bu jarayonning ketma ketlik o‘rinlari almashsa yoki biror bir
bosqich amalga oshirilmasa natija bo‘lmaydi.Algoritmik tillar
Masalani echish algoritmi ishlab chiqilgandan so‘ng dastur tuziladi.
Dastur
–
bu berilgan algoritmga asoslangan biror bir algoritmik tilda
yozilgan ko‘rsatmalar, ya’ni buyruqlar yoki operatorlar
to‘plamidir. Dasturlash –
esa bu dastur tuzish jarayoni bo‘lib, u
quyidagi bosqichlardan iboratdir:
1.dasturga bo‘lgan
talablar;
2.qo‘yilgan masala algoritmini tanlash yoki ishlab chiqish;
3.dastur kodlarini (matnlari, buyruqlarni) yozish;
4.dasturni to‘g‘rilash va test o‘tkazish.
Hozirgi kunda juda ko‘plab algoritmik tillar mavjud. Ularga
dasturlash tillari deb ataymiz. Algoritmik til
–
algoritmlarni bir
xil va aniq yozish uchun ishlatiladigan belgilashlar va qoidalar
tizimidir. Algoritmik til oddiy tilga yaqin bo‘lib u matematik
belgilarni o‘z ichiga oladi. Tuzilgan algoritmlarni to‘g‘ridan
-
to‘g‘ri mashinagaberib.bo‘lmaydi, shu sababli yozilgan
algoritmni biror bir algoritmik tilga o‘tkazish zarur. Harq
anday
algoritmik til o‘z qo‘llanilish sohasiga ega.Masalan,
muxandislik hisob ishlarini bajarishda Paskal, Beysik va
Fortran. Iqtisod masalalarini echishda Paskal va Kobol.
Mantiqiy dasturlash
uchun Prolog va boshqalar. O‘quv
jarayonlari uchun Beysik, Paskal va boshqalar. Paskal, Fortran
va Kobol tillari universal tillardan hisoblanadi. Assembler tili
mashina tiliga ancha
yaqin til bo‘lib o‘rta darajadagi tildir.
Algoritmik til
inson tillariga qancha yaqin bo‘lsa, u tilga yuqori
darajali til deyiladi. Mashina tili esa eng pastki darajali tildir.
Masalalarni echish bosqichlari Kompyuterda masalani echish
bosqichlari quyidagilar:
1.Masalani qo‘yish va uning matematik
modelini
ishlab chiqish. Ushbu bosqichda boshlang‘ich
malumotlar tarkibi aniqlanadi. Masalani qo‘yish
odatda
echiladigan masalaning asosiy
xususiyatlarini og‘zaki tavsiflash
bilan tugallanadi
va so‘ngra, masala matematik modeli
yoziladi. 2.Echish usulini tanlash. Masala matematik
ifodalanib bo‘lgandan so‘ng uni echish usuli tanlanadi. Bunda
izlanayotgan natijalarning
boshlang‘ich ma’lumotlarga
bog‘liqligini aniqlaydi. Hozirgi zamon hisoblash matematikasi
fan va
texnikaga oid turli masalalarni echish uchun ko‘plab sonli
usullarga ega. 3.Masalani echish algoritmini ishlab chiqish. Bu
bosqichda kompьyuterda masalani echish uchun bajariladigan
amallar (buyruqlar) ketma-ketligi tavsiflanadi. Biz buni
algoritmlash deb ataymiz. 4.Dasturlash. Bunda algoritm biror
algoritmik tilga ko‘chiriladi.
5.Dasturni kiritish va xatolarini
tuzatish.6.Masalani bevosita kompьyuterda echish va
natijalarni tahlil qilish. Bunda dasturda kerakli boshlang‘ich
qiymatlar berilib kompьyuterda natija olinadi va tahlil qilinadi.
Bu bosqichda agar kerak bo‘lsa algoritm v
a dastur
modernizatsiya qilinishi ham mumkin. Yangi olingan
ma’lumotlar asosida kerakli xulosalar ishlab chiqiladi. Bu
ma’lumotlar qo‘yilgan masalani turlicha tahlil qilishga,
murakkab
jarayonlarni
tushunishga,
olamshumul
yangiliklarning ochilishiga, yangi nazariyalarning, texnika
mo‘‘jizalarining yaratilishiga xizmat qiladi. Umuman olganda
«Model-algoritm-dastur»
uchligi
modellashtirishning
intelektual mag‘zini tashkil etadi, bunday uchliksiz
kompyuterda murakkab masalalarni echishda muvaffaqiyatga
erishib bo‘lmaydi.
MAVZU: ICHMA-ICH JOYLASHGAN SIKL JARAYONLARNI TASHKIL
ETISH
REJA:
1.ICHMA-ICH JOYLASHBGAN SIKL JARAYONI
2.SIKL TANASI HAQIDA
3.REKURENT ALGORITMLAR HAQIDA
Dastur
tuzish jarayonida shunday hollar yuz bеrishi mumkinki, bir sikl
ichida boshqa bir siklni bajarishga to`g`ri kеladi. siklni tanasini
tashkil etuvchi opеratorlar guruhi o`z navbatida sikl opеratori
bo`lishi mumkin. Ayniqsa ko`p o`lchamli massivlarni elеmеntl
arini
olish uchun indеksning qiymatlarini o`zgartirishga to`g`ri kеladi.
Bunday sikllar ichma-
ich joylashgan sikllar dеyiladi. Ichma–
ich
joylashgan takrorlanuvchi jarayonlar algoritmini takrorlash
jarayonlarining algoritmidan osongina hosil qilish mumkin.
Faqat ketma-ket bajariladigan amallardan tashkil topgan
algoritmlarga - chiziqli algoritmlar deyiladi. Bunday algoritmni
ifodalash uchun ketma-ketlik strukturasi ishlatiladi. Strukturada
bajariladigan amal mos keluvchi shakl bilan ko‘rsatiladi. Chiziqli
algoritmlar blok-sxemasining umumiy strukturasini quyidagi
ko‘rinishda ifodalash mumkin
Bosh. n-amal
Kiritiladigan qiymat chop etish
1-amal tamom
2-amal
Agar hisoblash jarayoni biror bir berilgan shartning bajarilishiga
qarab turli tarmoqlar bo‘yicha davom ettirilsa va hisoblash
jarayonida har bir tarmoq faqat bir marta bajarilsa, bunday hisoblash
jarayonlariga tarmoqlanuvchi algoritmlar deyiladi. Tarmoqlanuvchi
algoritmlar uchun ayri strukturasi ishlatiladi. Tarmoqlanuvchi
struktura berilgan shartning bajarilishiga qarab ko‘rsatilgan
tarmoqdan faqat bittasining bajarilishini ta’minlaydi.
Takrorlanuvchi algoritmlar. Agar biror masalani yechish uchun
tuzilgan zarur bo‘lgan amallar ketma
-
ketligining ma’lum bir qismi
biror parametrga bog‘liq ko‘p marta qayta bajarilsa, bunday algoritm
takrorlanuvchi algoritm yoki siklik algoritmlar deyiladi.
Takrorlanuvchi algoritmlarga tipik misol sifatida odatda qatorlarning
yig‘indisi yoki ko‘patmasini hisoblash jarayonlarini qarash mumkin.
Ichma-
ich joylashgan siklik algoritmlar . Ba’zan, takrorlanuvchi
algoritmlar bir nechta parametrlarga bog‘liq bo‘ladi. Odatda bunday
algoritmlarni ichma-ich joylashgan algortmlar deb ataladi.
Ichma-ich joylashgan takrorlanuvchi jarayonlar asosan ikki va undan
yuqori bo’lgan o’lchovli massivlarda kuzatiladi.
Ichma-ich joylashgan siklik algoritmlar.
Ba’zan, takrorlanuvchi algoritmlar bir nechta parametrlarga bog‘liq
bo‘ladi. Odatda bunday algoritmlarni ichma
-ich joylashgan
algortmlar deb ataladi.
Rekurrent algoritmlar. Hisoblash jarayonida ba’zi bir algoritmlarning
o‘ziga qayta murojaat qilishga to‘g‘ri keladi. O‘ziga–o‘zi murojaat
qiladigan algoritmlarga rekkurent algoritmlar yoki rekursiya deb
ataladi.
Bunday algoritmga misol sifatida Fibonachchi sonlarini keltirish
mumkin.
berib.bo‘lmaydi, shu sababli yozilgan algoritmni
biror bir algoritmik tilga o‘tkazish zarur.
Ichma-ich
joylashgan takrorlanuvchi jarayonlarDastur tuzish jarayonida
shunday hollar yuz bеrishi
mumkinki, bir sikl ichida boshqa bir siklni
bajarishga to`g`ri kеladi. Siklni tanasini tashkil etuvchi opеratorlar
guruhi o`z navbatida sikl opеratori bo`lishi mumkin. Ayniqsa ko`p
o`lchamli massivlarni elеmеntlarini olish uchun indеksning
qiymatlarini o`z
gartirishga to`g`ri kеladi. Bunday sikllar ichma
-ich
joylashgan sikllar dеyiladi. Ichma–
ich joylashgan takrorlanuvchi
jarayonlar algoritmini takrorlash jarayonlarining algoritmidan
osongina hosil qilish mumkin.
Masalalarni tahlil etish jarayonida algoritmdagi ba’zi ko’rsatmalar
takroran bajarilishini kuzatish mumkin. Hayotimizda ham juda ko‘p
jarayonlar tak- rorlanadi. Masalan, darslarning har hafta
takrorlanishi, har kuni nonushta qilish yoki maktabga borish va
hokazo. Ko‘rsatmalari takroriy bajariladigan algoritmlar
takrorlanuvchi algoritmlar deb ataladi
Odatda, yig’indi uchun boshlang’ich qiymat (inglizchadan SUMM,
ya’ni yig’indi ma’noli so’zning bosh harfi) S:= 0 va ko‘paytma uchun
(inglizchadan PRODUCT, ya’ni ko’paytma ma’noli so‘zning bosh harfi)
P: = 1 deb olinadi, chunki bu qiym atlar, ya’ni 0 va I l
ar, mos ravishda,
yig’indi va ko‘paytmaning natijasiga ta’sir etmaydi: 1
- qadamda I := 1
bo‘lsin: S ; = s + l = 0 + I = l , P : = P * I = l * l = l; 2
- qadam: 1 := I + 1
= I + 1 = 2: S : = S + I = l + 2 = 3, P: = P * I = 1 * 2 = 2; 3- qadam: l :=
I + 1 = 2 + I = 3: S : = S + I = 3 + 3 = 6, P : = P * l = 2*3 = 6; 4-
qadam: I := 1 + 1 = 3 + 1
—
4: S := S + I = 6 + 4 = 10, P := P * 1 = 6 *
4 = 24. Algoritmikada, matematikada bunday bo’lishi mumkin emas,
1 = 1 + 1 deb yozilishi mumkin. Bu yozuvda avval o ‘ng tom
ondagi
qiymat hisoblanib, so‘ng bu qiymat chap tomondagi nomning qiymati
deb olinadi.
MAVZU:
BIR O’LCHOVLI MASSIVLARNI FUNKSIYA PARAMETRI
SIFATIDA QO’LLANILISHI
REJA:
1.MASSIVLAR
2.BIR O'LCHOVLI MASSIVLAR
3.BIR O'LCHOVLI MASSIV DASTURI
Dasturda ikki asosiy tur ma'lumot strukturalari mavjuddir. Birinchisi
statik, ikkinchisi dinamikdir. Statik deganimizda hotirada egallagan
joyi o'zgarmas, dastur boshida beriladigan strukturalarni nazarda
tutamiz. Dinamik ma'lumot tiplari dastur davomida o'z hajmini,
egallagan hotirasini o'zgartirishi mumkin. Agar struktura bir hil
kattalikdagi tiplardan tuzilgan bo'lsa, uning nomi massiv (array)
deyiladi. Massivlar dasturlashda eng ko'p qo'laniladigan ma'lumot
tiplaridir. Bundan tashqari strukturalar bir necha farqli tipdagi
o'zgaruvchilardan tashkil topgan bo'lishi mumkin.
Buni biz klas (Pascalda record) deymiz. Masalan bunday strukturamiz
ichida odam ismi va yoshi bo'lishi mumkin. Bu bo'limda biz
massivlar bilan yaqindan tanishib o'tamiz. Bu bo'limdagi
massivlarimiz C uslubidagi, pointerlarga (ko'rsatkichlarga) asoslan
strukturalardir. Massivlarning boshqa ko'rinishlarini keyingi
qismlarda o'tamiz. Massivlar hotirada ketma-ket joylashgan, bir
tipdagi o'zgaruvchilar guruhidir. Alohida bir o'zgaruvchini ko'rsatish
uchun massiv nomi va kerakli o'zgaruvchi indeksini yozamiz. C++
dagi massivlardagi elementlar indeksi har doim noldan boshlanadi.
Massiv bir o`lchamli deyiladi, agar uning elementiga bir indeks
orqali murojaat qilish mumkin bo`lsa.
Bir o`lchamli massivni e`lon qilish quyidagicha bo`ladi:
[ elementlar_soni ] = { boshlang'ich qiymatlar };
Quyida massivlarni e`lon qilishga bir necha misollar keltirilgan:
1) float a[5];
2) int m[6];
3) bool b[10];
1) a elementlari haqiqiy sonlardan iborat bo`lgan, 5 ta elementdan
tashkil topgan
massiv. Indekslari esa 0 dan 4 gacha bo`lgan sonlar
float a[5];
Massiv a[0] a[1] a[2] a[3] a[4]
elementilari qiymati 4 -7 15 5.5 3
2) m elementlari butun sonlardan iborat bo`lgan, 6 ta elementdan
tashkil topgan
massiv. Indekslari esa 0 dan 5 gacha bo`lgan sonlar.
int m[6];
Massiv m[0] m[1] m[2] m[3] mas2[4] mas2[5]
elementilari qiymati 2 -17 6 7 13 -3
3) b elementlari mantiqiy qiymatlardan (true, false ) iborat bo`lgan
10 ta elementdan tashkil topgan massiv. Indekslari esa 0 dan 9
gacha bo`lgan sonlar.
Massiv elementlariga murojaat qilish oddiy o`zgaruvchilarga
murojaat qilishdan biroz farq qiladi. Massiv elementiga murojaat
qilish uning indeksi orqali bo`ladi.
a[1] = 10; a massivining 1
–
elementi 10 qiymat o’ zlashtirsin;
cin >> a[2]; a massivining 2
–
elementi kirtilsin;
cout << a[3]; a massivining 3
–
elementi ekranga chiqarilsin;
Massivni e'lon qilishda uning elementlariga boshlang'ich qiymat
berish mumkin va buning bir nechta usuli mavjud.
MAVZU: MATRITSALARNI FUNKSIYA PARAMETLARI SIFATIDA
QO'LLANISHI
REJA:
1
.IKKI O'LCHAMLI STATIK MASSIV
2.MATRITSA HAQIDA
3.IKKI O'LCHAMLI MASSIV DASTURI
Agar masalalarda satrlar va ustunlar soni aniq ko‘rsatilmagan bo‘lsa,
ularni 2 dan 10
gacha bo‘lgan oraliqda o‘zgartirish tavsiya etiladi.
Matritsaning boshlang‘ich qiymati 1
- va 2-
indekslari 1 bo‘lgan
elementida joylashadi. Matritsaga kiritish va chiqarish satrlar
bo‘yicha amalga oshiriladi. m o‘lchamli kvadrat matritsa 2 o‘lchovli
massiv hisoblanadi. Matritsalarni tashkil eish va ularning
elementlarini chiqarish. Matritsalarni tashkil etish masalalaridagi
natijaviy matritsa o‘lchami 10X10 dan oshmaydi.
Ikki o`lchamli statik massivlarni e`lon qilish.
toifa massiv_nomi [massiv_satrlari_soni][massiv_ustunlar i_soni];
Ikki o`lchamli statik massivlarning e`lon qilinishida, bir
o`lchamlidan farqi, massiv nomidan keyin qirrali qavs ichida ikkita
qiymat yozilganligidadir. Bulardan birinchisi, satrlar sonini, ikkinchisi
esa ustunlar sonini bildiradi. Ya'ni ikki o'lchamli massiv elementiga
ikkita indeks orqali murojaat qilinadi. Ikki o`lchamli massivlar
matematika kursidan ma`lum bo`lgan matritsalarni eslatadi.
Ikki o'lchamli massiv e'loniga misol:
int a[3][3], b[2][4];
A matritsa B matritsa
a00 a01 a02 b00 b01 b02 b03
a10 a11 a12 b10 b11 b12 b13
a20 a21 a22
A matritsa 3 ta satr, 3 ta ustunga ega;
B matritsa 2 ta satr, 4 ta ustunga ega;
Ikki o'lchamli massivlarda 1 - indeks satrni, 2 - indeks ustunni
bildiradi.
Birinchi satrning dastlabki elementi a10
–
a biru nol element deb
o`qiladi. a o`n deyilmaydi.
m ta satr va n ta ustunga ega bo`lgan massivga (mxn) o`lchamli
massiv deyiladi. Agar
m=n (satrlar va ustunlar soni teng) bo'lsa kvadrat massiv
deyiladi.Massiv bir o`lchamli deyiladi, agar uning elementiga bir
indeks orqali murojaat qilish mumkin bo`lsa.
Bir o`lchamli massivni e`lon qilish quyidagicha bo`ladi:
[ elementlar_soni ] = { boshlang’ich qiymatlar };
Quyida massivlarni e`lon qilishga bir necha misollar keltirilgan:
1)
Dostları ilə paylaş: |