b o 'ls a , tak ro rla sh tan asin i tas h k il e tu v c h i o p e ra to r la r is h layd i va y a n a < s h a rt> te k s ir ila d i. Bu ja ra y o n shart " y o lg 'o n " q iy m a t q ab u l q ilg u n g a q a d a r d av o m e la d i.
D o U n t i l < s h a r t >
< o p e r a t o r > L o o p
M a z k u r tak ro rla m sh ope rat or i q u y id a g ic h a is h la y d i : a w a l < s b a r t > te k s h ir ila d i, agar u n in g q iy m a ti " y o lg 'o n " b o ls a , ta k ro rla s h tan a s in i ta s h k il e tu v c h i o p e ra to r la r is h la y d i va y a n a < s h a rt> te k s ir ila d i B u ja r a y o n shart “rost" q iy m a t q ab u l q ilg u n g a q a d a r d a v o m e ta d i.
W h i le < s h a r t >
< o p e r a t o r > W e n d
B u y e r d a W h i le ( t o k i ) va W e n d x iz m a t c h i s o ' z la r ; < s h a r t> - o d d iy y o k i m u ra k k a h m a n t iq iy ifo d a ; < o p e r a t o r > - ta k ro rla s h ta n a s in i ta s h k il e tu v c h i o p e r a to r y o k i o p e r a t o r la r k e t m a - k e t l ig i . M a z k u r ta k r o r la n is h o p e r a to r i q u y id a g ic h a ishlaydi: a w a l < s h a rt> te k s h ir ila d i, agar u n in g q iy m a ti " ro s t"
b o 'ls a , tak ro rla sh tan asin i tas h k il e tu v c h i o p e ra to r la r is h la y d i, v a y a n a < s h a rt> te k s ir ila d i. Bu ja ra y o n shart " y o lg 'o n " q iy m a t q ab u l q ilg u n g a q ad ar d a v o m e ta d i .
222
S ta a rt b o 'y ic ta a ta k ro r la s h
P A S C A L va D E L P H I
W b i le < s h a r t > D o < o p e r a t o r > ;
B u y e r d a W h i le ( to k i) v a D o x iz m a tc h i so z la r; < s h a r t > - o d d iy y o k i m u ra k k a b m a n tiq iy ifo d a; < o p e r a t o r > - ta k ro rla s h tan asin i tas h k il e tu v c h i o p e ra to r y o ki o p e ra to r la r k e tm a - k e t l ig i . A g a r ta k ro rla s h tan asida o p e ra to r la r k c tm a - k e t l ig i y o zils a , u la r b eg in b ila n b o s h la n ib , end ; b ila n y a k u n la n a d i.
" M a z k u r t a k r o r l a n i s h o p e r a t o r i q u y id a g ic h a is h la y d i : a v v a l < s h a r t > te k s h ir ila d i, agar u n in g q iy m a t i " ro s t" b o ‘ lsa, tak ro rla sh tan asini tas h k il etu v c h i o p e ra to r la r is h layd i v a y a n a < s h a rt> te k s ir ila d i.
Bu ja ra y o n shart “y o lg ‘ on" q iy m a l q ab u l q ilg u n g a q ad a r d a v o m e ta d i.
R e p e a t
< o p e r a to r > U n t i l < s h a r t >
B u y e r d a R e p e a t ( t a k r o r l a ) v a U n t i l x iz m a t c h i s o ' z la r b o ‘ l i b , R e p e a t - tak ro rlash b o s h i, U n t i l - ta k ro rla s h o x ir in i b ild ir a d i, < s h a rt> - m a n tiq iy ifod a;
< o p e r a to r > - ta k ro r la s h ta n a s in i ta s h k il e tu v c h i o p e ra to r y o k i o p e ra to r la r k e tn ia - k e t lig i . A g a r ta k ro rla s h ta n a s id a o p e ra to r la r k e tm a - k e t lig i y o z ils a , u la r b e g in b ila n b o s h la n ib , end ; b ila n y a k u n la n a d i . U la r < s h a rt> b a ja rilm a g u n c h a (ro st q iy m a t q ab u l q ilm a g u n c h a ) ta k ro r la n a v e ra d i.
1 0 . 5 - t n a s a la
lik 1 danaNagacha tartiblangan aylana shaklida joylashtirilgan likobchal rg bbittadanvolma qo‘yilgan. Mirkamol sanoqni i I- yuobchadan -oshladi a aylanaobo'ylab soat mili yo'nalish da rib, har K olmani yedi. San qda olmasi yeyilgan likobcha
ishtirok etmaydi. Agar Mirkamol olmaga to'ygandan keyin M
ta olma qolgan bo'lsa, qaysi likobchalardagi olmalar yeyilganini
topuvchi dastur tuzing. Bu masalani algoritmik tilimizda, BASIC, PASCAL, DELPHl da o‘zingiz hal eting.
da Takrorlanishioperatorini tushunib olish uchun avvalgi boblar-
gi masalalarn yechib ko‘rishni maslahat beramiz.
Protseduralar
P A S C A L va D E L P H l
P ro c e d u re < p ro ts e d u ra o o m i> ( < o ‘ zg a ru v c h ila r> :
< o ‘ zg aru vch ilar t u r i> ) ;
P ro ts e d u ra b u k ic h ik q is m d asturi b o ‘ l ib , asosiy d asturnin g b eg in x iz m a tc h i
s o 'z id a n o ld in y o z ila d i.P ro ts e d u ra h a m d astu r k a b i begin x iz m a tc h i so 'zi b ila n b o sh lan ad i va end; b ila n tu g a yd i.
223
Protsedurada ham asosiy dastur kabi lokal (ichki) o'zgaruvchilar, o'zgarmaslar va nishonlardan foydalanish mumkin. Bunda asosiy dasturdagi (global) o'zgaruvchiiarning qiymatlari o'zgarmasdan qoladi Agar
dan oldin var xizmatchi so'zi qo'yilsa, berilgan o'zgaruvchilarning qiymatlari asosiy dasturga o'zgarib qaytishi mumkin.
BASIC
Gosub
BASIC daprotseduralar nishon orqali o'tiladigan qism dastur ko'rinishida tashkil etiladi. Bunda asosiy dasturdagi o'zgaruvchilar qism dasturida ham foydalaniladi vaqiymati o'zgarishi mumkin. Protseduraasosiy dasturdan keyin yoziladi. Shu sababli asosiy dastur oxirida END operatori yozilishi shart' Protsedura oxirida RETURN operatori yoziladi.U boshqaruvni asosiy dasturdagi GOSUB operatoridan keyingi operatorga uzatadi.
10.6-masala
PABeriigan M va N sonlarning EKUB ini hisoblash dasturini
SCAL da tuzing.
yo Yechim. Dasturni Evklid algoritmiga asoslangan protsedura
rdamida tuzamiz.
varjavob,m,n:integer; procedure ekub(a,b:integer); begin
if a > b then ekub(a-b,b); ifb > a then ekub(a,b-a); if a—b thenjavob:—b;
end; begin
readln(m,n);
ekub(m,n); writeln(javob); end.
o'z Agar bu protseduraga e'tibor bergan bo'lsangiz, protsedura ini o‘zi chaqirmoqda, ya’ni biz tuzgan dasturimizda rekursiv
protsedura ishtirok etmoqda. QoMIanmada berilgan ma'lumotlar yordamida dasturlashning boshlang‘ich qismi bilan tanishdingiz. Murakkab masalalarini hal etish uchun bu ma'lumotlar kamlik qiladi. Lekin murakkab dasturlar ham shu qismlar asosida tuziladi. Algoritmlar va dasturlash tillarining turlari nihoyatda ko‘p bo‘lganligi sababli har bir yo'nalishdagi algoritmlar yoki dasturlash tillarining imkoniyatlarini ochib berish uchun alohida
224
qoMlanmalar kerak bo'ladi. Dasturlashni chuqur o'rganmoqchi baMsangiz bu kabi qoMlanmalarni o‘rganib chiqing.
Nazorat savollari va topshiriqlar
1. Dasturdeb nimaga aytiladi?
2. Dasturiash tili deganda nimani tushunasiz?
3. Dasturlash tilining asoschisi deh kim tan olingan ?
4. Quyi va yuqori darajadagi dasturlash tillari qanday xususiyatlari bilan a 'zaro farqlanadi?
5. Bugungacha ma 'lum bo ‘Igan eng qadimgi algoritmda qanday masala hal qilingan ?
6. Dasturlash tillari elektron hisoblash mashinalarining turlariga bog‘liq bo ‘ladimi? Javobingizni asoslang.
7. Yuqori darajadagi dastlabki dasturlash tilining nomi nima va u kim tomonidan yaratilgan ?
8. Dasturlash tilining atifbosi haqida so ‘zlab bering.
9. Operator nima?
10 O ‘zgarmas va o ‘zgaruvchan miqdorlar haqida so ‘zlab bering.
11. Dastur qanday qismtardan tashkii topadi?
12. Dasturning tavsiflash qismida nimalar tavsiflanadi?
13. Miqdorlar qanday turdagi qiymatlami qabul qilishi mumkin ?
14. Beigili o ‘zgarmas deganda nimani tushunasiz? Misoliar keitiring.
15. Satrli o ‘zgarmaslaming belgili o ‘zgarmaslardan farqi nimada ?
16. Sonli o'zgarmaslarning qanday turiarini hilasiz?
17. Mantiqiy o ‘zgarmaslar qanday qiymarlarni qabul qilishi mumkin ?
18. O ‘zgaruvchilaming o ‘zgarmaslardan farqi nimada ?
19. O'zgaruvchilarni tavsiflash uchun Paskalning qaysi xizmatchi so ‘zidan foydalaniladi?
20. Sonlio'zgaruvchilarnecha turga bo'linadi?
21. Butun sonli o ‘zgaruvchilarning turlariga misollar keltiring.
22. Haqiqiy sonli o ‘zgaruvchilaming turlariga misollar keltiring.
23. Belgili o 'zgaruvchilar qanday tavsiflanadi ? Misollar keltinng.
24. Satrli o'zgaruvchilar qanday tavsiflanishi mumkin? Misollar keltiring.
25. Hayotda uchraydigan jadval ko ‘rinishidagi miqdoriarga misollar keltiring
26. Chiziqli massiv qanday o ‘lchovlarda bo ‘ladi?
27. Massivda indeks nima uchun zarur?
28. Massiv elementlarining indekslari qanday qiymatlar qabul qilishi mumkin ?
29. Jadval ko ‘rinishidagi miqdoriaming turiarini qanday ajratish mumkin ?
30. Qandayfunksiyalar standartfunksiya deyiladi ?
31. Standartfunksiyalaming odatdagi va dasturlash tilida yozilishining qanday farqi bor?
32. Standartfunksiyalarning qaysilarini bilasiz?Sanab bering.
33. Algebraik ifodalar nimalardan tashkil topadi?
34. Arifmetik amallaming bajarilLsh tartibi qanday?
15 — Azamatov, A.R. 225
35 Bimr i/adada birxil amallar qatnashsa, ulamirtg bajarilish tartihi qanday bo 'ladi ?
36. Amallarni bajarish tartibini o ‘zgartirish uchun nimalardan foydalaniladi?
37. Input, Print, Read, Write so'zlari qanday ma'no beradi?
38. Ma 'lumotlarni muloqot hotida kiritish operatorining vazifasini aytib bering.
39. Ma 'lumoflarni kiritish operatorining necha xilkn rinishi hor? Ularningfarqi nimada?
40. O ‘zgaruvchilaiga qiymat berishda o ‘zlashtirish operatorining qulaylik tamonini tushuntiring.
41. O'zgaruvchilarga qiymat berishda kiritish operatorining qulaylik tomonini tushuntiring.
42. O ‘tish operatori nima uchun qo ‘Uaniladi?
43. 0 ‘tish operatorining umumiy ko ‘rinishi qanday?
44. Dasturda nishonlar nima uchun qollaniladi?
45. Nishonlar qo ‘llanilgan dasturda o ‘tish operatori qo ‘llanilmasligi mumkinmi?
46. 0 ‘tish operatori qo'llanilgan dasturda nishonlar qo ‘llanilmasligi mumkinmi?
47. Tarmoqlanish operatori nima uchun qo ‘llaniladi?
48. Tarmoqlanish operatorida operatnrlar ketma-ketligi ishtirok etsa, ular qanday so 'zlar orasida yoziladi ?
49. Tarmoqlanish operatorining qisqa va to 'liq ko ‘rinishlari haqida nimalar bilasiz?
50. Qaysi operatordan keyin nuqtali veigul yozilmaydi ?
51. Takrorlanuvchi algoritmlarga misollar keltiring.
52. Parametrli lakrorlash operatorining ko 'rinishi qanday ?
53. Parametrii takrorlash operatori qachon qo ‘llaniladi?
54. Takrorlash parametri qanday qiymatlami qabul qitadi?
55. Takrorlash parametrining qiymatlari chegaralanganmi?
56. Takrorlash operatorini qo ‘llanilishini tushuntiring.
57. Qanday holatda Do yoki Downto xizmatchi so ‘zlari qo ‘tlaniladi?
58. Shart ho ‘yicha takrorlash operatorining parametrli takrorlash operatoridan asosiyfarqi nimada ?
59 Shart bo yicha rakrorlash operatorlardan qaysilarini hilasiz?
60. While operatorining qo ‘llanilishini tushuntiring. 6 1. Repeat operatorining qo ‘Uanilishini tushuntiring
62. Takmriash operatorlarini qo ‘llash qutay ba ‘Igan hollarga mos qilib tushuntiring.
63. Qanday holda takroriash tanasida begin va end; yozilishi zarur?
Qo‘shimcha masalaiar
DT-10.1. Uchburchakning tomonlari a, b va ular orasidagi burchak aberilgan. Uchburchakning yuzini hisoblash dasturini tuzing.
DT-10.2. Quyida berilgan shakllaming shtrixlangan sohalarining yuzalarini hisoblash dasturini tuzing.
DT-10.3. Istagan butun sonni 17 ga qoldiqsiz bo'linishi yoki bo'linmasligini aniqlovchi dastur tuzing.
226
a e a
DT-10.4. ax+b= 0 chiziqli cenglamaning yechish dasturini tuzing.
DT-10.S. Yildagi oylarning kunlari miqdorini aniqlab beruvchi dastur tuzing.
DT-10.6. Oldingi dastur ko‘magida tug'ilganingizdan beri necha kun yashaganingizni aniqlang.
DT-10.7. Kvadratlari herilgan natural Nsondan katta bo‘lmagan natural sonlami chiqamvchi dastur tuzing.
DT-10.8. fli, fl2 ..., fliv butun sonlar kctma-ketligi berilgan. Ularni ketma-ket qo'shib borib, yig‘indi berilgan Wbutun sondan ortishi bilan ekranga chiqaruvchi dastur tuzing. Agar barcha sonlar yig‘indisi N dan ortmasa, bu haqda xabar chiqarilsin.
DT-10.9. y= x • sin x funksiyaning qiymatlarini \-n. n\ oraliqda 0,3 qadam bilan hisoblash dasturini tuzing
DT-10.10 Quyidagi yig'indining qiymati berilgan M natural sondan ortiq bo'iguncha hisoblash dasturini tuzing:
I l 1 ( - l ) A,+I
y 3 I0+ 21 " * N*{2*N +l)
DT-10.11. Awalgi masalani parametrli shart bo'yicha takrorlash operatorlari yordamida yeching.
DT-10.12. Hisoblash dasturini tuzing:
DT-10.13. Hisoblash dasturini tuzing
n
DT-10.14. n natural son berilgan. p = (1-1/22)(1 -1 / 32)...(1 -1 /n 2) ni hisoblash dasturini tuzing, bunda n>2.
227
DT-10.15. n natural son berilgan. ko'paytmani
hisoblash dasturini tuzing.
DT-10.16. n natural son berilgan. P= + j |l + p ’| | l + _T ni hisoblovchi dastur tuzing.
DT-10.17. n natural son berilgan. P = ko'paytmani
2 4 6 2*n
topuvchi dastur tuzing.
DT-10.18. n natural son beriigan. ^ = t1*2T*T3* n " ko'paytmani topuvchi dastur tuzing.
DT-10.19. p =x~ \ +\ ~ ‘+ 9 ^9 ToSoO y^8‘>ndini hisoblovchidastur tuzing.
DT-10.20. N natural son berilgan. Bu sonning barcha tub bo'luvchilarini topuvchi dastur tuzing.
DT-10.21. a, b natural sonlar berilgan (a). a
shartni qanoatlantiradigan barcha tub p sonlarni topuvchi dastur tuzing.
DT-10.22. Birinchi 100 ta tub sonlarni aniqlovchi dastur tuzing.
m DT-10.23. N, m natural son berilgan. Raqamlar yig'indisining kvadrati ga teng va Nsondan kichik bo'lgan barcha sonlarni topuvchi dastur
tuzing.
DT-10.24. Natural son mukammal son deyiladi, agar bu son o'zining bo'luvchilari yig'indisiga teng bo‘lsa. 6 son mukammal son, chunki uning bo'luvchiiari I, 2, 3 ga teng va ularning yig‘indisi 6 -I+ 2 + 3 ga teng. 8 esa 8* 1+ 2+ 4 ). N natural son berilgan. Ushbu sondan kichik bo‘lgan barcha mukammai sonlarni topuvchi dastur tuzing.
DT-10.25. n natural son berilgan. Ushbu sonni uchta natural sonlar kvadratlari yig'indisi orqali ifoda etish mumkinmi (/i^x^+y+z2)? Agar mumkin bo‘lsa, u holda w^jd+y+z2tenglik o'rinii bo'ladigan barcha x, y, z sonlar uchligini aniqlovchi dastur tuzing.
FOYDALANILGAN ADABIYOTLAR
1. Kulakov A.G., Lando S.K., Semyonov A.L., Shen A.X.. Algoritmika. V-VII sinflar. Moskva: Drofa, 1997.
2. Boltayev B . Abduqodirov A., Taylaqov N., Mahkamov M., Azamalov A., Xafizov S. Informatika va hisoblash texnikasi asoslari. 9-sinf. T.: Cho lpon, 2006.
3. Boltayev B., Mahkamov M., Azamatov A. Informaiikadan olimpiada masalalarini yechish. Metodik qo'llanma, T : 2004.
4. Boltayev B., Mahkamov M., Azamatov A. Informalikadan olimpiada masalalarini yechish-2. Melodik qo'llanma, Toshkent, 2004.
5. B.Boltayev, A.Abduqodirov, N.Taylaqov, M.Mahkamov, A.Azamalov, S.Xafizov. Informatika va hisoblash texnikasi asoslari. 9-sinf. T.: Cho'lpon, 2006.
6. B.Boltayev, Mahkamov M., Azamatov A., Ahduqodirov A., Daliyev A., Azlarov T., Taylaqov N. 8-sinf. T.: O'qituvchi, 2006.
7. B.Boltayev, M.Mahkamov, A.Azamatov. 8-sinf masalalar to‘plami va ularni yechish usullari. Metodik qo‘llanma. T.: 2005.
8. B.Boltayev, Mahkamov M., Azamatov A. Paskal dasturlash tili. Metodik qo llanma. T.: 2007.
9. B .Boltayev, Mahkamov M., Azamatov A., Rahmonqulova S.
Informatika. 7-sinf. T.: 2006.
229
MUNDARIJA
I bob. ALGORITMLAR
Algoritm tushunchasi 3
Ijrochi 6
Algoritmning xossalari 8
Algoritmni tasvirlash usullari 13
Algoritmning asos turlari 16
II bob. IJROCHILAR VA LLARNING KO'RSATMALARI Algoritmik tillar olamiga kirish 21
Ijrochi Dchqon 24
Masalani o'yin kabi ifodalash 26
Ijrochi Suvchi................. 27
Ijrochi Oshiruvchi.., 29
Ijrochi Chigirtka 31
Algoritmlashni qanday yengillashtirish mumkin 33
Ijrochi Baqa................................................. 36
Qo'shimcha masataiar 38
Oshiruvchi uchun. 41
Baqa uchun 47
III hob. PROTSEDURALAR - VANGI KO‘RSATMALAR 49
Qo'shimcha masalalar. 54
Chigirtka uchun 55
IV bob. TAKRORLANISH TUZILMASI
Askarlar va qayiq...................................... 56
Yangi tuzilma 57
Yangi tuzilmani qo'llash: Chigirtka..................................................... 60
Yangi tuzilmani qo'llash: Oshiruvchi 62
Yangi tuzilmani qo'llash: Baqa........................................................... 63
Nima uchun bosli harflar 66
Samaradorlik va murakkablik 66
Samarador Oshiruvchi 70
Oshiruvchi uchun algoritmni yaxshilash 73
Qo'shimcha masalalar 74
Vbob. MANTIQ ELEMENTLARI VA SHARTLAR
Mantiq elementlari 75
Qiziqarli mantiqiy masalalar 78
Takomillashtirilgan Kamaytiruvchi 80
Tarmoqlanuvchi algoritmlar blok-sxemalari 84
VI bob. IJROCHI ROBOT
Robot qayerda yashaydi? 93
Robotning imkoniyatlari bilan tanishuv 95
Takrorlanuvchi holallar 104
230
Qiziqarli ma>alalar 111
Birikkan shartlar 117
Birikkan shartli algoritmlar 118
Murakkab algoritm namunasi 122
Qo‘shimcha masalalar 125
V llb o h . RFKURSIYA
0 ‘zini chaqiradigan protseduralar 129
Rekutsiyadan chiqish 133
Qachon rekursiyasiz ishlash mumkin 135
Oraliq protsedura orqali rekursiv chaqirish 136
Qo ‘shimcha masalalar 137
VIII hob. SARALOVCHI UCHUN MASALALAR
Saralovchi tarixi 139
O'tkazish masalalari 141
Tanlash masalalari 146
Yangi Saralovchi stiri 152
lchma-ichjoylashgan sikllar 155
Saralash usullari 157
Qo ‘shimcha masalalar 168
I X b o b . MUKAMMAL SARALOVCHI
Yangi imkoniyatlar 170
Sodda masalalar 172
Qiyinroq masalalar 179
Qo'shimcha masalalar 186
Qo 'shimcha masalalar 192
X bob. DASTURLASH ASOSLARI
T o k c h a la r uchun h a 'z i chegaralashlar 195
D a s tu rv a dasturlash t illa r i 197
ljro c h ila r va dasturiash tilla r i 201
0 ‘zgam vchi m iq d o rla r 203
Jadval ko'rinishidagi m iq d o rla r 206
B a 'z i standart fu n k siy a la rv a algebraik ifo d a la r 210
0 ‘zlashtirish va ma'lumotlarni ekranga
chiqarish o p e ra to rla ri 212
M a ' lu m o t la r n i x o tira g a m u io q n t
usulida kiritish o p erato ri 213
C h iz iq li dasturlar tu zish 214
0 ‘tish va tarm o q ian ish o p e ra to rla ri................. 217
Takroriash o p e ra to rla ri i
Qo‘shimcha masalalar 226
Foydaianilgan adab iyotlar 229
231
AXAT RAXMATOVICH AZAMATOV
A L G O R I T M L A S H V A
D A S T U R L A S H A S O S L A R I
Kasb-hunar kollejlari uchun o ‘quv qojlanma
To'rtinchi nashri
Muharrir Xudoyberdi Po‘latxo*jayev Badiiy muharrir Alyona Tulkinova Texnik muharrir Yelena Tolochko Kichik muharrir Gulbayra Yeraliyeva Musahhih Vmida Rajahova
Kompyuterda sahifalovchi Gulbayra Yeraliyeva
Litzenziya raqami AI Ns 163. 09.11.2009. Bosishga 2013-yil 12-noyabrda ruxsat etildi. Bichimi 60x90'/u Tayms TAD gamiturasi. Shartli bosma tabog'i 14,5. Nashr tabog'i 14,35. Shartnoma Ns 81-2013. Adadi 1413 nusxada. Buyunma N? 457
O'zbekiston Matbuot va axborot agentligining Cho'lpon nomidagi nashriyot- matbaa ijodiy uyi. 100129, Toshkent, Navoiy ko'chasi, 30.
Telefon: (371) 244-10-45. Faks (371) 244-58-55.
G ' a f u r G ' u l o m n o m id a g i n a s h riy o t- m a tb a a ijo d iy uyi h am d a X K “ P A P E R M A X ” b o s m axo n asi h a m k o r lig id a c h o p e t ild i.
T o s h k e n t s h a h a r, S h a y x o n to h u r k o 'c h a s i, 8 6 - u y .
T o s h k e n t s h a h a r, S h a y x o n to h u r tu m a n i , N a v o iy k o 'c h a s i, 3 0 - u y w w w .g g lit .u z , e - m a i l: ip td g u lo m @ s a rk o r.u z
www.ziyouz.com kutubxonasi
Do'stlaringiz bilan baham: |