Оқулық Қазақстан Республикасы Білім жəне ғылым министрлігі бекіткен Алматы, 2011 1


-сурет. 50-ден аспайтын 10 санның қосындысын анықтайтын алгоритмнің схемасы Айтылған нұсқаларды қарастырайық. Goto



бет55/210
Дата06.01.2022
өлшемі4,42 Mb.
#16437
түріОқулық
1   ...   51   52   53   54   55   56   57   58   ...   210
5.5-сурет. 50-ден аспайтын 10 санның қосындысын анықтайтын алгоритмнің схемасы
Айтылған нұсқаларды қарастырайық.
Goto операторының көмегімен шығарылған нұсқа:
Program ex;
Var i,s,a:integer;
Label cycl;
Begin
i:=1; s:=0;
while i<=10 do
begin


91

Read(a);
if a>50 then
begin
WriteLn('Енгізілген сан 50-ден аспауы ке-рек');

goto cycl; {басқаруды цикл соңына беру} end;
s:=s+a; {айналып өтетін операторлар тобы} i:=i+1;

cycl: end;
WriteLn(s);
End.
Continue процедурасының көмегімен шығарылған нұсқа:
Program ex;
Uses crt;
Var i,s,a:integer;
Begin
i:=1; s:=0;
while i<=10 do
begin
Read(a);
if a>50 then
begin
WriteLn(‘Енгізілген сан 50-ден аспауы керек’);

continue;{басқаруды келесі қадамға береміз}
end;
s:=s+a;
i:=i+1;
end;
WriteLn(s);
End.
Құрылымды нұсқа:
Program ex;


92

Uses crt;
Var i,s,a:integer;
Begin
i:=1;
while i<=10 do
begin
Read(a);
if a>50 then WriteLn(‘Енгізілген сан 50-ден аспауы керек’)

else
begin


s:=s+a;
i:=i+1;
end
end;
WriteLn(s);

End.


Бұл мысалда құрылымды алгоритм ең қарапайым түр болып саналады. Мұнда goto операторы мен continue процедурасын қолдану тиімді емес. Continue процедурасын қолдану тек айналып өтетін операторлар саны көп болған жағдайда ғана тиімді.
Практикалық есептерді шығаруда тəжірибесі аз программа-лаушылар goto операторын жиі қолданатын алгоритм түрін тө-мендегі мысал арқылы көрсетейік.
5.3-мысал. Тұтынушы енгізген аргумент мəні бойынша функция мəнін бірнеше рет есептейтін программа құру қажет. Нəтиже алынғаннан кейін программа “Жалғастыру керек пе?”-деп сұрайтын болсын. Егер жұмысты жалғастыру керек болса, тұтынушы пернетақтадан “Y”, кері жағдайда “N” əрпін енгізуі керек. Сəйкесінше бірінші жағдайда программа жұмысын жалғастырады, ал екінші жағдайда – тоқтатады.
Программа негізінде циклдік процесс жатыр. Көп жағдайда мұны “цикл-дейін” (5.6-сурет) операторы жəне goto операторы көмегімен жазуға тырысады. Бұл қатені қайталамас үшін, мына жағдайды есте сақтау керек: егер алгоритм схемасында орын-далып кеткен программа фрагментіне басқаруды қайта беру керек болса, онда жеке цикл қарастырып, бұл циклден шығу шартын анықтау керек.


93

Төменде осы алгоритмді “цикл-дейін” көмегімен шығару программасы келтірілген.

Program ex;


Var x:real; ch:char;
Begin
repeat
Write(‘ x-ті енгізіңіз:’);
ReadLn(x); {еш уақытта Read қолданылмайды, себебі
ары қарай символ енгізіледі}
WriteLn(‘Нəтиже ‘,sin(x):8:4); WriteLn(‘Жалғастыру керек пе? (y/n)’); ReadLn(ch);
until ch=’n’;
End.



5.6-сурет. Функция мəнін есептеу алгоритмінің схемасы


94

Жоғарыда айтылғандардың барлығынан мынадай қорытынды шығаруға болады.


  1. Goto шартсыз көшу операторын жалпы Pascal программа-ларында мүлдем қолданбаған жөн. Егер goto операторын қолдану барысында алгоритм құрылымсыз болып шықса, онда оны құрылымды алгоритмге түрлендіруге тырысу қажет. Бұндай шектеу goto операторын қолданған жерде көп қате кездесетін болғандықтан, қойылып отыр.






  1. Достарыңызбен бөлісу:
1   ...   51   52   53   54   55   56   57   58   ...   210




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет