Паскаль тілінің басқару: шартты және шартсыз көшу, таңдау операторлары
Паскаль тілінің басқару: шартты және шартсыз көшу, таңдау операторлары
Негізгі ұғым: Шарт дегеніміз жауабы «иә» немесе «жоқ» болатын ұйғарым (сұрақ). Шартты бар операторларды құрама немесе күрделі дейді.
Тармақтаушы оператор – шарттың сақталуына/сақталмауына байланысты екі түрлі жағдайдың бірін таңдауға мүмкіндік береді.
Паскалдағы жазылу түрі:
Толық тармақтау | БС | |||
if <шарт> then 1-оператор else 2-оператор; шарт сақталса жауабы «иә» болып 1-оператор атқарылады және керісінше. мыс: gas:=15; if jas<8 then write(‘сен менен ’,8-jas,’ кішісің’) else write(‘сен менен ’,jas-8,’ үлкенсің’); Жоғарыдағы сұраққа назар салыңдар. |
|
Қысқаша тармақтау | БС | ||
if <шарт> then оператор; шарт сақталса жауабы «иә» болып оператор атқарылады, сақталмаса («жоқ») компьютер келесі операторды орындауға өтеді.. мыс: gas:=15; if jas<8 then write(‘сен менен ’,8-jas,’ кішісің’);
|
|
Көшу немесе шартсыз көшу операторы операторлардың рет – ретімен орналасуын бұзып, келесі атқарылуды, яғни белгісі бар операторға көшуді орындайды.Бұл оператор GOTO (көшу) түйінді сөзінен басталады да, одан кейін Label бөлімінде сипатталған белгі атауы жазылады.
Есте сақта: Пішімі: Goto <белгі>;
Мысал:
Квадрат теңдеуді шешу алгоритмі. ах2 + вх + с = 0 1. Не белгілі? а, в, с – нақты сандар 2. Не істеу керек? Кв.теңдеудің х1, х2 түбірлерін табу керек, түбірі болмаса «түбірі жоқ» деген хабар шығару керек. 3. Қалай жасау керек? Дискриминант d=b2-4аc D<0 түбірі жоқ D=0 бір түбірі бар x1=-b/2a d>0 екі түбірі бар х1=?, х2=? , | program kvtendeu; var a,b,c:integer; x1,x2,d:real; label 10; begin write(‘Кв.тенд.коэф. енгіз a,b,c ‘); read(a,b,c); d:=sqr(b)-(4*a*c); if d<0 then begin writeln(‘түбірі жок ‘);goto 10;end; if d=0 then begin writeln(‘Бір түбірі бар: ‘,-b/(2*a));goto 10;end else writeln(‘Екі түбірі бар: ‘,-b+sqr(d)/(2*a),’ ‘,-b-sqr(d)/(2*a)); 10: end. |
Осындай мақсаттарды шешу үшін Паскальда таңдау операторы қолданылады. Жазылу түрі мынандай:
| ЕСЕП: Клавиатурадан енгізілген бүтін сан бойынша апта күндерін анықайтын программа жазыңыз. program apta; var kun:integer; begin write(‘kyn retin engiz ‘); read(kun); case kun of 1:writeln(‘duisembi ‘); 2:writeln(‘seisembi ‘); 3:writeln(‘sarsembi ‘); 4:writeln(‘beisembi ‘); 5:writeln(‘juma ‘); 6:writeln(‘sembi ‘); 1:writeln(‘jeksembi ‘); else writeln(‘byndai kyn jok ‘); end; end. |
Тапсырма№1: Екі санның үлкенін табатын программа құрылған. Шартты дұрыс қойыңыз.
Program max;
Var a, b, max: integer;
Begin
Readln (a,b);
……………………………………….
Writeln (‘ max= ’ , max);
End.
Тапсырма№2: Үш кесіндінің ұзындықтары берілген. Егер бұл үш кесіндіден үшбұрыш құру мүмкін болса, онда оның периметрін және ауданын табыңдар.
Тапсырма№3: Қай операторлар дұрыс жазылмаған?
program qq;
var a, b: integer; x, y: real;
begin
a := 5;
10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + b +y);
writeln (x);
end.
Үйге тапсырма:
Тапсырма№1: Үзіндідегі бағдарлама жолдары есеп шешіміне сәйкес келуі үшін қандай ретпен
орналасуы керек?
Есеп:Егер үшбұрыш қабырғалары А, В, С берілген болса, онда үшбұрышқа сырттай сызылған шеңбердің радиусын формуласымен есептеңдер.
{1}begin
{2}readln (a,b,c);
{3}s:=sqrt(p*(p-a)*(p-b)*(p-c));
{4}p:=(a+b+c)/2;
{5}writeln(‘r=’,r);
{6}end.
{7}r:=(a*b*c)/(4*s);