ПОӘК 042-18-12 5/03-2013 №1 басылым 18. 09. 2013ж


Тақырып 5. Шартсыз және шартты көшу операторлар және тармақталған құрылым алгоритмдерін программалау



бет7/12
Дата13.02.2017
өлшемі2,26 Mb.
#9383
1   2   3   4   5   6   7   8   9   ...   12

Тақырып 5. Шартсыз және шартты көшу операторлар және тармақталған құрылым алгоритмдерін программалау
Дәріс жоспары

  1. Құрамды оператор.

  2. Шартсыз көшу операторы.

  3. Шартты көшу операторы.

  4. case…of таңдау операторы.



Сабақ мақсаты

Білімділік


  • Студенттерге шартты және таңдау операторлары жайлы жалпы мағлұмат беру.

  • Шартты және таңдау операторларын жазу әдістерін көрсету.

  • Тармақталған құрылым алгоритмдерін программалауды үйрету.


Дамытушылық


  • Студенттердің операторларды қолдана отырып программалар құра алатынын қадағалау және өздігінен тапсырмаларды орындауы

  • Әрбір оператордың жазылу формасын білу.

  • Студенттердің қабілетін дамыту.


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

Шартты оператор. «Иә» немесе «Жоқ» деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Егер оның нәтижесі ақиқат, яғни құптарлық болса, онда бір программалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда, программаның басқа бір тармағы жүзеге асырылады. Мұнда есептің шартына байланысты тармақталу алгоритмдерінің «Таңдау» не «Аттап өту» мүмкіндіктерінің бірі орындалуы тиіс. Бұл оператордың жазылу түрі төмендегі төрт үлгінің біріне сәйкес келуі қажет:

а) If <шарт> then <1-оператор>;

{шарт орындалмағанда <1-оператор>-ды аттап өту}

ә) If <шарт> then <1-оператор>else <2-оператор>;

{<1-оператор> және <2-оператор>-дың бірін таңдау}

б) If <шарт> then {шарт орындалғанда}

begin {құрмалас операторлар}

<1-оператор>; {орындалып, шарт орындал-}

<2-оператор> {маса, оларды аттап өту}



end;

в) If <шарт> then {шарттың орындалуы немесе}



begin {орындалмауына байланысты}

<1-оператор>; {құрмалас операторлардың}

<2-оператор>; {бірін таңдап, ал}

… {екіншісін аттап өту}


end


else

begin


;

;



end;

Мұндағы if – оператордың аты (егер); then – түйінді сөз (онда); else – түйінді сөз (әйтпесе); <шарт> - логикалық өрнек; <1-оператор>,..., , ,..., - кез келген орындалатын оператор.



Мысал 1:

Берілген a, b, c сандарының ең кішісін табу қажет болсын.


иә жоқ иә иә


жоқ жоқ

иә
жоқ
1.1-сурет
Есепті шешудің алғашқы тәсілінің блок-схемасы 1.1-суретте көрсетілген. Бұл тәсіл онша ықшам болмағанымен түсінуге ыңғайлы. Паскаль тілінің мүмкіндіктерін толық көрсету үшін осы алгоритмнің басқа жолдары да түсіндірілген.

2-блок пернелер тақтасынан кез келген үш санды енгізу жұмысын атқарады. 3-, 4- және 5-блоктар шарттарды тексере отырып, ең кіші санды анықтайды. 6-дан 9-блокқа дейін min айнымалысына ең кіші мән меншіктеледі. 10-блок нәтижені экранға шығарып, 11-блок тағы да үш сан енгізу қажет болған жағдайда, «Y» (Yes-Иә) немесе алгоритм жұмысын аяқтау үшін «N» (No-Жоқ) әріптерін енгізуді өтінеді. Келесі блок енгізілген t айнымалысының мәнін тексеріп, қажет болса алгоритмді қайта орындайды. Осы блок-схемаға сәйкес келетін программа мәтіні төменде көрсетілген:

Program min (input, output);

Label 10;

Var a, b, c, min: real;

t: char;


begin

10:write(‘бос орындармен бөлінген 3 сан енгізіңіз:’);

readln(a, b, c);

if a

if a

else min:=c

else

if b>c then min:=b



else min:=c;

writeln(‘Ең кіші сан:’, min:8:2);

write(‘Тағы енгізесіз бе? («Yes»-иә, «No»-жоқ)’);

readln(t);

if (t=’Y’) or (t=’y’) then goto 10

end.


Осы есепті шығарудың мұнан гөрі қысқалау екінші тәсілі 1.2-суретте көрсетілген Бұл схемаға сәйкес программа мәтіні төмендегідей болады:

Program min (input, output);

Label 10;

Var a, b, c, min: real;

t: integer;

begin


жоқ



иә
10:write(‘a, b, c=’); readln(a, b, c);

{3 санды енгізy}

if a

if c

W
иә
riteln(‘үш санның кішісі:’,min:6:2);

Write ('тағы енгізесіз бе? (1-иә,

0-жоқ)’);

R
жоқ


ead(t); if t=1 then goto 10

End.



иә


жоқ

1.2-сурет


Программаның ең ықшам түрі төмендегідей болады:

Program min;

Label 10; Var a, b, c, min: real; t: integer;

begin


10:write(‘a, b, c='); readln(a, b, c); {3 сан енгізy}

min:=a;


if bwriteln(‘үш санның кішісі:’, min:6:2);



end.
Мысал 2: Санды кез келген бүтін оң дәрежеге (n) шығаратын программа құру қажет. Бұл есепті де бірнеше тәсілмен шығаруға болады.

Бірінші тәсіл:

Program stepen;

Label 10, 20;

Var n,i: integer;

a, p: real;

begin


write(‘санды және бүтін оң дәрежені енгізіңіз’);

readln(a, n);

p:=1; i:=1;

if n=0 then goto 10;

20: p:=p*a; i:=i+1;

if i<=n then goto 20;

10:writeln(a:8:3, n:4, ‘дәреже’,`````p:12:4)

end.


Екінші тәсіл (1.3-сурет):

Program stepen;

Label 10;

Var n,i: integer;

a, p: real;

begin


write(‘a санын енгізіңіз:’); readln(a); 1.3-сурет

write(‘n оң бүтін дәрежені енгізіңіз:’); readln(n);

p:=1; i:=1;

10: if i<=0 then

begin

p:=p*a; i:=i+1; goto 10



end;

writeln(‘p=’, p:8:3)

end.

Енді n оң не теріс бүтін сан болған жағдайды, яғни үшінші тәсілді қарастырайық.



Program stepen;

Label 10, 20, 30;

Var n,i: integer; a, p: real;

begin


write(‘a,n=’); readln(a, n);

p:=1; i:=1;

if n>=0 then

begin


if n>0 then

begin


10: p:=p*a; i:=i+1;

if i<=n then goto 10

end

else goto 30



end

else


begin

20: p:=p/a; i:=i+1;

if i<=abs(n) then goto 20

end;


30: writeln(‘p=’, p:8:3)

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


Таңдау операторы (case) бірнеше операторлардың ішінен таңдау жолымен көп тарамды тармақталуды ұйымдастырады. Тармақталу берілген шартты тексеруден басталады, шарт мәндері таңдап алынған типтердің бірі болатын бүтін, символдық, логикалық өрнек түрінде жазылады. Бұл өрнек оператор орындалар кезде белгілі бір мәнге ие болуы тиіс. Сол мән оған байланысты орындалатын оператордың белгісі рөлін атқарады. Егер өрнектің есептелген мәні көрсетілген мәннің біріне сәйкес келсе, сол қатардағы оператор орындалады. Жазылу форматы

Case <өрнек> of

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

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

...

CN: ;



[else ]

END;


мұндағы <өрнек>-тексерілетін шарт не таңдау индексі; С1,..., CN-тұрақтылар, яғни өрнектің мүмкін мәндері; <1-оператор>, <2-оператор>,..., -тілдің кез келген операторлары; -өрнектің мәні көрсетілген мәндерден басқаша болғанда орындалатын тілдің кез келген операторы. Тік жақшаның ішіндегі сөз тіркесі болмауы да мүмкін, ондай жағдайда, яғни өрнектің мәні көрсетілген тұрақтылардың ешбір мәніне сәйкес келмесе, операторды орындау бірден аяқталады. Сонымен, таңдау операторы селектор мен тұрақты мәндерінің сәйкес келуіне байланысты бір ғана операторды орындауы тиіс. Кейде өрнектің мәні тұрақтының көрсетілген мәндерінің аралығында болуы ықтимал, мұндайда тұрақтының мәні кесінді тәрізді сандар бірлігін қамтуы тиіс.

Мысал 1:

PROGRAM DAY;

VAR kyn: integer; {Бұл программада бірден}

BEGIN {жетіге дейінгі кез келген}

Read(kyn); { сан енгізіліп, егер ол}

Case kyn of

1: Writeln(‘дүйсенбі’); {1-ге тең болса, “дүйсенбі”}

2: Writeln(‘сейсенбі’); {2-ге тең болса, “сейсенбі”}

3: Writeln(‘сәрсенбі’); {3-ке тең болса, “сәрсенбі”}

4: Writeln(‘бейсенбі’); {4-ке тең болса, “бейсенбі”}

5: Writeln(‘жұма’); {5-ке тең болса, “жұма”}

6: Writeln(‘сенбі’); {6-ға тең болса, “сенбі”}

7: Writeln(‘жексенбі’); {7-ге тең болса, “жексенбі”}

end {деген сөз жазылып шығады}

END.
Мысал 2. Келесі программада 1917 жылдан 1992 жылға дейінгі сандар енгізіліп, сол жылдары бұрынғы КСРО-да кімнің ел басқарғаны анықталды. Мұнда өрнектің мәні белгілі бір кесіндіге кіретін сан болатыны тексеріліп, сол арқылы бір оператор таңдап алынып отыр.

PROGRAM god;

VAR god: integer;

BEGIN


Write(‘жыл мөлшерін енгізіңіз:’);

Readln(god);

Write(god:4, ‘жылы’);

Case god of

1917..1924: Writeln(‘Ленин басқарды’);

1925..1953: Writeln(‘Сталин басқарды’);

1954..1956: Writeln(‘Маленков басқарды’);

1957..1964: Writeln(‘Хрущев басқарды’);

1965..1985: Writeln(‘Брежнев басқарды’);

1985..1991: Writeln(‘Горбачев басқарды’);

1991..1992: Writeln(‘Ельцин басқарды’)

end


END.

Мысал 3. Кез келген жыл мерзімін енгізіп, сол жылдың шығыс каленьдары (қазақша жыл санау) бойынша қай жануардың атына сәйкес келетінін анықтау программасы төмендегідей болады:

PROGRAM gil;

VAR

gil: integer;



BEGIN

Write(‘жыл мөлшерін енгізіңіз:’); readln(gil);

Write(gil:4, ‘жыл’);

Case (gil mod 12) of

0: write(‘мешін’);

1: write(‘тауық’);

2: write(‘ит’);

3: write(‘доңыз’);

4: write(‘тышқан’);

5: write(‘сиыр’);

6: write(‘барыс’);

7: write(‘қоян’);

8: write(‘ұлу’);

9: write(‘жылан’);

10: write(‘жылқы’);

11: write(‘қой’)

end;

writeln(‘жылы болды’)



END.
Мысал 4. Кез келген айдың бірінші жұлдызы аптаның қай күні екені белгілі болғанда, сол айдың енгізілген күнінің аптаның қандай күні болатынын анықтау керек.

PROGRAM casel;

Label 10;

Const k=1; {айдың бірі дүйсенбі болған}

{егер айдың бірі сейсенбі болса, k=2, егер айдың бірі сәрсенбі болса, k=3 т.с.с.}

VAR den, n: integer;

t: char;

BEGIN


10: write(‘айдың күнін енгізіңіз:’); readln (den);

n:=den mod 7+k-1; if n>7 then n:=n-7;

write(‘айдың’, den:3, ‘күні’);

CASE n of

1: write(‘дүйсенбі’);

2: write(‘сейсенбі’);

3: write(‘сәрсенбі’);

4: write(‘бейсенбі’);

5: write(‘жұма’);

6: write(‘сенбі’);

7: write(‘жексенбі’)

end;


writeln(‘болады’);

writeln(‘тағы енгізесіз бе? (иә-«у», жоқ-«n»)’);

readln(t);

if (t=’Y’) or (t=’y’) then goto 10

END.

ІІІ. Тармақталған құрылым алгоритмдерін программалау
Тармақталу операторына мысал келтірейін:

Квадрат теңдеуді шешу үшін арналған программаны құру (1.4-суретте блок-схемасы көрсетілген)

PROGRAM М1 (input, output);

VAR X1, X2, X, D, a, b, c:REAL;

BEGIN

WRITELN(‘a, b, c коэффициенттерін енгіз’);



READLN(A, B, C);

D:=SQR(B)-4*a*c;

IF D<0 THEN WRITELN(‘түбірі жоқ’);

IF D=0 THEN BEGIN

X:=(-b)\(2*A);

WRITELN(‘X=’,X);

END;

IF D>0 THEN BEGIN



X1:=(-b+SQRT(D))\(2*a);

X2:=(-b-SQRT(D))\(2*a);



WRITELN(‘X1=’,X1, ‘X1=’,X2);

END;

END.


жоқ иә

1.4-сурет


Сабақ мақсаты

Білімділік


  • Студенттерге шартты және таңдау операторлары жайлы жалпы мағлұмат беру.

  • Шартты және таңдау операторларын жазу әдістерін көрсету.

  • Тармақталған құрылым алгоритмдерін программалауды үйрету.


Дамытушылық


  • Студенттердің операторларды қолдана отырып программалар құра алатынын қадағалау және өздігінен тапсырмаларды орындауы

  • Әрбір оператордың жазылу формасын білу.

  • Студенттердің қабілетін дамыту.

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

Шартты оператор. «Иә» немесе «Жоқ» деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Егер оның нәтижесі ақиқат, яғни құптарлық болса, онда бір программалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда, программаның басқа бір тармағы жүзеге асырылады. Мұнда есептің шартына байланысты тармақталу алгоритмдерінің «Таңдау» не «Аттап өту» мүмкіндіктерінің бірі орындалуы тиіс. Бұл оператордың жазылу түрі төмендегі төрт үлгінің біріне сәйкес келуі қажет:

а) If <шарт> then <1-оператор>;

{шарт орындалмағанда <1-оператор>-ды аттап өту}

ә) If <шарт> then <1-оператор>else <2-оператор>;

{<1-оператор> және <2-оператор>-дың бірін таңдау}

б) If <шарт> then {шарт орындалғанда}

begin {құрмалас операторлар}

<1-оператор>; {орындалып, шарт орындал-}

<2-оператор> {маса, оларды аттап өту}



end;

в) If <шарт> then {шарттың орындалуы немесе}



begin {орындалмауына байланысты}

<1-оператор>; {құрмалас операторлардың}

<2-оператор>; {бірін таңдап, ал}

… {екіншісін аттап өту}


end


else

begin


;

;



end;

Мұндағы if – оператордың аты (егер); then – түйінді сөз (онда); else – түйінді сөз (әйтпесе); <шарт> - логикалық өрнек; <1-оператор>,..., , ,..., - кез келген орындалатын оператор.



Мысал 1:

Берілген a, b, c сандарының ең кішісін табу қажет болсын.


иә жоқ иә иә


жоқ жоқ

иә
жоқ
1.1-сурет
Есепті шешудің алғашқы тәсілінің блок-схемасы 1.1-суретте көрсетілген. Бұл тәсіл онша ықшам болмағанымен түсінуге ыңғайлы. Паскаль тілінің мүмкіндіктерін толық көрсету үшін осы алгоритмнің басқа жолдары да түсіндірілген.

2-блок пернелер тақтасынан кез келген үш санды енгізу жұмысын атқарады. 3-, 4- және 5-блоктар шарттарды тексере отырып, ең кіші санды анықтайды. 6-дан 9-блокқа дейін min айнымалысына ең кіші мән меншіктеледі. 10-блок нәтижені экранға шығарып, 11-блок тағы да үш сан енгізу қажет болған жағдайда, «Y» (Yes-Иә) немесе алгоритм жұмысын аяқтау үшін «N» (No-Жоқ) әріптерін енгізуді өтінеді. Келесі блок енгізілген t айнымалысының мәнін тексеріп, қажет болса алгоритмді қайта орындайды. Осы блок-схемаға сәйкес келетін программа мәтіні төменде көрсетілген:

Program min (input, output);

Label 10;

Var a, b, c, min: real;

t: char;


begin

10:write(‘бос орындармен бөлінген 3 сан енгізіңіз:’);

readln(a, b, c);

if a

if a

else min:=c

else

if b>c then min:=b



else min:=c;

writeln(‘Ең кіші сан:’, min:8:2);

write(‘Тағы енгізесіз бе? («Yes»-иә, «No»-жоқ)’);

readln(t);

if (t=’Y’) or (t=’y’) then goto 10

end.


Осы есепті шығарудың мұнан гөрі қысқалау екінші тәсілі 1.2-суретте көрсетілген Бұл схемаға сәйкес программа мәтіні төмендегідей болады:

Program min (input, output);

Label 10;

Var a, b, c, min: real;

t: integer;

begin


жоқ



иә
10:write(‘a, b, c=’); readln(a, b, c);

{3 санды енгізy}

if a

if c

W
иә
riteln(‘үш санның кішісі:’,min:6:2);

Write ('тағы енгізесіз бе? (1-иә,

0-жоқ)’);

R
жоқ


ead(t); if t=1 then goto 10

End.



иә


жоқ

1.2-сурет


Программаның ең ықшам түрі төмендегідей болады:

Program min;

Label 10; Var a, b, c, min: real; t: integer;

begin


10:write(‘a, b, c='); readln(a, b, c); {3 сан енгізy}

min:=a;


if bwriteln(‘үш санның кішісі:’, min:6:2);



end.
Мысал 2: Санды кез келген бүтін оң дәрежеге (n) шығаратын программа құру қажет. Бұл есепті де бірнеше тәсілмен шығаруға болады.

Бірінші тәсіл:

Program stepen;

Label 10, 20;

Var n,i: integer;

a, p: real;

begin


write(‘санды және бүтін оң дәрежені енгізіңіз’);

readln(a, n);

p:=1; i:=1;

if n=0 then goto 10;

20: p:=p*a; i:=i+1;

if i<=n then goto 20;

10:writeln(a:8:3, n:4, ‘дәреже’,`````p:12:4)

end.


Екінші тәсіл (1.3-сурет):

Program stepen;

Label 10;

Var n,i: integer;

a, p: real;

begin


write(‘a санын енгізіңіз:’); readln(a); 1.3-сурет

write(‘n оң бүтін дәрежені енгізіңіз:’); readln(n);

p:=1; i:=1;

10: if i<=0 then

begin

p:=p*a; i:=i+1; goto 10



end;

writeln(‘p=’, p:8:3)

end.

Енді n оң не теріс бүтін сан болған жағдайды, яғни үшінші тәсілді қарастырайық.



Program stepen;

Label 10, 20, 30;

Var n,i: integer; a, p: real;

begin


write(‘a,n=’); readln(a, n);

p:=1; i:=1;

if n>=0 then

begin


if n>0 then

begin


10: p:=p*a; i:=i+1;

if i<=n then goto 10

end

else goto 30



end

else


begin

20: p:=p/a; i:=i+1;

if i<=abs(n) then goto 20

end;


30: writeln(‘p=’, p:8:3)

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


Таңдау операторы (case) бірнеше операторлардың ішінен таңдау жолымен көп тарамды тармақталуды ұйымдастырады. Тармақталу берілген шартты тексеруден басталады, шарт мәндері таңдап алынған типтердің бірі болатын бүтін, символдық, логикалық өрнек түрінде жазылады. Бұл өрнек оператор орындалар кезде белгілі бір мәнге ие болуы тиіс. Сол мән оған байланысты орындалатын оператордың белгісі рөлін атқарады. Егер өрнектің есептелген мәні көрсетілген мәннің біріне сәйкес келсе, сол қатардағы оператор орындалады. Жазылу форматы

Case <өрнек> of

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

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

...

CN: ;



[else ]

END;


мұндағы <өрнек>-тексерілетін шарт не таңдау индексі; С1,..., CN-тұрақтылар, яғни өрнектің мүмкін мәндері; <1-оператор>, <2-оператор>,..., -тілдің кез келген операторлары; -өрнектің мәні көрсетілген мәндерден басқаша болғанда орындалатын тілдің кез келген операторы. Тік жақшаның ішіндегі сөз тіркесі болмауы да мүмкін, ондай жағдайда, яғни өрнектің мәні көрсетілген тұрақтылардың ешбір мәніне сәйкес келмесе, операторды орындау бірден аяқталады. Сонымен, таңдау операторы селектор мен тұрақты мәндерінің сәйкес келуіне байланысты бір ғана операторды орындауы тиіс. Кейде өрнектің мәні тұрақтының көрсетілген мәндерінің аралығында болуы ықтимал, мұндайда тұрақтының мәні кесінді тәрізді сандар бірлігін қамтуы тиіс.

Мысал 1:

PROGRAM DAY;

VAR kyn: integer; {Бұл программада бірден}

BEGIN {жетіге дейінгі кез келген}

Read(kyn); { сан енгізіліп, егер ол}

Case kyn of

1: Writeln(‘дүйсенбі’); {1-ге тең болса, “дүйсенбі”}

2: Writeln(‘сейсенбі’); {2-ге тең болса, “сейсенбі”}

3: Writeln(‘сәрсенбі’); {3-ке тең болса, “сәрсенбі”}

4: Writeln(‘бейсенбі’); {4-ке тең болса, “бейсенбі”}

5: Writeln(‘жұма’); {5-ке тең болса, “жұма”}

6: Writeln(‘сенбі’); {6-ға тең болса, “сенбі”}

7: Writeln(‘жексенбі’); {7-ге тең болса, “жексенбі”}

end {деген сөз жазылып шығады}

END.
Мысал 2. Келесі программада 1917 жылдан 1992 жылға дейінгі сандар енгізіліп, сол жылдары бұрынғы КСРО-да кімнің ел басқарғаны анықталды. Мұнда өрнектің мәні белгілі бір кесіндіге кіретін сан болатыны тексеріліп, сол арқылы бір оператор таңдап алынып отыр.

PROGRAM god;

VAR god: integer;

BEGIN


Write(‘жыл мөлшерін енгізіңіз:’);

Readln(god);

Write(god:4, ‘жылы’);

Case god of

1917..1924: Writeln(‘Ленин басқарды’);

1925..1953: Writeln(‘Сталин басқарды’);

1954..1956: Writeln(‘Маленков басқарды’);

1957..1964: Writeln(‘Хрущев басқарды’);

1965..1985: Writeln(‘Брежнев басқарды’);

1985..1991: Writeln(‘Горбачев басқарды’);

1991..1992: Writeln(‘Ельцин басқарды’)

end


END.

Мысал 3. Кез келген жыл мерзімін енгізіп, сол жылдың шығыс каленьдары (қазақша жыл санау) бойынша қай жануардың атына сәйкес келетінін анықтау программасы төмендегідей болады:

PROGRAM gil;

VAR

gil: integer;



BEGIN

Write(‘жыл мөлшерін енгізіңіз:’); readln(gil);

Write(gil:4, ‘жыл’);

Case (gil mod 12) of

0: write(‘мешін’);

1: write(‘тауық’);

2: write(‘ит’);

3: write(‘доңыз’);

4: write(‘тышқан’);

5: write(‘сиыр’);

6: write(‘барыс’);

7: write(‘қоян’);

8: write(‘ұлу’);

9: write(‘жылан’);

10: write(‘жылқы’);

11: write(‘қой’)

end;

writeln(‘жылы болды’)



END.
Мысал 4. Кез келген айдың бірінші жұлдызы аптаның қай күні екені белгілі болғанда, сол айдың енгізілген күнінің аптаның қандай күні болатынын анықтау керек.

PROGRAM casel;

Label 10;

Const k=1; {айдың бірі дүйсенбі болған}

{егер айдың бірі сейсенбі болса, k=2, егер айдың бірі сәрсенбі болса, k=3 т.с.с.}

VAR den, n: integer;

t: char;

BEGIN


10: write(‘айдың күнін енгізіңіз:’); readln (den);

n:=den mod 7+k-1; if n>7 then n:=n-7;

write(‘айдың’, den:3, ‘күні’);

CASE n of

1: write(‘дүйсенбі’);

2: write(‘сейсенбі’);

3: write(‘сәрсенбі’);

4: write(‘бейсенбі’);

5: write(‘жұма’);

6: write(‘сенбі’);

7: write(‘жексенбі’)

end;


writeln(‘болады’);

writeln(‘тағы енгізесіз бе? (иә-«у», жоқ-«n»)’);

readln(t);

if (t=’Y’) or (t=’y’) then goto 10

END.
ІІІ. Тармақталған құрылым алгоритмдерін программалау
Тармақталу операторына мысал келтірейін:

Квадрат теңдеуді шешу үшін арналған программаны құру (1.4-суретте блок-схемасы көрсетілген)

PROGRAM М1 (input, output);

VAR X1, X2, X, D, a, b, c:REAL;

BEGIN

WRITELN(‘a, b, c коэффициенттерін енгіз’);



READLN(A, B, C);

D:=SQR(B)-4*a*c;

IF D<0 THEN WRITELN(‘түбірі жоқ’);

IF D=0 THEN BEGIN

X:=(-b)\(2*A);

WRITELN(‘X=’,X);

END;

IF D>0 THEN BEGIN



X1:=(-b+SQRT(D))\(2*a);

X2:=(-b-SQRT(D))\(2*a);



WRITELN(‘X1=’,X1, ‘X1=’,X2);

END;

END.


жоқ иә

1.4-сурет


Өзін тексеру сұрақтары

  1. Тармақталған алгоритмдеген не?

  2. Метка (белгі) деген не? Меткалар қандай бөлімде сипатталады?

  3. goto шартсыз көшу операторының жазылу форматы және қызметі?

  4. if…then…else…шартты көшу операторының жазылу форматы және қызметі?

  5. Қысқа форматта жазылған, шартты көшу операторы қалай жұмыс істейді?

  6. Толық форматта жазылған шартты көшу операторы қалай жұмыс істейді?

  7. Қарапайым оператор деген не?

  8. Құрамды оператор деген не? Құрамды оператор не үшін қолданылады?

  9. case… of… нұсқадағы оператордың жазылу форматы және қызметі?


Әдебиет: (1) стр. 61-71

Каталог: ebook -> umkd
umkd -> Мамандығына арналған Сұлтанмахмұттану ПӘнінің ОҚУ-Әдістемелік кешені
umkd -> Қазақстан Республикасының
umkd -> Қазақстан Республикасының
umkd -> Студенттерге арналған оқу әдістемелік кешені
umkd -> ПӘннің ОҚУ Әдістемелік кешені 5В011700 «Қазақ тілі мен әдебиеті» мамандығына арналған «Ұлы отан соғысы және соғыстан кейінгі жылдардағы қазақ әдебиетінің тарихы (1941-1960)» пәнінен ОҚытушыға арналған пән бағдарламасы
umkd -> «Балалар әдебиеті» пәніне арналған оқу-әдістемелік материалдар 2013 жылғы №3 басылым 5 в 050117 «Қазақ тілі мен әдебиеті»
umkd -> ПӘннің ОҚУ-Әдістемелік кешенінің
umkd -> 5 в 011700- Қазақ тілі мен әдебиеті
umkd -> 5 в 011700- Қазақ тілі мен әдебиеті
umkd -> «Филология: қазақ тілі» мамандығына арналған


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   12




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет