III. Параметрлі цикл

BEGIN

Оператор1;

Оператор2;

ОператорN;

END;

Мысалы:

IF a<>0 THEN BEGIN

b:=b/a;

k:=k+1;

END

ELSE BEGIN

a:=b;

l:=l+1;

END;

МЫСАЛ: Пернетақтадан енгізілген үш санның арасынан ең үлкенін анықтайтын бағдарлама құрыңыз.

Бағдарлама:

program maks(input, output);

uses CRT;

var a,b,c,max:integer;

begin

writeln('a,b,c engiz');

readln(a,b,c);

if a>b then max:=a else max:=b;

if max<c then max:=c;

writeln('engizilgen candardyn en ulkeny=',max);

repeat until keypressed;

end.

Бағдарлама орындалуының нәтижесі:

a,b,c engiz

engizilgen candardyn en ulkeny=6

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

А) толық емес түрі:

Case кілт of

Мән1: оператор1;

Мән2: оператор2;

............................

Мән n: оператор n;

End;

Б) толық түрі:

Case кілт of

Мәні1: оператор1;

Мәні2: оператор2;

...........................

Мәні n оператор n;

else оператор;

End;

Кілт – айнымалы аты, кез келген реттік типтес (нақты және жолдық емес) немесе өрнек (арифметикалық немесе логикалық).

Мәні параметрінің типі кілт типімен сай келу керек, мәні – тұрақты.

Мысал: Берілген саннан кіші емес тақ бүтін сандардың атауларын шығаратын бағдарлама құр.

Program wilor (input, output);

Uses crt;

Label 1,2,3,4,5,6,7,8,9;

Var a:integer

Begin

Clrscr;

Writeln (‘vvedite chislo ot 0 do 9’);

Readln(a);

Case a of

0,1:writeln (‘odin’);

2,3: writeln(‘tri’);

4,5: writeln (‘pyat’);

6,7: writeln (‘sem’);

8,9: writeln (‘devyat’);

Else writeln (‘nepravelny wwod’);

End;

End.

Практикалық тапсырма

1. Нақты типті X пен Y айнымалыларының кішісіне нөлді меншіктеп, қарсы жағдайда екеуіне де нөлді меншіктейтіндей бағдарлама құрыңдар.

2. X, Y, Z нақты типті айнымалылардың ең үлкенін 0.3 –ке азайтатындай бағдарлама құрыңдар.

3. В буль типті айнымалыға TRUE мәнін, X және Y айнымалылары тең болғанда меншіктеп, ал қарсы жағдайда B:=FALSE болатындай бағдарлама құрыңдар.

4. ax2+bx+c=0 квадрат теңдеуінің дискреминантына байланысты түбірлерін анықтау бағдарламасын құрыңдар.

5. Төмендегі формулалардың бірімен анықталатын функцияның мәнін есептеңдер:

6. (х,у) нүктесі көрсетілген аймаққа тиістіме екенін анықтайтын бағдарлама құрыңыз.

а) б) в) г) д)

е) ё) ж) з) и)

Зертханалық жұмыс №3. Қайталану алгоритмдер.

Жұмыстың мақсаты: Қайталану алгоритмдермен, соның ішінде Шарты алдынан қойылған цикл операторымен, Шарты соңынан қойылған цикл операторымен, параметрлік цикл операторымен танысу, циклдік бағдарламаларды құруды игеру.

Цикл операторлары қайталанатын әрекеттерді ұйымдастыру үшін тағайындалған.

Паскальда цикл операторлардың келесі түрлері бар:

I. Шарты алдында қойылатын циклдер.

While логикалық өрнек do оператор;

Цикл логикалық өрнектің мәні true болған уақытта орындала береді. Цикл бір рет те орындалмауы мүмкін, егер логикалық өрнектің мәні басында false болса. Ал оператордың орнында құрамды оператор болуы мүмкін. Шарт ақиқат болған уақытта орындалатын оператор (операторлар) цикл денесі деп аталады.

While логикалық өрнек do

Begin

Оператор 1;

Оператор 2;

...

Оператор n;

End;

Мысал 1: Пернетақтадан енгізілген оң сандардың қосындысын тап. Нәтижесін 0 енгізген кезде шығару.

Program predusl;

uses crt;

var a,s:real;

begin

s:=0;

read(a);

while a<>0 do

begin

if a>0 then s:=s+a;

read(a);

end;

clrscr;

writeln('summa chisel=',s:2:0);

end.

II. Шарты соңынан қойылатын циклдер.

Repeat

Оператор 1;

Оператор 2;

...

Оператор n;

Until логикалық өрнек;

Циклдың ішіндегі операторлар кез-келген сәтте кем дегенде бір рет орындалады. Цикл логикалық өрнектің мәні false болған кезде орындала береді. Логикалық өрнектің мәні true болғанда цикл орындалуы аяқталады.

Мысал 2: Алдыңғы есепті шешейік.

Program posbusl;

var a,s:real;

begin

s:=0;

repeat

read(a);

if a>0 then s:=s+a;

until a=0;

writeln('summa=',s:2:2);

end.

III. Параметрлі цикл.

Параметрлі цикл бұйрықтар орындалуының қайталану саны алдын-ала белгілі болған жағдайда қолданылады.

FOR параметр:= бастапқы мән to соңғы мән do оператор;

for k:=2 to 10 do p:=p*r.

Бастапқы мән < соңғы мән, параметр өзгеруінің қадамы=+1

FOR параметр:=бастапқы мән downto соңғы мән do оператор;

for i:=640 downto 1 do x:=x+i;

бастапқы мән > соңғы мән, параметр өзгеруінің қадамы=-1.

Оператор орнында құрамды оператор болуы мүмкін.

Мысал 3: -50-ден үлкен, ал 200-ден кіші 5 пен 8-ге еселі және 5 пен 0-ге аяқталатын барлық бүтін сандардың қосындысын тап.

Program sum;

var i,s:integer;

begin

s:=0;

for i:=-49 to 199 do

begin

if i mod 5=0 then if i mod 8=0 then if(i mod 10=5)or(i mod 10=0) then s:=s+i;

end;

writeln('Shartti kanagattandiratin sandar kosindisi=',s);

end.

Тапсырма:

1. Келесі қосындыларды есептейтін бағдарлама құр:

А) алдыңғы жүз бүтін сандардың;

Б) алдыңғы 20 бүтін сандардың квадраттарына кері сандардың;

В) алдыңғы 100 натурал сандардың арасындағы жұп сандардың;

2. Есепте:

А) б) в) г)

3. Келесі циклдерді жүзеге асыратын бағдарлама құр:

А) әзір a+b<ab қайталау a=2a, b=b+1, осындағы a=-5, b=-2.

Б) әзір a<b, қайталау: егер b<3, онда a=a-b, b=b+2, кері жағдайда a=a+2, b=b-a, осындағы a=-3, b=-1.

4. Тізбектің n-ші мүшесі берілген. Осы тізбектің алдыңғы k мүшесін баспаға шығар:

А) , , ,..., ; k=11

Б) , , ,..., , k=7

В) , , ,..., , k=11

5. Пернетақтадан енгізілген санның бірінші және соңғы цифрлерін анықта.

6. Берілген бүтін оң санның құрамындағы тақ цифрлар санын анықта. Санның типі long болуы мүмкін.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: