Turbo Paskal dilinin mənimsəmə, şərti və şərtsiz keçid, seçmə operatorları: Turbo Paskal dilində dəyişənlərə qiymətlərin mənimsədilməsi məqsədilə mənimsəmə (mənsubetmə) operatorundan istifadə edilir. Operatorun ümumi yazılışı aşağıdakı kimidir:
Dəyişənin adı qiymət və ya qiyməti mənimsədiləcək ifadə; Burada, dəyişənin adı- dilin düzgün identifikatorudur; sağ tərəfdə isə həmin dəyişənə mənimsədiləcək məlum qiymət və ya qiyməti hesablanacaq ifadə durur.
Turbo Paskal dilində budaqlanan strukturalı alqoritmlərin proqramlaşdırılması zamanı hər hansı şərtdən asılı olaraq hesablama və ya yerinə yetirilmə prosesi şaxələnir. Başqa sözlə, şərtdən asılı olaraq proqram daxilində keçidin yerinə yetirilməsi baş verir. Bu keçidin həyata keçirilməsi dilin şərti keçid operatorları vasitəsilə yerinə yetirilir. Şərti keçid operatorunun ümumi şəkli aşağıdakı kimidir:
İF şərt THEN operator_1 ELSE operator_2 Burada: İF, THEN, ELSE ( əgər, onda, əks halda) dilin açar sözləri olub operatoru müəyyən edirlər;
Şərt- məsələnin qoyuluşundan asılı məntiqi tipli ifadə olan şərtdir;
Operator_1 və operator_2 Turbo Paskal-ın ixtiyari operatorlarıdır.
Əvvəlcə şərti ifadə hesablanır, əgər şərt ödənilirsə, onda operator_1 yerinə yetirilir və operator2 buraxılaraq yerinə yetirmə davam etdirilir, əks halda idarəetmə operator_2-yə verilir və operator_2 yerinə yetirilir. Burada operator2 verilməyə də bilər. Belə halda şərt ödənmədikdə yerinə yetirmə növbəti mərhələyə keçir. Qeyd edək ki, operator_2 əvəzinə şərtsiz keçid operatorunun özü də iştirak edə bilər, yəni
..................................... İF A >B THEN Y:=2 ELSE IF A=B THEN Y:=5 ELSE Y:=3; ..................................... və ya
................................... IF A>B THEN IF C IF R< D THEN Y:=1 ELSE Y:=0; yazılışları doğrudur.
Misal:Verilmiş funksiyanı hesablamaq üçün blok-sxem və proqram tərtib edin:
Blok sxemə görə proqram tərtib edək:
program budaqlanan;
var x,y,t,a:real;
begin
writeln('x,t,a-i daxil edin:');
read(x,t,a);
if x<-1 then y:=2*sin(x)/cos(x)+a else if x>3 then y:=3*x*x+t else y:=4*exp(5*ln(x))*cos(a)/
exp(1/3*ln(x-5);
writeln('x=',x:4:2,' y=',y:5:2);
end.
Bir çox hallarda proqram tərtibi zamanı proqram daxilində heç bir şərt qoyulmadan keçidin yerinə yetirilməsi tələb olunur. Belə halda şərtsiz keçid operatorundan istifadə edilir. Şərtsiz keçid operatorunun ümumu şəkli aşağıdakı kimidir:
GOTO nişan; Burada nişan ixtiyari identifikator olub proqramın operator və ya bir neçə operatorunu adlandırmaq, daha döğrusu göstərmək üçün istifadə edilir. Nişan metka kimi də adlandırılır. Proqramda istifadə olunan nişanlar (metkalar) proqramın əvvəlində elan hissəsində göstərilməlidirlər. Nişanlar (metkalar) aşağıdakı kimi elan edilir:
LABEL nişan1, nişan2,..., nişanN; Proqramda şərtsiz keçid operatoruna yerinə yetirmə çatan kimi idarəetmə GOTO operatorundan sonra göstərilən nişan olan proqram sətrinəin ardınca gələn operatorlara verilir. Nişandan sonra “:” qoyulur. Məsələn:
PROQRAM KECİD; USES CRT; LABEL M1; ...................................... BEGİN ................................ GOTO M1; ................................ M1: READLN (x); ......................... END. Burada yerinə yetirilmə M1 nişanı olan sətirdəki READLN (x) operatoruna verilir.
Proqram tərtibində bəzən mümkün bir neçə imkanlardan birini seçməklə proqramın davam etdirilməsi lazım olur. Belə halda seçmə operatorundan istifadə etmək mümkündür. Seçmə operatorunun ümumi görünüşü aşaqıdakı kimidir:
CASE seçmə açarı OF seçmə siyahısı ELSE operator END; Burada: CASE, OF, ELSE, END (seçmə,- dən(-dan), əks halda, son) dilin ehtiyat açar sözləri olub operatoru təşkil edir;
Seçmə açarı- nizami tipli ifadədir;
Seçmə siyahısı- bir və ya bir neçə seçmə sabiti: operator şəkilli yazılışlardır;
seçmə sabiti- seçmə açarı ilə eyni tipli sabitdir:
operator- hər iki halda Turbo Paskalın operatorlarıdır.
Operatorun işləmə alqoritmi belədir: siyahıdan seçmə açarına uyğun seçmə sabiti axtarılıb tapılır və ona uyğun operator yerinə yetirilir. Əgər uyğun seçmə sabiti tapılmazsa yerinə yetirilmə ELSE-dən sonrakı operatora verilir. Nümunə üçün aşağıdakı proqramı verək:
Proqram SECOND; USES CRT; VAR OP: CHAR; (* dayishanlar*) X, Y, Z: REAL; DAYAN: BOOLEAN; BEGİN (*Proqramin asas hissasi*) DAYAN:= FALSE; WRITELEN; (*Bosh satir*) WRITE (‘(x,y)=’); READLN (x,y); WRITE (‘Op:’); READLN ( OP); CASE OP OF ‘+’:Z:=X+Y; ‘-‘: Z:=X-Y; ‘*’: Z:=X*Y; ‘/’: Z:=X-Y; ELSE DAYAN:=TRUE; END; IF not DAYAN THEN WRITELN (‘ NATICA= ‘ Z:8:2); END.