Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
paskal.pdf
Скачиваний:
89
Добавлен:
17.02.2016
Размер:
544.21 Кб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]