100
бір тармағы орындалады, ал орындалмаса, екінші тармағы
орындалады. Яғни, шартқа тәуелді, әлде бір серияны, әйтпесе басқа
серияны орындау керек болғанда пайдаланылады. Мысалы, бірнеше
мәндердің ең кішісін немесе ең үлкенін іздеу, тармақталған диалог
құру, т.с.с. типтік есептердің алгоритмін ұйымдастыру үшін.
Циклдік құрылымды алгоритмдер деп, цикл денесі деп аталатын
әрекеттер тізбегін көп рет қайталануын жүзеге асыратын
алгоритмдерді атайды. Мысалы, циклдік типті алгоритмдерінің
қатарына, сандық тізбектерінің қосындысын және көбейтіндісін
есептеу, деректерді циклдік әдіспен енгізу және өңдеу, т.с.с. жатады.
Есептерді шығару мысалдары [26, 42]. Бағдарламалау тілінің
жаңа амалдары, операторлары, т.б. күрделі құрылымдарды, есептердің
мына типтерін шығару үшін керектігіне қарай біртіндеп енгізіліп,
бекітіліп отырады.
Паскаль тілі қолданылған бірнеше есептерді қарастырайық. Бұл
мысалдар алгоритмдік тіл мен Паскаль тілінің арасындағы ұқсастық
әдісін қолдануды көрсетеді.
1-мысал. Берілген үш x,y,z санның ең үлкенін табу алгоритмін
жазу керек. Бұл есепті шешу үшін құрылымы бойынша нұсқасы
әртүрлі алгоритмдерді құруға болады. Соларды көрсетейік.
1-шешім. Алдымен алғашқы x,y екі санның арасындағы үлкені,
одан соң табылған k және z арасындағы үлкені анықталады.
Алгоритмнің құрылымы тізбектелген екі толық тармақталудан тұрады.
алг 3-сан-мах (нақ x,y,z,k,max)
Program max_3_san;
арг x,y,z
Var x, y,z,k: real;
нәт max
max : real;
басы
begin writeln(‘вв.3 числа’);
енгізу x,y,z
readln(x,y,z);
егер x >y
if x > y
онда k: = x
then k:= x
әйтпесе k : =y
else k:= y;
бітті
if k > z
егер k >z
then max:= k
онда max: = k
else max:= z;
әйтпесе max : =z
wrіreln(max );
бітті
readln;
шығару max
end.
соңы
2-шешім. Алгоритмде қабаттасқан толық тармақталуды
қолданамыз. Паскаль тіліндегі алгоритмнің нұсқасын көрсетейік:
Program max_3_san;
101
Var x, y,z,max: real;
begin
write(‘вв.3 числа’);
readln(x,y,z);
if x > y
then if x >= z then max := x else max := z
else if y >= z then max := y else max := z;
wrіreln(‘максимальное значение’, max);
end.
3-шешім. Алгоритмді күрделі логикалық өрнектерді пайдаланып,
толық емес тармақталуды тізбекпен қолдану арқылы құрамыз.
Паскаль тіліндегі алгоритмнің нұсқасы:
Program max_3_san;
Var x, y,z,max: real;
begin
write(‘вв.3 числа’);
readln(x,y,z);
if (x >= y) and (x >= z) then max := x;
if (y >= x) and (y >= z) then max := y;
if (z >= x) and (z >= y) then max := z;
wrіreln(‘максимальное значение’, max);
end.
2-мысал. Үш айнымалының мәндерін өсу бойынша реттейтін,
яғни A, B, C айнымалыларының кез келген мәндерінде А
В
С
болатын
алгоритм құру керек. Осы алгоритм бойынша Паскаль
тілінде бағдарлама жазу қажет.
Шешімі. Бұл есепті шешу үшін қосымша Х айнымалысын
пайдаланып, екі айнымалыны реттеу алгоритімін үш рет қолдану
қажет: А және В реттеу, В және С реттеу (осыдан соң максималды мән
С ұяшығына жазылады), тағыда А және В реттеу. Сонымен, алгоритм
тізбектелген үш толық емес тармақталу құрылымынан тұратын
болады.
алг Іріктеу-3
Program SORT_3;
арг нақ A, B, C, X
var A,B,C,X: real;
басы
begin
енгізу A, B, C
readln(A, B, C);
егер A > B
if A >. B
онда
then begin
X := A;
X := A;
A := B;
A := B;
B := X
B := X
102
бітті
end;
егер B > C
if B > C
онда
then begin
X := B;
X := B;
B := C;
B := C;
C := X
C := X
бітті
end;
егер A > B
if A > B
онда
then begin
X := A;
X := A;
A := B;
A := B;
B := X;
B := X;
бітті
end;
шығару A, B, C
write(A, B, C);
соңы
end.
Қарастырылған есеп бойынша мынадай ескертулер жасау керек.
Бұл көмекші алгоритмді қолдану идеясына әкелетін есеп.
Сондықтан екі айнымалыны реттеу алгоритмін көмекші алгоритм
ретінде қолданған тиімді. Көмекші алгоритмдерді жүзеге асыратын
бағдарламаларды ішкі бағдарламалар деп атайды. Көптеген
бағдарламалау тілдерінде күрделі бағдарламаны құрылымдайтын
негізгі құрал ішкі бағдарлама болып табылады.
Ішкі бағдарлама деп жеке синтаксистік конструкция түрінде
пішімделген, өзінің есімімен негізгі бағдарламаның кез келген жерінен
шақырылатын бағдарламалық модульді айтады.
Турбо Паскаль тілінде, ішкі бағдарламалар, процедуралар және
функциялар арқылы іске асырылған. Сондықтан Турбо Паскаль
бағдарламалау тілін процедуралы-бағытталған тіл деп атайды.
Бұл есепте процедураны қолдануға болады. Екі айнымалыны
реттеу алгоритімін – SOR2 деп аталған процедурасы пайдаланған
бағдарлама мысалын келтірейік (процедуралармен жұмыс жасау
ережелерін Паскаль бойынша жазылған оқулықтардан қараңыздар).
Program Sort_3;
Var A, B, C: real;
Procedure SOR2(var X, Y: real);
Var Z: real;
Begin
Z := X; X := Y; Y:= Z;
End;
Begin
SOR2(A, B);
Достарыңызбен бөлісу: |