Chiziqli, tarmoqlanuvchi va takrorlanuvchi dasturlar tuzish


Takrorlanuvchi dasturlar tuzish



Download 76,5 Kb.
bet4/4
Sana26.10.2019
Hajmi76,5 Kb.
#24304
1   2   3   4
Bog'liq
chiziqli tarmoqlanuvchi va takrorlanu

3.2.2. Takrorlanuvchi dasturlar tuzish

Takrorlanuvchi Chiziqli algoritmlar asosida tuzilgan dasturlar takrorlanuvchi dasturlar deyiladi. Quyida chiziqli dasturlar tuzishga misollar ko‘rib chiqamiz.

Masala-1. 1 dan 100 gacha butun sonlar yig‘indisini hisoblovchi dastur tuzing.

Yechish: 1+2+3+…+100 yig‘indida har bir qo‘shiluvchi o‘zidan oldingisigan bittaga ko‘p. Bu qonuniyatdan foydalanamiz. Yig‘indini s deb olib, avval uning qiymatini 0 ga tenglaymiz. Qo‘shiluvchini i deb olamiz, unga 1 qiymat berib, so‘ngra har safar bittaga orttirib boramiz. i=100 bo‘lganda hisoblashni to‘xtatamiz.

1-dastur:

Program Masala_1;

Var i, s: Integer;

Begin

i:=0; s:=0;



While i<100 Do

begin


Inc(i); s:=s+I;

end;


Writeln(‘S=’,s);

End.
2-dastur:

Program Masala_1;

Var i, s: Integer;

Begin

i:=0; s:=0;



Repeat

Inc(i); s:=s+i;

Until i=100;

Writeln(‘S=’,s);

End.
3-dastur:

Program Masala_1;

Var i, s: Integer;

Begin


For i:=1 To 100 do s:=s+i;

Writeln(‘S=’,s);

End.
Bu yerda takrorlanishlar soni avvaldan ma’lum bo‘lgani uchun 3-dastur eng sodda ko‘rinishga ega bo‘ldi.
Masala-2. 1 dan 500 gacha bo‘lgan toq sonlar yig‘indisini topish dasturini tuzing.

Yechish: s=1+3+5+…499 yig‘indini hisoblash kerak. Bu yerda birinchi qo‘shiluvchi 1 ga teng va qolganlari o‘zidan oldingisidan 2 taga ko‘p. 1-misol dasturini bir oz o‘zgartiramiz.


Program Masala_2;

Var i, s: Integer;

Begin

i:=-1; s:=0;



Repeat

i:=i+2; s:=s+i;

Until i=499;

Writeln(‘S=’,s);

End.
Aslida 1- va 2- masalalarni takrorlash operatoridan foydalanmasdan, chiziqli dastur tuzib yechsa ham bo‘ladi. Mustaqil o‘ylab ko‘ring.
Masala-3. Kiritilgan so‘zda nechta “a” harfi borligini aniqlang. Agar kiritilgan so‘zda “a” harfi bo‘lmasa, “yo‘q” degan javob chiqsin.
Yechish: Bu misol oldingi mavzuda berilgandi. Uni tarmoqlanish operatoridan foydalanib yechgandik. Endi takrorlanish operatoridan foydalanamiz.
Program Masala_3;

Var satr: String;

i,s: Integer;

Begin


Write(‘so‘z kiriting:’);

ReadLn(satr);

L:=Length(satr);

s:=0;


For i:=1 To L Do If satr[i]=’a’ Then Inc(s);

If s=0 Then WriteLn(‘yo‘q’) Else WriteLn(‘Kiritilgan so‘zda “a” harfi ’, s, ‘ ta’);

End.
Masala-4. 1 dan 100 gacha bo‘lgan 11 ga karrali sonlar ko‘paytmasini topish dasturini tuzing.

Yechish: Ko‘paytmani p bilan belgilaymiz va uning qiymatini avval 1 ga teng deb olamiz. 1 dan 100 gacha sonlarni birma-bir 11 ga bo‘lib chiqamiz va qoldiqsiz bo‘linganlarini p ga ko‘paytirib boraveramiz. Sonni 11 ga qoldiqsiz bo‘linishini mod funksiyasi yordamida aniqlaymiz.


Program Masala_4;

Var i, p: Integer;

Begin

p:=1;


For i:=1 To 100 Do If i mod 11=0 Then p:=p*i;

Writeln(‘P=’,p);

End.
Bu dastur to‘g‘ri ishlaydi, ammo ortiqcha amallar bajaradi. Masala shartida 11 ga karrali sonlar aytilgan. Birinchi bunday son albatta 11. Keyingilari 22, 33, 44, … va hokazo. Demak biz p=11*22*33*…*99 ko‘paytmani hisoblashimiz kerak. Bu yerda birinchi ko‘paytuvch 11 ga teng va qolganlari o‘zidan oldingisidan 11 taga ko‘p. 3-misol dasturini bir oz o‘zgartiramiz.
Program Masala_4;

Var i, p: Integer;

Begin

i:=0; p:=1;



Repeat

i:=i+11; p:=p*i;

Until i=99;

Writeln(‘S=’,s);



End.
Bu dastur avvalgisidan bir oz “uzunroq” bo‘lsa ham takrorlanishlar soni 11 barobar kam, yani 11 barobar tezroq ishlaydi.
Masala-5. n natural son berilgan. ko‘paytmani hisoblash dasturini tuzing.

Yechish: Bu masala 4-masala kabi yechiladi.

Program Masala_5;

Var i,n,p: Integer;

Begin

Write(‘n=’); ReadLn(n);



i:=1; p:=1;

Repeat


i:=i+1; p:=p*(1/i);

Until i=n;

Writeln(‘p=’,p);

End.
Dasturda Repeat o‘rniga For dan foydalanish mumkin.


Program Masala_5;

Var i,n,p: Integer;

Begin

Write(‘n=’); ReadLn(n);



p:=1;

For i:=2 to n Do p:=p*(1/i);

Writeln(‘p=’,p);

End.


Masala-6. n natural toq son berilgan. ko‘paytmani hisoblash dasturini tuzing.

Yechish: Ko‘paytuvchilar suratida 1 da n gacha toq sonlar, maxrajdagi son esa suratdan bitta ortiq.

Program Masala_6;

Var i,n,p: Integer;

Begin

Write(‘n=’); ReadLn(n);



i:=-1; p:=1;

Repeat


i:=i+2; p:=p*(i/(i+1));

Until i=n;



Writeln(‘p=’,p);

End.
Masala-7. ifodani qiymatini hisoblash dasturini tuzing.

Yechish: Qo‘shiluvchilarni juft-juft qilib ajratsak (birinchi va ikkinchi, uchunchi va to‘rtinchi va hokazo) i=1,3,5,…,99 bo‘lganda, har safar s ga (1/i)-(1/(i+1)) qo‘shilib boradi.


Program Masala_7;

Var i,n,s: Integer;

Begin

i:=-1; s:=0;



Repeat

i:=i+2; s:=s+(1/i)-(1/(i+1));

Until i=99;

Writeln(‘s=’,s);



End.

Aim.uz

Download 76,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish