Ўзбекистон алоқа ва ахборотлаштириш агентлиги тошкент ахборот технологиялари университети ахборот технологиялари факультети


Мавзу: Такрорланувчи (циклик) жараёнларни дастурлаш



Download 2,04 Mb.
bet33/36
Sana07.07.2022
Hajmi2,04 Mb.
#754814
1   ...   28   29   30   31   32   33   34   35   36
Bog'liq
informatika maruza

Мавзу: Такрорланувчи (циклик) жараёнларни дастурлаш.

Режа:


  1. Такрорланувчи (циклик) жараёнларнинг турлари

  2. Шарти олдин текшириладиган такрорланувчи циклик жараён.

  3. Шарт охирида текшириладиган такрорланувчи циклик жараён.

  4. Такрорланувчи жараёнларни тадбиқи

Кўп масалаларни ечишда ҳисоблаш жараёни такрорланувчи (циклик) характерга эга. Бу дегани, маълум операторлар қисми ўзгарувчининг ҳар хил қийматларида кўп марта такрорланади. Унинг қайтариладиган қисми эса цикл дейилади. Одатда бундай циклик жараёнларда бир ёки бир неча параметрлар ўзгарувчан бўлиб, уларнинг қиймати олдингисидан бирор қадамга фарқ қилади. Дастур тузишда циклларни қўллаш ЭҲМ лардан унумли фойдаланиш, дастурни қисқартириш ва уни тузиш ва таҳлил қилишга кетадиган вақтни камайтириш имконини беради.


Паскал алгоритмик тилида цикл оператори уч хил бўлади:

  1. олдиндан шарт текшириладиган цикл оператори;

  2. шарт оҳирида текшириладиган такрорланувчи (циклик) оператори;

  3. параметрли цикл оператори.

Цикл оператори мураккаб операторлар қаторига киради, чунки унинг ичида бошқа операторлар хам қатнашиши мумкин.
Ҳамма цикл операторлари учун қуйидаги хусусият характерлидир. Такрорланувчи ҳисоблашлар фақат бир марта ёзилади. Циклга кириш фақат унинг бошидан мумкин. Цикл операторининг ўзгарувчилари циклик қисмга киришдан аввал аниқланган бўлиши керак. Циклдан чиқиш дастур жараёнида кўзда тутилиши лозим, яъни циклнинг табиий тугалланилиши билан ёки бошқаришни шартсиз узатиш оператори ёрдамида тугалланилиши керак.
Шартнинг бажарилишига қараб цикл оператори одатда цикл операторининг такрорланиш сони олдиндан номаълум бўлган холларда ишлатилади.
1. Олдин шарт текшириладиган цикл оператори

Синтаксис диаграммаси.


WHILE <мантиқий ифода> do
begin
цикл операторлар танаси
end;
бу ерда WHILE – ҳозирча ва do- бажариш хизматчи сўзлардир.
Цикл оператори қуйидагича бажарилади, яъни олдиндан мантиқий ифорда қиймати текширилади ва унинг қиймати рост бўлса, цикл оператори қисми (танаси) бажарилади, агарда ёлғон бўлса, у холда бошқариш цикл операторидан кейин турган операторга узатилади.
Агарда мантиқий ифоданинг қиймати бошидан ёлғон бўлса, у ҳолда цикл операторлари бирор марта ҳам бажарилмасдан циклдан чиқиб кетади.
Мисол 1. y=cos x x оралиқда dx=0,1 қадам билан ҳисобланг?

    1. блок-схемаси

0 dx=0,1 1

x < 1

uses crt;
var x,y:real;
begin clrscr;
+ - x:=0;
WHILE x<1 do begin

y:=cos(x);


x:=x+0.1;
writeln(‘y=’,y, ‘x=’,x) ; end ;

Мисол 2. функцияни [0; 3] оралиқда dx=0,1 қадам билан ҳисоблаш дастурини тузинг. (WHILE ... DO ёрдамида).


Дастури:
Uses crt;
Var a,x,dx,y:real;
begin clrscr;
x:=0; dx:=0.1;
WHILE X<=3 DO BEGIN
y:= (SQR(a)*a-x)/sqr(a+b);
x:=x+dx;
writeln(‘y=’,y);
end;
end.

Ушбу цикл оператори мураккаб операторлар қаторига киради. Чунки унинг ичида бошқа операторлар қатнашиши мумкин. Барча цикл операторлари учун қуйидаги хусусиятлари характерлидир:


Шартнинг бажарилишига қараб цикл операторлари одатда унинг цикл операторларининг такрорланиш сони олдиндан номаълум бўлган ҳолларда ишлатилади.
2. Шарти охирида текшириладиган такрорланувчи цикл оператори.
Унинг умумий кўриниш структураси қуйидагича:

REPEAT


Цикл операторлари танаси

UNTIL <шарт> ;
REPEAT – такрорланиш , UNTIL – сўнг(гача) хизматчи сўзлардир.
Бу цикл операторларининг охирида шартнинг текширилиши, агарда такрорланиш сони олдиндан номаълум бўлса фойдаланилади. У қуйидагича иш бажаради:
Цикл танасининг операторлари хеч бўлмасада бир марта ҳисобланади. Бунда мантиқий ифоданинг қиймати ёлғон бўлса, ҳисоблаш бажарилаверади. Такрорланишнинг тўхташи мантиқий ифоданинг қиймати рост бўлиши билан якунланади.
Мисол 2. функцияни [0;3] оралиқда dx=0,1 қадам билан ҳисоблаш дастурини тузинг.
Дастури: (Repeat Until ёрдамида).
Var a,x,dx,y:real;
begin clrscr;
x:=0; dx:=0.1;
Repeat
y:=(SQR(a)*a-x)/sqr(a+b);
x:=x+dx;
Until x>=3.1;
writeln(‘y=’,y);
end;
end.
Цикл операторининг оҳирида шартнинг текширилиши, агарда такрорланиш сони олдиндан номаълум бўлса фойдаланилади.
Такрорланишнинг оҳирида шарт текшириладиган цикл оператори қуйидагича иш бажаради. Цикл қисми операторларининг такрорланиши (хеч бўлмаганда бир марта) мантиқий ифоданинг қиймати ёлғон бўлса бажарилаверади. Такрорланишнинг тўхташи мантиқий ифоданинг қиймати рост бўлиши билан якунланади. Шундай қилиб, аввал цикл қисми операторлари бажарилади, сўнг шарт текширилади. Бу операторнинг бажарилиши олдиндан шарт текшириладиган такрорланиш операторига умуман тескари. Бу операторда цикл қисми операторларининг пастки чегараси UNTIL хизматчи сўзи билан аниқ чегаралаб қўйилган, шунинг учун цикл қисми операторларини BEGIN ва END қавслар билан чегаралаш шарт эмас. Шунга қарамай бу қавсларнинг қўйилиши хато бўлмайди.
Мисол. Y=X функциянинг қийматлари X=8,6,4,2 ларда ҳисоблансин.
Программа бўлаги қуйидагича
X: = 8 ;
REPEAT
Y: = X*X;
WRITELN (X:3, Y=5) ;
X: =X-2;
INTIL X<0
бу ерда аввал аргумент X нинг биринчи қиймати берилади, яъни X=8.
Шу қийматда Y функция ҳисобланади ва дисплей экранига X ва Y нинг қийматлари чиқарилади ва X нинг янги қийматлари хисобланади, агарда X<0 мантиқий қиймат рост бўлгунга қадар такрорланади. Бу циклнинг бажарилиш жараёнида X ва Y ўзгарувчиларнинг қийматлари қуйидагича бўлади:
х 8 6 4 2 0
y 64 36 16 4 _
x=0 ифода қиймати рост ёлғон ёлғон ёлғон ёлғон рост ёки ёлғон.
3. Параметрли цикл оператори. Масалада олдиндан такрорланишлар сони маълум бўлса, у ҳолда параметрли цикл операторидан фойдаланилади. Унинг умумий куриниши қуйидагича кўринишга эга:

FOR _ I := А_ TO _ В _ DO


BEGIN

Цикл танаси операторлари

END.
бу ерда FOR (учун), TO (гача), DO (бажариш ) хизматчи сўзлар бўлиб, I- цикл парометри, А, В -цикл параметрининг бошлангич ва оҳирги қийматлари.


Дастурнинг цикл қисми I цикл параметрининг А бошлангич қийматидан бошлаб то В оҳирги қийматигача такрорланади.
функцияни [0;3] оралиқда dx=0,1 қадам билан ҳисоблаш дастурини тузинг. (FOR оператори ёрдамида).

  1. блок-схемаси:


















Дастури:


var a,x,y:real;


i:integer;
begin
Read(a);
x:=0;
For i:=1 to 31 do begin
y:=(a*a*a-x)/(a*a+x*x);
Writeln(x,y);
x:=x+0.1;
end
end.
Цикл параметри сифатида фақат ўзгарувчи бўлиши керак, А ва В ҳақиқий (REAL) тоифа бўлмаган ифода бўлиши хам мумкин. Кўпинча цикл параметри сифатида бутун типдаги ўзгарувчи қатнашади, унинг ўзгариш қадами эса +1 ёки -1 бўлиши мумкин. Агарда цикл параметри ўсувчи бўлса, у холда унинг ўзгариш қадами +1 га тенг ва аксинча, цикл параметри камайса, унинг ўзгариш қадами -1 га тенг бўлиб, бу холда FOR цикл операторидаги TO хизматчи сўзи DOWNTO хизматчи сўзига алмаштирилади.
Масалан:
.............
FOR I:=1 to 5 do
begin
a:=2*i;
b:=2*i+1;
end;
.......
Изоҳ: бу ерда I – 1 2 3 4 5
а 2 4 6 8 10
b 3 5 7 9 11
Бу дастурнинг ўзгариш қадами (+1).
Камайиш кўриниши эса:
FOR I:=5 Downto 1 do
begin
a:=2*i;
b:=2*i+1;
end;
.......

Изоҳ: бу ерда I – 5 4 3 2 1


а 10 8 6 4 2
b 11 9 7 5 3
Мисол 2. Бирдан то 10 гача бўлган сонларнинг йиғиндисини ҳисоблаш дастурини тузинг.
Дастури: (For оператори ёрдамида (ўсиш +1)).
Uses crt;
Var i,n,s:integer;
Begin clrscr;
Writeln(‘ n қийматини киритинг :’);
Readln(n);
S:=0;
For i:=1 to n do begin
s:=s+i; end;
writeln( ‘s=’,s:5:2);
readln;
end.



Дастури: (Downto оператори ёрдамида


(камайиш -1)).
Uses crt;
Var i,n,s:integer;
Begin clrscr;
Writeln(‘ n қийматини киритинг :’);
Readln(n);
S:=0;
For i:= n Downto 1 do
s:=s+i;
writeln( ‘s=’,s:5:2);
readln;
end.
Агарда программанинг цикл қисми битта оператордан иборат бўлса, у холда BEGIN- END оператор қавсларини ёзмаса ҳам бўлади. Бу холда
FOR I : =А TO В DO оператор .
Мисол. Лотин алфавитининг харфлари символли тип бўлади.
PROGRAM M2 ( INPUT, OUTPUT ) ;
VAR SIM: CHAR ;
BEGIN
WRITELIN ( ‘Лотин алфавити’ );
FOR SIM : =’A’ TO ’Z’ DO
WRITE ( ‘ ‘ , SIM )
END.
Натижада дисплей экранида
Лотин алфавити
A B C D E F U H I J L M N O P Q R S T Ў V W X Y Z
чикади.
Назорат саволлари:

  1. Такрорланувчи (циклик) жараён турларини тушинтиринг.

  2. Олдиндан шарт текширилиб такрорланувчи циклик жараён

  3. Шарт охирида текширилиб такрорланувчи циклик жараён

  4. Ушбу кўринишларнинг бир-биридан афзаликлари.

  5. Олдиндан шарт текширилиб такрорланувчи циклик жараённинг синтаксис диаграммаси

  6. Шарт охирида текширилиб такрорланувчи циклик жараённинг синтаксис диаграммаси

15-маъруза. Ичма-ич жойлашган циклик операторлар.


Қаторлар йиғиндиси ва реккурент формулалар.

Режа:


  1. Ичма-ич жойлашган циклик жараёнлар

  2. Жараённинг структураси

  3. Ички ва ташқи циклларнинг бажарилиш тартиби

  4. Йиғиндини ҳисоблаш алгоритми ва дастури

  5. Кўпайтмани ҳисоблаш алгоритми ва дастури

7. Йиғинди ва кўпайтмани ҳисоблаш алгоритми ва дастури
8. Реккурент формулаларни тадбиқ қилиш
Ичма-ич жойлашган цикллар ҳисоблаш жараёнида бир-бирининг ичига жойлашган бўлиб, цикл танаси хам яна циклдан иборат бўлса.
Ташқи цикл деб: ичида бошқа цикл бўлса ва бундан ташқари бошқа цикл ичида жойлашган цикл ички цикл ҳисобланади. Ушбу ҳолларда ички ва ташқи цикллар сифатида параметрли, шарти олдин ва шарти кейин қўйилган такрорланувчи (циклик) операторлардан бирини қўллашимиз мумкин.
Унинг бажарилиш тартиби, олдин ички цикл ичидаги операторлар кетма-кетлиги ҳисобланади ва сўнгра бажарилиш ташқи циклга узатилади.
Масалан: ифодани ҳисоблаш дастурини тузинг?
Ушбу масалани ҳисоблашнинг дастури:
Uses crt;
var i,j,n: integer;
s1:real;
begin clrscr;
readln(n);
s:=0; s1:=0;
for i:=1 to n do
s:=s+(i*i*i);
for j:=1 to n do begin
s1:=s1+(j*j*j);
for i:=1 to n do
s:=s+s1;
writeln(‘….’);
end;
………..
Мураккаб цикллар. Ушбу жараён бир неча циклик операторларнинг бир даструда қатнашуви тушинилади.
Масалан: y=2K+N функцияни ҳисоблаш дастурини тузинг.
N=1,2,3 ва K=2,4,6,8
N-ташқи цикл параметри, K-ички цикл параметри. Бу ерда K,N,y – ўзгарувчилар бутун тоифали бўлсин.
Дастури:
uses crt;
var K,N,y:integer;
begin clrscr;
for N:=1 to 3 do
begin K:=2;
WHILE K<=8 do begin
y:=2*K+n;
writeln(N:4,K:4,y:4);
K:=К+2;
Ташқи цикл for оператори билан, ички цикл WHILE оператори ёрдамида ушбу масала ҳисобланди.
Изоҳ:

    1. N=1 учун 2) N=2 учун 3) N=3 учун 4) N=4 учун

Begin k=2 Begin k=4 Begin k=6 Begin k=8
WHILE 2<=8 WHILE 4<=8 WHILE 6<=8 WHILE 8<=8
Y=2*2+1=5 Y=2*4+1=9 Y=2*6+1=13 Y=2*8+1=17
Циклик жараёнлар учун реккурент формулалар.
Реккурент формулаларнинг қуйидаги формалари мавжуд:
а)
бу умумий кўриниши бўйича с) кўринишга мансуб бўлганлиги учун, реккурент формула бўйича ҳисоблаш
Сn =(-1) – мақсадга мувофиқ
n =-Сn-1); n/n-1 sin nx
У холда, an=Cn n/n2-1 sinnx; Сn =-Сn-1; бу ерда n=2,3,…..25; С1 =-1 ва ҳисоблаш S=S+C n/n2-1 sin nx . бу ерда S- ҳар хил қийматга эга бўлади, яъни ўнг томондаги S (Sn-1) ни қийматини, чап томон навбатдаги қийматни қабул қилади Sn+1 ни.
Мисол3. Қаторлар йиғиндисини аниқликда ҳисоблаш дастурини тузинг.

  1. блок-схемаси


uses crt;
var y,s,x,eps:real;
n:integer;
begin clrscr;
readln(x,eps);
y:=1; s:=1; n:=1;
Repeat
y:=y*(-x*x/(2*n+(2*n+(2*n-1))));
s:=s+y;
n:=n+1;
+ Until y - writeln(‘s=’,s);
. ............
S=12+22 +32 +…..+ n2 йиғиндини ҳисоблаш алгоритми ва дастурини тузинг.
1) 2)

S:=0







S:=S+i*i











Download 2,04 Mb.

Do'stlaringiz bilan baham:
1   ...   28   29   30   31   32   33   34   35   36




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