Теориялық бөлім
Белгiлi бiр шартты тексеру нәтижесiне байланысты екi түрлi iс-әрекеттiң бiреуi ғана орындалатын жағдайда шарттық оператор қолданылады. Шарттық оператордың жазылу форматы:
Толық түрi: If <шарт> then <1 оператор >
еlse <2 оператор >;
Шарттық оператор былай орындалады: Ең алдымен шарттағы логикалық өрнектiң нәтижесi анықталады. Егер нәтиже ақиқат болса <оператор1> орындалады, ал нәтиже жалған болса <оператор2> орындалады.
Қысқаша түрi: Шарттық операторда шарт орындалмаған жағдайда еш нәрсе орындау қажет болмаса, else тармағын жазбауға болады:
If <шарт> then <оператор>;
Тармақты алгоритмдердің орындалу реті блок-схемада анық көрінеді. Блок-схема дегенiмiз алгоритмдi геометриялық фигуралар арқылы бейнелеу.
Мысал: экранға екi санның үлкенiн шығару керек.
Есептi шығару алгоритмiн блок-схемамен көрнекi түрде көрсетуге болады.
program esep_1;
var x, y, z: real; х,у-берiлген айнымалылар, z-нәтиже
begin
writeln (‘2 сан енгiз’);
readln (x, y); бос орынмен 2 сан енгiземiз
if x>y then z:=x егер x >y болса, онда нәтиже х болады
еlse z:=у; әйтпесе нәтиже y болады
writeln (z); readln;
end.
Бағдарламаның орындалу барысында 5 және 7 сандарын енгiземiз. Айнымалы х-ке 5, у-ке 7 меншiктеледi (х:=5,y:=7). 5>7 шарты орындалмайды, нәтижесi жалған, сондықтан else –ден кейiнгi оператор орындалады, ол оператор нәтижеге у-тi меншіктейді. Одан соң z-тің мәнi экранға шығарылады. Экранға 7 жазылады.
Мысал: Енгiзiлген санның [-5;5] аралығында жататындығын анықтау.
Енгiзетiн санды х деп белгiлеймiз, типi – real. Егер х саны үшiн х>-5 және х<5 шарттары бiр уақытта орындалатын болса, онда х саны [-5;5] аралығына тиiстi болады
program aralyk;
var x: integer;
begin
writeln (‘х санын енгiз’); readln (x);
if (x>-5) and (x<5)
then writeln (‘аралықта жатады’)
еlse writeln (‘аралықта жатпайды’);
readln;
end.
Тапсырма: Енгізілген сан терiс болса, оның таңбасын қарама-қарсыға ауыстыр. Есептi шешу үшiн мына шарттық операторды қолдан. If x<0 then x:=-x;
Пайдаланылатын әдебиет: [2], 14-25 беттер; [1], 91-98 беттер;
Қабаттасқан шарттық оператор. Кейбiр есептердi шешу кезiнде, бiрнеше варианттарды қарастыруға тура келедi. Бұл жағдайда, бiрнеше шарттық операторлар қолданылады, яғни then, else қызметшi сөздерiнен кейiн, жаңа шарттық оператор жазылады.
Мысал: Бүтiн а, b,с сандары берiлген. Егер аbс болса, барлық сандарды өз квадратымен ауыстыр, егер а>b>с болса, әрбiр санды үшеуiнiң iшiндегi ең үлкенiмен, басқа жағдайда, әрбiр санның таңбасын өзгерт.
Есептiң берiлгенi бойынша: егер а b с болса, онда a:=a2, b:=b2, c:=c2;
егер а> b >с, онда с:=а, b:=а;
басқа жағдайда, a:=-а, b:=-b, c:=-с;
program esep_3;
var
a , b , c : integer ;
begin
writeln (‘a, b ,с сандарын енгiз’); readln (a , b , c );
if (a<=b) and (b<=c) then
begin
a:=sqr(a); b:=sqr(b); c:=sqr(c);
end
else
if (a>b) and (b>c) then
begin c:=a; b:=a; end
else begin a:=-a; b:=-b; c:=-c; end ;
writeln (a:5,b:5,c:5); readln;
end.
Есептi шешудiң блок-схемасы төмендегiдей болады.
Тапсырма: Жоғарыдағы мысалдағы шарттық операторды былай өзгертсек:
if (a<=b) and (b<=c) then
begin
a:=sqr(a); b:=sqr(b); c:=sqr(c);
if (a>b) and (b>c) then
begin a:=c; b:=c; end;
else begin a:=-a; b:=-b; c:=-c; end ;
end.
бағдарламаның орындалуы қалай өзгередi? Есептiң берiлгенi қалай болады. Блок-схемасын сыз.
№5 зертханалық жұмыс. Программаларды жобалау әдістері,декомпозиция. Таңдау командасы
Мақсаты: Таңдау операторының жазылуы мен пайдаланылуын меңгеру.
Теориялық бөлім
Егер алгоритмде бiрнеше жағдайдың бiреуiн пайдалану қажет болса, онда таңдау операторы қолданылады. Таңдау case операторымен программаланады. If операторы екi жағдайдың бiреуiн орындайды, ал case операторы бiрнеше жағдайдың бiреуiн таңдайды. Жағдайлар таңдау айнымалысының мәнiне байланысты таңдалады.
Жазылу форматы:
case <таңдау айнымалысы> of
<1-тiзiм (мән)>:<оператор 1;>
<2-тiзiм (мән)>:<оператор 2;>
:<оператор n;>
[else <оператор>]
end;
Case операторының орындалу тәртiбi:
Алдымен <таңдау айнымалысының> мәнi анықталады. Анықталған мән қай тiзiмге жатса, сол тiзiмге сәйкес келетiн оператор орындалады да, басқа операторлар орындалмай, case операторы жұмысын аяқтайды.
Егер <таңдау айнымалысының> мәнi тiзiмнiң ешбiреуiне жатпаса, онда else-де көрсетiлген <оператор> орындалады. Еlse болмаса, case операторы жұмысын аяқтайды.
Case операторын пайдалану ережелерi:
1. Таңдау айнымалысы мен тiзiмдегi мәндер бiр типтi болу керек.
Еlse тармағының болуы мiндеттi емес, кей жағдайда жазбауға да болады, егер else тармағы жазылса, алдыңғы оператордан соң (;) қойылады.
3. Мәндер тiзiмiнде үтiрмен ажыратылған жеке мәндердi немесе бастапқы және соңғы мәндерi “..” ажыратылған диапазонды көрсетуге болады.
4. <Операторда> “;”-мен ажыратылған бiрнеше операторды жазуға болады.
5. Таңдау айнымалысы литерлiк, бульдiк және пайдаланушының типтерiнде болады.
Ескерту: String, real типтегi айнымалылар таңдау айнымалысы бола алмайды!
Мысал: Арифметикалық төрт амалды (+,-,*, / ) орындайтын калькуляторды бейнелейтiн бағдарлама.
program calk;
var
x, y, r: real; amal, a : char;
begin
repeat
write (‘x = ‘ ) ; readln (x) ;
write (‘y = ‘ ) ; readln (y) ;
writeln (‘операция +,–,*,/’ ) ;
readln (amal ) ;
case amal of
‘+’ : rezult : = x + y ;
‘– ‘ : rezult : = x-y ;
‘*’ : rezult : = x*y ;
‘ / ‘: rezult : = x/y ;
else writeln (‘қате белгi’) ;
end;
writeln (x, amal,y,’=’, r );
write (‘жалғастырасың ба Y/N ‘ ) ;
readln (a ) ;
until (a =’ N’) or (a =’n’) ;
end.
Пайдаланылатын айнымалылар: х , y - берiлген сандар; r - нәтиже; amal айнымалысы 1 символдық типтi, бұл айнымалыда арифметикалық операцияның белгiсi сақталады. a айнымалысында бағдарламаның аяқталу белгiсi сақталады, типi-символдық; N немесе n клавишасы басылғанда бағдарлама жұмысын аяқтайды.
Бағдарламаның орындалу барысында х,у мәндерi клавиатурадан енгiзiледi. Одан соң мына жолдармен
writeln (‘операция +,–,*,/’ ) ;
readln (amal ) ;
операцияның белгiсi amal айнымалысына енгiзiледi. Case операторы amal айнымалысының мәнi бойынша, арифметикалық операцияны орындайды. Мысалы, егер amal айнымалының мәнi “ * “ болса, онда r :=x*y операторы орындалады. Егер amal мәнi ешбiр белгi болмаса, else-ден кейiнгi жол орындалады да, экранға “қате белгi” деген хабарлама шығады. (Repeat, until операторлары туралы алдағы тақырыптарда түсiнiк берiледi).
Пайдаланушының типтерi. Айнымалының қабылдайтын мәндерi алдын ала белгiлi жағдайда, пайдаланушы стандарттық емес өз типтерiн жасауына болады.
Паскаль тiлiнде пайдаланушы жасаған типтi сипаттау үшiн type резервтелген сөзi қолданылады.
Жазылу форматы:
type
<типтiң аты> = <тип мәнi>;
Пайдаланушы жасайтын типтер екi түрлi болады. Олар: санақтық (перечисляемый) және аралықтық (интервальный) типтер.
Бұл типтегi берiлгендер жадының бiр байтын алады, сондықтан пайдаланушының типтерi 256-дан көп элементтен тұра алмайды. Бұл типтердi қолдану енгiзiлетiн мәндердi бақылайды, бағдарламаның көрнекiлiгiн жақсартады, жадыны үнемдейдi және қатенi iздеудi жеңiлдетедi.
0>5> 2>1>
Достарыңызбен бөлісу: |