
2.Тармақталу операторлар
2.1.Тармақталу програмасының құрлымы.
Турбо Паскальда оператор екіге бөлінеді: қарапайым және құрылымдық.
Қарапайым операторға мыналар жатады:
Меншіктеу операторы (:=);
Шартсыз өту операторы (goto);
Процедура кіретін оператор (функция).
Құрылымдық оператор келесі операторлардан тұрады:
Құрама оператор (ол begin деген сөзден басталып, еnd сөзімен аяқталады);
Шартты оператор (if, case);
Қайталау оператор (repeat, while, for);
Біріктіру операторы (with);
Тармақталған алгоритмдер – алгоритмде арифметикалық теңсіздік пен теңдік түрінде берілген логикалық шарт тексеріледі. Логикалық шарт тексеріледі, егер орындалса, онда 1 – жолмен, ал егер орындалмаса, онда 2-ші жолмен жүзеге асады да, соңында екі тармақ бірігеді. Мұндай алгоритмдерді шарт тексеру, яғни тармақталу алгоритмдері деп атаймыз. Блок схемасында шарт тексеру блогы – ромб қолданылады.
Тармақталу операторы көрсетілген шартқа тәуелді құрамына кіретін операторлардың орындалуын немесе орындалмауын қамтамасыз етеді. Тармақталған алгоритмдерді бағдарланған кезде мынадай қызметші сөздер қолданылады: if - егер , then – онда , else - әйтпесе.
Оператор программадағы іс-әрекеттердің орындалу реттілігін өзгертетін мүмкіндіктің ең кең тараған тәсілі болып табылады. Толық оператордың жазылу түрі:
{Егер шарт онда 1 оператор әйтпесе 2 оператор орындалады.}
IF <шартты өрнек> THEN <1 оператор> else <2 оператор>;
Егер шарттың мәні «ақиқат» болса, THEN сөзінен кейінгі оператор, ал мән «жалған» болса, else сөзінен кейінгі оператор орындалады.
Қысқа оператордың жазылу түрі:
IF <шартты өрнек> THEN <1 оператор> ;
Көшу операторы (GOTO)
Әдетте Паскальда программа операторлары қалай жазылса, сондай реттілікте, белгілі бір тәртіппен орындалады. Кейде берілген тәртіпті бұзып, программаның басқа бір бөлігіндегі нүктеге (операторға) басқару мүмкіндігін беру қажеттілігі туындайды. Осы мақсатта көшу (ауысу) операторы
қолданылады.
Форматы:
GOTO белгі;
Турбо –Паскальдағы белгі қолданушы арқылы еркін енгізілген сілтеме жасау идентификаторы. Тамға ретінде 0-999-ға дейінгі бүтін сандарды пайдалануға болады.
Мысалы:
. . .
GOTO 99;
. . .
99: WRITELN (‘АУЫСУ ОПЕРАТОРЫ ОРЫНДАЛАДЫ’);
Программада қолданылатын белгілер белгілерді баяндау бөлімінде
қамтылуы тиіс.
LABEL тарауында баяндалады.
Мысалы: LABEL 5.99.100
Тармақталудың орындалу түрлері:
Блок-схема |
Алгоритмдік тіл |
Pascal тілі |
|
Тармақталу командасы: а) толық пішіні: егер шарт онда 1 серия әйтпесе 2серия
ә) қысқартылған түрі егер шарт онда серия әйтпесе |
Шартты оператор: If шарт then begin 1-серия end else begin 2-серия end; |
Шарт өрнегін жазу үшін мынадай салыстыру белгілерін пайдаланамыз:
= |
Тең |
< |
Кіші |
<= |
Кіші немесе тең |
> |
Үлкен |
>= |
Үлкен немесе тең |
<> |
Тең емес |
Және, немесе, емес қызметші сөздерімен біріктірілген, бірнеше қарапайым шарттардан тұратын шарттар құрама шарттар деп аталады. Логикалық операциясы бар күрделі шарт қарапайым шарттардың екеуі де орындалған жағдайда ғана ақиқат деп есептеледі.
Pascal тілінде логикалық операцияларды енгізейік:
Алгоритмдік тілде жазылуы |
Pascal тілінде жазылуы |
және немесе емес |
and or not |
Тармақталған алгоритмге мысал:
Блок схема |
Алгоритмдік тіл |
Pascal тілі |
|
алг есептеу басы енгізу Х егер Х<=0 онда Y:=X² әйтпесе Y=√Х бітті шығару у соңы |
program ec1; var x,y: real; begin readln(x); if x<=0 then y:=sqr(x) else y:=sqrt(x); writeln (‘y=‘,y:2:0); end. |
Құрылыста қарай күрделі болып саналатын операторлардың (тармақталу, таңдау, қайталау) бірі тармақталу операторына тоқталайық.
Тармақталу операторы көрсетілген шартқа байланысты құрамына кіретін операторлардың орындалу орындалмауын қамтамасыз етеді. Паскаль тілінде шартты көшу операторы if операторы арқылы беріледі.
Жалпы түрі:
If <шарт> then <1-операторы> else <2-операторы>;
Мұнда еlse қызметші сөзінің алдына “;” қойылмайды.
Қысқа түрі:
If <шарт> then <операторы>;
Шартты оператордың синтаксистикалық диаграммасы төменде көрсетілген.
Берілген оператор келесі бейнеде орындалады. Алдымен if қызметші сөзімен шарт тексеріледі. Нәтижесі бульдік тип болуы шарт. Егер шарт мәні true болса, онда then қызметші сөзінен кейінгі оператор орындалады. Егер шарттың есептеу нәижесі false болса, онда else қызметші сөзінен кейінгі оператор орындалады. Егер else қызметші сөзінен кейін шарт орындалмаса, онда басқару шарттан кейінгі операторға беріледі. Шарт қатынас немесе логикалық өрнектер түрінде жазылады.
If…ten операторының құрылымы 1-суретте көрсетілген:
-
If <шарт>
Then
Else
оператор 1
.
.
.
оператор n
операторЕ 1
.
.
.
операторЕ n
1-сурет. If…then операторының құрылымы
Мысалы:
if x<y then max:=y
else
max:=x;
Орындалу кезінде қабаттасқан шартты оператор синтаксистикалық біркелкі болмауы мүмкін, ол келесі схемада бейнеленген:
if Expr1 then if Expr2 then Stmt1 else Stmt2
Берілген құрылымды келесі жолмен түсіндіреміз:
if Expr1 then
begin
if Expr2 then stmt1
else
stmt2
end;
Қысқаша айтқанда, else қызметші сөзі if қызметші сөзімен тығыз байланыста.
Тармақталу операторларында шарттар күрделі де болуы мүмкін. Күрделі шарт логикалық амалдардың (and, not, or) көмегімен құрылады. Мысалы:
Х [0;1] жатады. If (x>=0) and (x<=1) then writeln (‘жатады’) else writeln (‘жатпайды’)
№1 тапсырма. Берілген сан х нақты саны х>0 - ге тең болса, онда х - ті екіге арттыр, әйтпесе х - ті екі еселе. Есептің программасы: Program esep_1; Var x, y: real; Begin Readln(x); If x>0 then y:=x+2 else y:=2*x; Writeln(‘y=’, y); End.