Chiziqli, tarmoqlanuvchi va takrorlanuvchi dasturlar tuzish


Tarmoqlanuvchi dasturlar tuzish



Download 76,5 Kb.
bet2/2
Sana31.12.2021
Hajmi76,5 Kb.
#214852
1   2
Bog'liq
Chiziqli, tarmoqlanuvchi va takrorlanuvchi dasturlar tuzish

Tarmoqlanuvchi dasturlar tuzish

Tarmoqlanuvchi Chiziqli algoritmlar asosida tuzilgan dasturlar tarmoqlanuvchi dasturlar deyiladi. Quyida chiziqli dasturlar tuzishga misollar ko‘rib chiqamiz.

Masala-1. bo‘lsa, y ning qiymatini hisoblang.
Yechish:

Program Masala_1;

Var x,y: Real;

Begin


Write(‘x ni kiriting:’); {ekranga “x ni kiriting:” yozuvi chiqadi}

ReadLn(x);

If x>0 Then y:=x Else y:=abs(x);

WriteLn(‘y=’, y);

End.
Masala-2. Berilgan x da funksiyaning qiymatini hisoblang
Yechish:

Program Masala_2;

Var x,y: Real;

Begin


Write(‘x ni kiriting:’); {ekranga “x ni kiriting:” yozuvi chiqadi}

ReadLn(x);

If x>2 Then y:=x-2 Else y:=2*sqr(x)-8;

WriteLn(‘y=’, y);

End.
Masala-3. bo‘lsa, berilgan x da y ning qiymatini hisoblang
Yechish:

Program Masala_3;

Var x: Real;

y:String;

Begin

Write(‘x ni kiriting:’); {ekranga “x ni kiriting:” yozuvi chiqadi}



ReadLn(x);

If x>5 Then y:=’katta’ Else y:=”kichik yoki teng”;

WriteLn(‘y=’, y);

End.
Masala-4. Topishmoq: “Yer tagida oltin qoziq”. Topishmoq javobini kiritganda, to‘g‘ri yoki noto‘g‘ri ekanini aniqlovchi dastur tuzing.


Yechish:

Program Masala_4;

Var javob: String;

Begin


WriteLn(‘Yer tagida oltin qoziq’);

Write(‘topishmoq javobini kiriting:’);

ReadLn(javob);

If javob=’sabzi’ Then WriteLn(‘to‘g‘ri’) Else WriteLn(‘noto‘g‘ri’);

End.
Masala-5. Kiritilgan so‘zda “a” harfi bor yoki yo‘qligini aniqlovchi dastur tuzing.
Yechish: Pos funksiyasi satrdan ko‘rsatilgan belgini izlaydi. Masalan, a:=Pos(‘a’, ‘informatika’); operatori bajarilganda a ning qiymati 7 ga teng. Chunki, “informatika” so‘zida birinchi “a” harfi 6-o‘rinda turibdi. a:=Pos(‘v’, ‘sinf’); operatori bajarilganda esa, a ning qiymati 0 ga teng bo‘ladi. Chunki “sinf” so‘zida “v” harfi yo‘q.
Program Masala_5;

Var satr, javob: String;

Begin

Write(‘so‘z kiriting:’);



ReadLn(satr);

If Pos(‘a’,satr)>0 Then javob:=’bor’ Else javob:=’yo‘q’;

WriteLn(‘Kiritilgan so‘zda “a” harfi ’, javob);

End.
Masala-6. Kiritilgan so‘zda nechta “a” harfi borligini aniqlang. Agar kiritilgan so‘zda “a” harfi bo‘lmasa, “yo‘q” degan javob chiqsin.


Yechish: So‘z uzunligini L bilan belgilaymiz. L ning qiymatini Length funksiyasi yordamida aniqlaymiz. So‘zdagi harflarni birma-bir “a” harfi bilan taqqoslaymiz. Buning uchun i o‘zgaruvchi kiritamiz va unga ketma-ket 1, 2, …L qiymatlarini beramiz. i ning har bir qiymatida taqqoslashni bajarish uchun i ning qiymatini bittaga orttirish oldidan L1 nishon qo‘yamiz va i ning qiymati L ga teng bo‘lmaguncha shu nishonga qaytamiz. So‘zda uchragan “a” harflarni sanash uchun s – o‘zgaruvchi kiritamiz.
Program Masala_6;

Label L1;

Var satr: String;

i,s: Integer;

Begin

Write(‘so‘z kiriting:’);



ReadLn(satr);

L:=Length(satr);

i:=0; s:=0;

L1:


i:=i+1;

If satr[i]=’a’ Then s:=s+1;

If i

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

End.
Masala-7. Kvadrat tenglama yechish dasturini tuzing.
Yechish: ax2+bx+c=0 (a≠0) ko‘rinishidagi kvadrat tenglamani yechish algoritmini tuzamiz:

1) diskriminant: hisoblansin;

2) agar D<0 bo‘lsa, tenglama yechimga ega emas deb olinsin;

3) agar D=0 bo‘lsa, yagona yechim ga teng deb olinsin;

4) agar D>0 bo‘lsa, birinchi yechim ga, ikkinchi yechim ga teng deb olinsin;

5) tugallansin.


Demak, bizga a, b, c, d, x1, x2 haqiqiy sonli o‘zgaruvchilar kerak bo‘ladi.
Program Masala_7;

Var a, b, c, d, x1, x2: Real;

Begin

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



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

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

d:=b*b-4*a*c;

If d<0 Then WriteLn(Yechim yo‘q);

If d=0 Then WriteLn(‘x=’,-b/(2*a));

If d>0 Then

begin

x1:=(-b-sqrt(d))/(2*a); x2:=(-b+sqrt(d))/(2*a);



WriteLn(‘x1=’,x1); WriteLn(‘x2=’,x2);

end;


End.
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




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