Тармақталу командасы (Pascal)

Бірнеше операторлардың бірігуінен шыққан операторды құрама оператор деп атаймыз. Бұл операторлар begin және end қызметші сөздерінің арасына жазылады. Әр оператордан кейін (;) нүктелі үтір таңбасы қойылады.Құрама оператордың жалпы жазылуы:

begin

1-оператор;

2-ші оператор;

n-ші оператор

end;

Құрама оператордың ішінде тағы бір құрама оператор болуы мүмкін. Бұл жағдайда программа денесін құрама оператор деп қарастырса болады. Құрама операторға шартты көшу (тармақталу), таңдау және қайталану операторлары жатады.

  1. IF операторы

Паскальда шартты өту операторы Бейсик тіліндегі сияқты IF операторы арқылы беріледі:

IF-THEN-ELSE (толық түрі)

IF-THEN (қысқартылған түрі)

Жазылу үлгілері:

а) IF <шарт> THEN <оператор 1> ELSE <оператор 2>

б) IF <шарт> THEN <оператор>

ELSE сөзінің алдындағы оператордың соңына нүктелі үтір таңбасы қойылмайды.

функциясының мәнін есептеу керек.

Program man;

{функция мәнін есептеу}

var x,y:real;

begin

write (‘x=?’); readln(x);

If x<1 then y:=2*x+3 else y:=x*x+4

write (‘y=’, y:6:3);

end.

4.9*1/2-(4-2.5)*5/9 өрнегінің мәнін 0.01 дәлдікпен есептеу керек.

Есептелген мәннің дұрыстығын компьютерде тексеру программасын мынадай түрде құруға болады.

Program snak1;

var f,v, z: real;

Begin

f:= 4.9*1/2-(4-2.5)*5/9;

v:=round(f*100)/100;

writeln(‘4.9*1/2-(4-2.5)*5/9’);

write (‘0.01 дәлдікпен есептелген мән=?’);

readln(z);

if z=v then write (‘жарайсыз, дұрыс ’) else write (‘дұрыс емес’)

end.

Мұндағы v -өрнек мәні 0.01-ге дейінгі дәлдікпен меншіктелетін айнымалы (мәнді есептеу мен дәлдіктеуді машина орындайды).

z – сынақталушының 0.01 дәлдікпен дайындаған жауабы меншіктелетін айнымалы.

Программада қажеттілікке қарай IF операторын бірнеше рет қолдануға болады. Мысалы: Берілген а, в, с үш бүтін санның ең кішісін табу

Program esep2;

var a, b, c, min:integer;

begin

writeln (‘үш бүтін сан енгіз’); readln(a,b,c);

if a<b then min:=a else min:=b;

if c<min then min:=c;

writeln(‘үш санның кішісі min=’, min);

end.

Егер then және else қызметші сөзінен кейін орындалатын операторлар саны екі немесе екіден көп болса, онда бұл операторларды begin және end операторлар жақшасына аламыз. Яғни, шартты көшу операторын құрама оператордың көмегімен жазамыз. Құрамында құрама операторы бар IF операторының жазылуы:

If <шарт> then

begin

<1-оператор>;

<2-оператор >;

<n—оператор >;

end;

else

begin

<1-оператор >;

<2-оператор >;

<n—оператор >;

end;

Мысалы: ax2+bx+c=0 квадрат теңдеуін шешудің программасы:

Program esep3;

var a,b,c, d:integer; x,x1,x2:real;

begin

writeln(‘a, b, c -енгіз’); readln (a,b,c);

d:=sqr(b)-4*a*c; writeln(‘d=’,d);

ifd>0 then

begin

x1:=(-b-sqrt(d))/2*a;

x2:=(-b+sqrt(d))/2*a;

writeln(‘x1=’,x1:5:2, ‘x2=’, x2:5:2);

end else

if d=0 then

begin

writeln (‘теңдеудің бір түбірі бар’);

x:=(-b-sqrt(d))/2*a;

writeln (‘x=’,x:5:2);

end else writeln (‘теңдеудің шешімі жоқ’);

end.

Есептің күрделенуіне байланысты IF операторы құрамына екінші бір IF операторын кірістіруге болады. Шартты көшу операторын мұндай түрде пайдаланудың төмендегідей нұсқалары бар:

1-нұсқасы

IF <1-шарт> Then

if <2-шарт> then <1-оператор> else <2-оператор>

ELSE <3-оператор>;

2-нұсқасы

IF <1-шарт> Then <1-оператор>

ELSE if <2-шарт> then <2-оператор>

else <3-оператор>;

3-нұсқасы

IF <1-шарт> Then if <2 шарт> then <1-операттор>

ELSE <2-оператор>;

  1. Құрама шарт

Бір қатыстан тұратын шарт жай шарт (x<1, c>2, x<>c, a=b). Бірнеше жай шарттан тұратын шарт құрама шарт деп аталады.Жай шарттар құрама шарт құрамына AND, OR, NOT қызметші сөздері арқылы бірігеді және жай шарттар жай жақшаларға алынып жазылады. Мысалы: (x>=1) and (x<=3),(x>-0) or (y>=0), not((x>2) and (x<=6)). Соңғы шарттыңмәні (x>2) or (x<=6) шартының мәнімен бірдей (ол – х мәнінің [2,6] аралығында жатпау шарты)

Мысалы. М(х,у) нүктесінің жазықтықта берілген D облысына тиістісін тексеру керек.Program d1;

var x,y: real;

begin

write (‘x,y=?’); readln (x,y);

if (x*x+y*y<=16) and (x>=0) and (y>=0) then write (‘true’) else write (‘false’);

end.

Program D1;

var x,y:real;

begin

 write (‘x,y=?’); readln (x,y);

if ((x+y<=4) and (x>=0) and (y>=0)) or ((x+y>-3) and (x<=0) and (y<=0))

then write (‘true’) else write (‘false’);

end.