Главная / Информатика / Паскаль тілінде басқару операторлары

Паскаль тілінде басқару операторлары

3-сабақ. Шартты оператор

Турбо Паскальда тармақталған алгоритмдер шартты операторды жүзеге асыруға мүмкіндік береді. Шартты оператор кейбір шарттарды тексеруге және тексеріс нәтижесіне байланысты белгілі бір әрекет орындауға жағдай туғызады.

Шартты оператор құрылымы келесі түрде болады:

IF шарт THEN 1-оператор ELSE 2-оператор;

Алдымен шарт есептеліп, егер нәтиже – TRUE (ақиқат) болса, онда 1-оператор орындалады, егер нәтиже FALSE (жалған) тең болса, онда керісінше 2-оператор орындалады.

Шартты операторда then кейін және else кейін синтаксис бойынша тек бір оператор ғана тұра алады. ELSE сөзінің алдында нүктелі үтір ешқашан қойылмайды. Егер берілген шартты орындау (немесе орындамау) кезінде бір емес, бірнеше әрекет орындау қажет болса, онда оларды бір құрама операторға, яғни бұл әрекеттер тізбегін begin... end операторлар жақшасына алу керек.

Команда форматы: BEGIN оператор; оператор; ... оператор END;
Мысалы:
If abegin
R:=a;
A:=b
B:=r
End;


Блок-схемада шартты оператор келесі түрде болады:

Мhello_html_m5059c2a4.gifысал 1: Екі сан енгізу, оларды салыстыру, нәтижені мына түрде шығарыңыз: ab

Program chisla;

Var a,b:integer;

Begin

Readln(a,b);

If a

else if a=b then writeln(a,'=',b) else writeln(a,'>',b);

End.

Шартты оператордың қысқартылған түрі бар:

IF условие THEN оператор1;

hello_html_m7dc45f.gif





Мысал 2: Сан енгізу, егер ол оң болса, оны 2 есе арттыру.

Program chislo2;

Var a:integer;

Begin

Writeln('а санын енгізіңіз');

Readln(a);

If a>0 then a:=a*2;

Writeln(a);

Readln;

End.


Логикалық операциялар және амалдар.

Егер шарт орындалса, сәйкес амал ақиқат деп айтылады, егер орындалмаса – амал жалған. Күрделі шартарды құру үшін Паскальда төрт логикалық операциялар бар:

NOT – терістеу (ЕМЕС),

AND – логикалық көбейту (ЖӘНЕ),

OR – логикалық қосу (НЕМЕСЕ),

XOR – ариметикалық "немесе".

Әр түрлі мәндегі операторлар үшін логикалық операциялар нәтижесі кестеде келтірілген, мұндағы Т- true (ақиқат), F - false (жалған), ал А және В қатынас операциялар нәтижесі.

A

B

Not A

A and B

A or B

A xor B

T

T

F

T

T

F

T

F

F

F

T

T

F

F

T

F

F

F

F

T

T

F

T

T

Логикалық операциялар приоритеті: 1) not; 2) and; 3) or; 4) xor.

Логикалық амалдар мысалдары:
a) (0b) (a=0) OR (abs(x)<5)
c) NOT (x=y)

Қатынас операциялардың приритеті логикалық операция приоритетінен төмен, сондықтан оларды логикалық операциялармен бірге қолданған кезде жақшаға алған жөн.

Айнымалылар, константалар, салыстырулар, логикалық операциялар мен жақшалардан логикалық амалдар құруға болады.

Келесі есепті қарастырайық:

а және b қабырғалы тікбұрышты саңылау мен х, у, z қабырғалы кірпіш бар. Кірпіш саңылаудан өте ала ма, соны анықтау қажет.

Шешуі.

Кірпіштің әрқайсысын 90 градусқа бұруға болатын 3 қыры бар, яғни әр қыр үшін екі жағдайды тексеру қажет. Барлығы алты. Мынадай шарттар аламыз:

(a>x)and(b>y) or (b>x) and (a>y) or

(a>x) and(z>y) or (z>x) and(a>y) or

(b>x) and(z>y) or (z>x) and(b>y)

Бағдарлама коды:

Program prim_8;

Var a,b,x,y,z:integer;

F:boolean;

Begin

Write('Саңылау өлшемін енгізіңіз ');

Readln(a,b);

Write('Кірпіш өлшемін енгізіңіз ');

Readln(x,y,z);

If (a>x)and(b>y) or (b>x)and(a>y) or (a>x)and(z>y) or

(z>x)and(a>y) or (b>x)and(z>y) or (z>x)and(b>y)

then Writeln ('Кірпіш саңылауға өте алады')

Else Writeln ('Кірпіш саңылауға өте алмайды');

Readln;

End.


Таңдау операторы Case.

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

Case операторының форматы мынадай:

Case реттік айнымалы of

1_мән: 1_оператор;

2_мән: 2_оператор;

n_мән: n_оператор;

Else оператор;

End;

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

Егер бірнеше мән үшін бір оператор орындау қажет болса, онда оларды үтір арқылы немесе диапазонын көрсетіп жазуға болады.

Мысал 1

Case i of

1,3,5,7:Writeln('Тақ сандар');

2,4,6,8:Writeln('Жұп сандар');

10..100: Writeln('10-нан 100-ге дейінгі сандар');

End;


Саse операторының блок-схемасы:

Мhello_html_2b70408d.gifысал 2: Апта нөмірін енгізу, нөмірге байланысты «дүйсенбі», «сейсенбі» және т.б. атауларды шығару, егер нөмір 7-ден көп немесе 1 аз болса, онда «мұндай апта күні жоқ» деп шығару керек.

Program den;

Var n:integer;

Writeln('Апта нөмірін енгізіңіз');

Readln(n);

Case n of
1: writeln ('дүйсенбі');
2: writeln ('сейсенбі');
3: writeln ('сәрсенбі');

4: writeln ('бейсенбі');

5: writeln ('жұма');

6: writeln ('сенбі');

7: writeln ('жексенбі');

Else writeln ('мұндай апта күні жоқ');

End;


Есептерді шешу:

Шартты оператор қолдануы мысалы ретінде екі санның ең үлкенін табу есебін қарастырайық.

Берілген есептің алгоритмін құрайық:

Берілгені:

a,b – деректер типі (?) – мысалы бүтін сандар

Шешуі:

Егер a>b онда Жауап шығару:’Екі санның үлкені а’

Әйтпесе Жауап шығару:’ Екі санның үлкені b’

1-тапсырма

  1. Turbo Pascal бағдарламалау ортасын ашу.

  2. Берілген алгоритм бойынша бағдарлама теру.

  3. Бағдарламаны компиляциядан өткізу, орындауға жіберу.

  4. Барлық жағдайлар үшін бағдарлама жұмысын тексеру.

program Number;

var

a,b:integer;

Begin

Writeln('Екі a және b санын енгізіңіз:');

Readln(a,b);

If a>b

then Writeln(' Екі санның үлкені а=',a)

else Writeln(' Екі санның үлкені b=',b);

end.

Сұрақ: Біздің бағдарлама бізді барлық жағынан қанағаттандыра ма?

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

Егер a=b

Онда Жауап шығару «Сан a=b»

program Number;

var

a,b:integer;

Begin

Writeln('a және b бүтін сандарын енгізіңіз:');

Readln(a,b);

If a>b

then Writeln('Екі санның үлкені а=',a)

else

if a=b

then Writeln('Сан a=b=',a)

else Writeln('Екі санның үлкені b=',b);

end.


Есеп 2. Бүтін сан берілген. Егер ол оң болса, онда оған 1 қосу; әйтпесе оны өзгертпеу. Нәтижені шығару.

Program if_1;

Var a:integer;

Begin

Writeln('Сан енгізіңіз');

Readln(a);

If a>0 then a:=a+1;

Writeln('Нәтиже ',a);

Readln;

End.













Есеп 3. Бүтін К саны берілген. К санына сәйкес бағалау жолын шығару ( 1 – «нашар», 2 – «қанағаттанарлықсыз», 3 – «қанағаттанарлық», 4 – «жақсы», 5 – «өте жақсы». Егер К 1-5 диапазонында жатпаса, «қате» шығару.

Program case_1;

Var k:integer;

Begin

Writeln('бағаны енгізіңіз');

Readln(k);

Case k of

1:Writeln(' нашар');

2:Writeln(' қанағаттанарлықсыз');

3:Writeln ('қанағаттанарлық');

4:Writeln('жақсы');

5:Writeln('өте жақсы');

Else Writeln('мұндай баға жоқ');

end;

Readln;

End.





Тапсырмалар

  1. Нәтижесі дұрыс есептелген амалдарды белгілеңіз:

  1. 60>20 = true

  2. not (30> 10) = false

  3. (3>2) and (5>6) = true

  4. (60>70) or (100<90) = true

  5. (60>70) and (100<90) = true.

  1. А:=5; B:=10; C:=15 деп алайық. (true, false) амалының нәтижесін есептеңіз:

    Амал

    Нәтиже

    Амал


    Нәтиже




    (А=В) or (A<=B)


    Not (A>=5)


    (А=В) and (A<=B)


    (С=А+В) or (B>C)


    not(A=B) and (A


    (С<=А-В) or (B


    (В<=12)ог(С=15)


    (С<=А+В) or (B>C)


    (B<=12)and(C=15)


    (С=А+В) and(B


  2. Әр сөйлем үшін логикалық амал жазыңыз:

А (18; 80) диапазонында жатады ___________________________________

А [18; 80) диапазонында жатады ___________________________________

А (-10; 18) диапазонында жатады __________________________________

А [-10; 18] диапазонында жатады __________________________________

А -1 кіші немесе 1 артық__________________________________________

А [18; 80) диапазонында жатпайды __________________________________

А 0 артық және 10 тең емес_________________________________________

А 4 және 5 еселі (mod қолданыңыз)_________________________________

  1. Алгоритм үзіндісінің сөздік сипаттауын Паскаль тілінде жазыңыз:

  1. Егер Х саны 47 тең болса, онда айнымалы Х 15 арттыру, әйтпесе 36 азайту;

  2. Егер айнымалы S 21 тең болмаса, онда айнымалы S 6 есе көбейту , әйтпесе 53 кеміту;

  3. Егер айнымалы U тақ болса, онда оны 8 арттыру, әйтпесе 53 есе көбейту;

  4. Егер Z саны 48 үлкен болса, онда 51 арттыру, әйтпесе 51 кеміту;

  5. Егер X 15 кіші болса, онда Y мәніне X/2 меншіктеу, ал Z мәніне 15/ X меншіктеу, әйтпесе Y мәніне X*2 меншіктеу, ал Z мәніне 15- X меншіктеу.

  1. ах=b теңдеуінің шешімін табатын бағдарлама шығатындай бағдарлама жолдарын дұрыс ретпен орналастырыңыз:

    1) writeln(‘шешімі жоқ)


    2) a,x,b:real;


    3) if


    4) writeln(‘x=’,b/a);


    5) a<>0


    6) begin


    7) then


    8) readln(a,b)


    9) end.


    10) else


  2. Берілген бағдарламаны орындағаннан кейін экранға не шығады:

    a=8, n=5

    a=3, n=3

    Program Primer;

    Var x, y:integer;

    Begin

    Read(a,n);

    if a<=10 then writeln(a*2)

    else writeln(n*2);

    End.

    Program Primer;

    Var x, y:integer;

    Begin

    Read(a,n);

    If a mod 3<>0

    then writeln(a+5)

    else writeln(n+2);

    End.

  3. Кестені толтырыңыз:

Program Primer;

x

y

a

19

10


6

44


100

49


55

22


Var a, x, y:integer;

Begin

Read(x,y);

If (x+y>50) or (y>100) Then

A:=x+y

Else

A:=2*x+y;

Write(a);

End.

  1. Бағдарлама фрагментін блок-схема түрінде көрстеңіздер:

а)

IF a>b THEN

k:=k+l

ELSE

IF b>c THEN

k:=k+2

ELSE

k:=k+3;

Writeln(k)

  1. Берілген CASE операторына эквивалентті IF операторын жазыңыздар:

CASE x OF

2, 5 : writeln ('Тең түсу');

7..11: writeln ('Жеңіс')

ELSE

writeln ('Жеңіліс')

END;

  1. Бағдарлама фрагментін орындағаннан кейін экранға не шығатынын анықтаңыз:

    k:=10;

    CASE k mod 3 OF

    0: writeln('k=4m');

    1: writeln('k=4m+l');

    2: writeln('k=4m+2');

    3: writeln('k=4m+3');

    END;

    d:=30; s:=1000;

    Case d of

    1..5: s:=15;

    6..10: s:=36;

    11..25: s:=30;

    End;

    Writeln(s);

  2. Берілген IF операторына эквивалентті CASE операторын жазыңыздар:

……………………….

If (x>=a) and (x<=b) then

writeln ('Жақсы')

else

If (x = d) or (x = f) then

writeln ('Нашар')

else

writeln ('Қате енгізу');

……………………….

  1. Келесі есептер үшін бағдарлама құрыңыз:

Есептер

Белгі

hello_html_m49895d5d.gifХ саны берілген. х2+1, если х <0

  1. Функция мәнін есептеу: У= x-2,1,если х>hello_html_777b1f80.gif

sin x, если 0hello_html_50e13651.gifхhello_html_69ce5f53.gif


  1. Мектепте оқитын енгізген жылы бойынша (1-ден 11 дейін сан) «Сәлем, k-сыныптық хабарламасын шығару. Мысалы, егер k=1, «Сәлем, бірінші сыныптық




Бағдарлама құру:

  1. Функция мәнін есептейтін блок-схема және бағдарлама құру.

hello_html_m4e280077.gif

  1. Бүтін сан берілген. Егер ол оң болса, 1 қосу; әйтпесе 2 азайту. Нәтижені шығару.

  2. Бүтін сан берілген. Егер ол оң болса, 1 қосу; егер теріс болса, 2 азайту; егер нөлге тең болса, 10 ауыстыру. Нәтижені шығару.

  3. Бүтін үш сан берілген. Жиын ішінде оң сандар санын табу.

Паскаль тілінде басқару операторлары
  • Информатика
Описание:

Тақырыбы: Паскаль тілінде басқару операторлары

Мақсаты: Паскаль  тілінде  шартты,  таңдау  операторлардың  жасалу жолын  көрсете  отырып  есеп  шығаруға  дағдыландыру. 

                                       Шартты оператор

Турбо Паскальда тармақталған алгоритмдер шартты операторды жүзеге  асыруға  мүмкіндік  береді.  Шартты  оператор  кейбір  шарттарды  тексеруге  және  тексеріс  нәтижесіне  байланысты  белгілі  бір  әрекет орындауға жағдай туғызады.

Таңдау операторы Case.

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

Автор Утегалиева Данара Сарсенгалиевна
Дата добавления 09.01.2015
Раздел Информатика
Подраздел
Просмотров 989
Номер материала 47468
Скачать свидетельство о публикации

Оставьте свой комментарий:

Введите символы, которые изображены на картинке:

Получить новый код
* Обязательные для заполнения.


Комментарии:

↓ Показать еще коментарии ↓