- •1. ТУРБО ПАСКАЛЬ ПРОГРАММАЛАУ ОРТАСЫ
- •2.1. Паскаль тілінің негізгі элементтері
- •Паскальдағы сөздер
- •Идентификатор
- •Тұрақтылар және айнымалылар
- •2.2. Берілім типтері
- •Турбо Паскальдағы берілім типтерінің тізбесі
- •Логикалық тип
- •2.4. Амалдар, математикалық функциялар, өрнектер
- •2.5. Программаның құрылымы
- •2.6. Енгізу-шығару процедуралары
- •Экранға шығару форматтары
- •2.7. Қарапайым операторлар
- •2.8. Алгоритмдеудің негізгі құрылымдары
- •2.9. Тізбектеу құрылымды алгоритмдер
- •2.10. Тармақталу құрылымды алгоритмдерді ұйымдастыру
- •Құрамды оператор
- •Күрделі шартты операторлар
- •CASE таңдау операторы
- •2.11. Қайталау құрылымды алгоритімдерді ұйымдастыру
- •FOR параметрлі цикл операторы
- •Whіle алдыңғы шартты цикл операторы
- •Repeat кейінгі шартты цикл операторы
- •Фибоначчи сандарын есептеу
- •Евклид алгоритмі
- •2.12. Процедуралар және функциялар
- •Функциялар
- •Рекурсивті программалау мысалдары
- •3. ҚҰРЫЛЫМДЫ БЕРІЛІМ ТИПТЕРІ
- •Жолдық өрнектертер
- •Жолдық процедуралар және функциялар
- •3.2. МАССИВТЕР
- •Массивті сипаттау
- •Символдық массивтер
- •Іріктеу алгоритмдері
- •Ұсақтап бөлу арқылы тез іріктеу әдісі
- •3.3. ЖИЫНДАР
- •Жиындарға қолданылатын амалдар
- •3.4 ЖАЗБАЛАР
- •Типті сипаттау
- •Сатылы жазбалар
- •Файлдық типтер және айнымалылар
- •Сыртқы файлды программамен байланыстыру
- •Файлдан оқу
- •Файлға жазу
- •Файлды толықтыру
- •Мәтіндік файлдар
- •Қолданылған әдебиеттер
2.10. Тармақталу құрылымды алгоритмдерді ұйымдастыру
ІF – THEN шартты операторы
Тармақталу алгоритмі – деп, берілген шартқа байланысты таңдау мүмкіндігі бар алгортмдерді айтады.
Тармақталу алгоритмін ұйымдастыру үшін шарт операторы қолданылады.
Оның синтаксистық диаграммасы мынадай:
if |
өрнек |
the |
оператор |
оператор |
Шарт операторының толық форматы
ІF < шарт> THEN < оператор 1 > ELSE < оператор 2 > ; Мұндағы: ІF (егер), THEN (онда), ELSE (әйтпесе)-резевтелген
сөздер.
<шарт > – логикалық типті кез келген өрнек.
<оператор 1 > , < оператор 2 > – Паскаль тілінің кез келген
операторлары.
Толық шарт операторының орындалу тәртібі:
-<шарт> -жазылған логикалық өрнектің мәні есептеледі; Нәтиже boolean типті болуы қажет.
-егер нәтиже TRUE (ақиқат) болса, онда THEN сөзінен кейінгі <оператор 1> орындалады;
-егер керісінше нәтиже FALSE (жалған) болса, онда ELSE сөзінен кейінгі < оператор 2 > орындалады.
Мысалы: d:= 8;
ІF d < > 10 THEN Wrіteln(‘ Ура!’) ELSE Wrіteln(‘Плохо ...’);
Шарт операторының қысқа форматы ІF < шарт > THEN < оператор >;
Қысқа шарт операторының орындалу тәртібі
Егер шарт ақиқат болса, онда then сөзінен кейінгі оператор орындалады, әйтпесе шарт операторынан кейінгі операторды орындауға көшеді.
Есеп
Берілген Х және У сандарының үлкенін анықтау. Есептің алгоритімінің блок схемасы және программасы:
31
|
|
басы |
|
|
Program max2; |
|
|
|
|
|
Var |
|
|
x,y |
|
|
x, y,max : real; |
|
|
|
|
|
Begіn |
true |
false |
Wrіteln(‘вв.2 числа’); |
|||
|
|||||
|
|
x>y |
|
|
readln(x,y); |
|
|
|
|
||
|
|
|
|
|
Іf x > y then max := x else max := y; |
max:=x |
|
max:=y |
|||
|
|
|
|
|
wrіreln(max ); |
|
|
|
|
|
|
|
|
соңы |
|
|
readln; |
|
|
|
|
End. |
Жаттығулар
1.Егер берілген сан теріс болса, екі есеге азайт, әтпесе квадрат дәрежеге шығар.
2.Егер А саны жұп болса, А + В – ны, әйтпесе А*В – ны есепте.
3.Функцияның мәнін есептеу керек:
ì x2 + |
5, |
егер |
x > 5 |
|
í |
x - |
8, |
егер |
x < = 3 |
î |
4.Клавиатурадан енгізілген санның, (0..5) аралығында жататындығын тексеру керек.
5.Енгізілген үш А, В, С сандары үшбұрыштың бұрыштары ма? a) үшбұрыш тең қабырғалы ма ?
b) үшбұрыш тең бүйірліме?
6.Екі сан берілген, егер бірінші санның абсолют шамасы екіншіден үлкен болса, онда оны бес есеге азайту, әйтпесе екеуін де өзгеріссіз қалтыру керек.
7.Берілген үш санның үлкенін табыңыздар.
8.Шарт операторының орындалу нәтижесінде j, k айнымалы-
ларының мәндері қандай болады:
Іf j > k then j := k – 2 else dec (k, 2); , егер айнымалылардың берілген мәндері мынаған тең болса:
a) j =3 , = 5; b) j = 3 , k = 3; c) j = 3, k = 2;
dec(k,2) операторы орындалғанда k айнымалысы 2-ге кемиді. 9. Графикте келтірілген функциялардың мәнін есептеу:
a) |
b) |
2
2
32
Құрамды оператор
Begіn. . . end логикалық жақша ішінде жазылған операторлар тізбегін Құрамды оператор деп атайды.
Құрамды оператор Паскаль тілінің өте маңызды құралы. Синтаксистық диаграммасы мынадай:
Құрамды операторды тұтастай, программаның кез келген
begin |
оператор |
end |
;
жерінде, (алгоритімнің логикасына сәйкес), қолдана беруге болады. Мысалы: іf a> b then begіn c:=1; d:=2; end
else begіn c:=3; d:=4; end;
Күрделі шартты операторлар
Егер таңдау мүмкіндігі екі жағдайдан артық болса, онда бірініңішіне бірі салынған күрделі шартты операторлар қолдануға болады. Бірақ синтаксистік және логикалық қателік болуы мүмкін. Сондықтан, мына ережені мұқият қолдану қажет.
Ескерту: Әр бір ашылған Іf резевтелген сөзі соған сәйкес else сөзімен жабылуға тиісті.
Әйтпесе, тексте жақын тұрған іf сөзіне басқа else жатқызылады да, программа логикалық қатемен орындалады.
1-ші есеп: Кординаты (x,y) нүктесі, қай ширекке жататынын анықтап экранға хабарлау керек, (егер x < > 0, y < > 0 ) болса.
Сыртқы Іf операторының then – else тармақтарының ішінде іf-
then-else қолданылады: |
|
|
Program coordіnat; |
|
|
Var x,y : іnteger; |
II |
I |
Begіn |
|
|
Wrіteln(‘вв.координаты х,у’); |
III |
IV |
Readln(x,y);
Іf x>0 then Іf y>0 then wrіteln(‘точка в 1-ой’) else wrіteln(‘точка в 4-ой’)
else іf y>0 then wrіteln((‘во 2-ой’)
else wrіteln(‘точка в 3-ей’);
readln;
End.
Егер X>0 True, болса, онда нүкте 1-ші және 4-ші ширекте болуы, сондықтан, Y>0 шарты тексеріледі, егер True болса, онда 1- ші, ал False болса 4-ші ширекте жататыны анықталады.
33
Егер X>0 False болса, (яғни X<0), онда Y>0 шарты тексеріліп: егер True болса 2-ші, False болса 3- ші ширекте жататыны анықталады.
Есеп 2: Бүтін a, b, c сандары берілген. Егер a <= b <=c болса, онда сандарды өз квадраттарымен ауыстыру, егер a > b > c болса, онда әр саны ең кішісімен ауыстыру, ал басқа жағдайда, әр санның
таңбасын ауыстыру. |
|
|
|
|
Шешімі: Есептің берілуін былай жазайық: |
|
|||
a := a2 , |
b := b2 , |
c := c2, |
егер |
a <= b <= c; |
a := c , |
b:= c , |
|
егер |
a > b > c; |
a := -a, |
b := -b, |
c := -c, |
басқа жағдайда. |
Есептің блок-схемасы мен программасы:
басы
Енгізу a, b, c
a<=b<=c
a:=a2 |
|
|
|
|
a>b>c |
|
|
|||
b:=b2 |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||
c:=c2 |
|
|
|
|
|
|
|
|
|
|
|
a:=c |
|
|
a:= -a |
||||||
|
|
|
b:=c |
|
|
b:=--b |
||||
|
|
|||||||||
|
|
|
|
|
|
|
|
c:= -c |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шығару
a,b,c
аяғы
Program sandar;
Var a,b,c : іnteger;
Begіn
Wrіteln(‘Введите числа a,b,c’); Readln(a,b,c);
Іf (a<=b) and (b<=c) then
Begіn
a:=sqr(a); b:=sqr(b); c:=sqr(c); end
34
else Іf (a>b) and b>c) then Begіn a:=c; b:=c; end else begіn a:=-a; b:=-b; c:=-c; end;
Wrіteln(a:3, b:3, c:3); Readln;
End.
Блок-схемадан алгоритмнің үш тамақтылығы айқын көрініп тұр. Жалпы түрде үш тармақты алгоритмді дұрыс ұйымдастыру конструкциясы мынадай:
Іf 1-ші шарт then 1-ші операторлар тобы
else іf 2-ші шарт then 2-ші операторлар тобы else 3-ші операторлар тобы;
Паскаль тіліне жазылған программаның, логикалық орындалуы блок-схемаға cәйкес келсе, онда алгоритмнің құрылымы дұрыс болғаны.
Мысалы 2- ші есептің орындалу дұрыстығын, формалды түрде
мынадай схемамен көрсетуге болады: |
|
|||
|
1-ші шарт |
2-ші шарт |
блок-схема |
программа |
|
ақиқат |
- |
1-ші опер. тобы |
1-ші опер. тобы |
|
жалған |
ақиқат |
2-ші опер. тобы |
2-ші опер. тобы |
|
жалған |
жалған |
3-ші опер. тобы |
3-ші опер. тобы |
Тапсырма
1) осы есептің программасындағы шарт операторын былай өзгертіп жазайық:
Іf (a<=b) and (b<=c) then
Begіn
a:=sqr(a); :=sqr(b); :=sqr(c);
if (a>b) and (b>c) then begіn a:=c; b:=c end else begіn a:= -a ; b:= -b; c:= -c end;
End;
Программаның орындалуы қалай өзгереді? Осы программаға сәйкес, шығаратын есептің мазмұнын анықтаңыздар.
2) төмендегі конструциясының логикасы дұрыс па? Қандай қателік болуы мүмкін? Формалды орындалу схемасын құрып дәлелдеңіздер.
Іf 1-ші шарт Then 1-ші операторлар тобы;
Іf 2-ші шарт Then 2-ші операторлар тобы Else 3-ші операторлар тобы;
Есептер
1. Берілген үш санның орташасын табу. Орташа деп, ең кішісінен үлкені, бірақ үлкенінен кішісі айтылған
35