Циклдік құрылымды алгоритмді программалау


Жұмыс түрі:  Реферат
Тегін:  Антиплагиат
Көлемі: 15 бет
Таңдаулыға:   

Мазмұны

Кіріспе

1. Турбо Паскаль тілінің операторлары . . . 2

Негізгі бөлім

1. Циклдік құрылымды алгоритмді программалау . . . 3

2. Алғы шартты цикл операторы. While операторы . . . 3

3. Келесі шарт бойынша циклді ұйымдастыру .

Repeat операторы . . . 6

4. Параметрлі қайталану операторы. For операторы . . 8

5. Күрделі циклдер . . . 11

6. ЭЕМ-де есеп шығару кезеңдері.

Қадам бойынша орындау әдісі. . . . 12

7. Мысал есептер . . . 12

8. Қайталау (цикл) . . . 17

Қорытынды

Әдебиеттер тізімі . . . 21

1

Қайталау операторы

1. Турбо Паскаль тілінің операторлары.

Операторлар-программадағы нұсқаулардың (бұйрықтар, алгоритмдер) машиналық тілде жазылуы. Яғни берілген есепті шешу мақсатында орындалатын іс-әрекеттердің машинаға түсінікті түрде жазылуы. Сонда, программа данасі бірінен кейін бірі жазылған операторлар тізбегінен тұрады. Операторлар арасына нүктелі үтір (; ) белгісі қойылады.

Операторлар қарапайым және күрделі (құрама) операторлар болып екі топқа бөлінеді. Егер оператор құрамында басқа операторлар боламса, онда ол қарапайым оператор деп аталады. Бұл топқа: меншіктеу, процедураны шақыру, шартсыз көшу - GOTO, бос орын операторы жатады.

Күрделі (құрама) оператор бірнеше қарапайым операторлар тұрады. Бұл операторлар begin (басы) және end (соңы) қызметші сөздер арасында жазылады. Әр оператордан кейін (; ) нүктелі үтір таңбасы қойылады.

Құрама оператордың жалпы жазылуы:

Begin

1-оператор;

2-оператор;

3-оператор;

. . .

N-оператор;

End;

Begin (басы) және end (соңы) сөздерін операторлар жақшасы деп қарастырсақ, жоғарыдағы мысалды мына түрде жазуға болады:

(1-оператор; 2-оператор; . . . ; N-оператор) .

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

2

Негізгі бөлім

1. Циклдік құрылымды алгоритмді программалау.

Кейбір алгоритмдердің белгілі бір бөліктері бірнеше рет қайталанып орындалуы мүмкін. Мұндай алгоритмдерді циклдік құрылымға ие алгоритмдер дейді. Қайталанатын бөліктерді, яғни циклдерді әртүрлі тәсілдермен құрастырады.

Цикл - бұл прграмманың орындалу барысында бірнеше рет қайталанатын бөліктері. Циклдерді пайдалану арқылы салыстырмалы түрде қысқа программалар жазуға, программаның көлемін едәуір қысқартуға болады. Бірақ осы программа арқылы ЭЕМ өте үлкен көлемдегі есептеулерді орындайды. Турбо Паскаль да циклдік құрылымды алгоритмді программалауды үш түрлі жолмен ұйымдастыруға болады.

  1. Алдын-ала шартты тексеру арқылы
  2. Келесі шарт бойынша
  3. Параметрдің мәніне тәуелді

Үш түрлі жолмен ұйымдастыратын циклға арнайы операторлар қолданылады. Олардың әрқайсысын талқылайық.

2. Алғы шартты цикл операторы While операторы.

While операторы жан жақты басқару үйлесімі болып табылады. Алдын ала берілген шартты тексеру арқылы циклді ұйымдастыруға While операторы қолданылады. While операторын циклдің қайталану саны белгісіз болғанда пайдаланған ыңғайлы. Қайталанушы процесс қойылған шартты тексеру арқылы жүзеге асырылады. Яғни, шарт ақиқат болса цикл қайталанылады да, шарт жалған болса, циклден шығу орындалады. While операторы екі бөліктен тұрады: циклдің тақырыбынан және циклдің денесінен.

3

Жалпы жазылуы:

While <шарт> do

<циклдің денесі>;

While <шарт> do

Begin

End.

Мұндағы, Қызметші сөздерінің қазақша мағынасы: While -“әзір”, do -“орында”. Ал, шарт-логикалық өрнек түрінде жазылады. Берілген шартқа тәуелді бірнеше рет қайталанып орындалатын операторды - циклдің денесі деп атаймыз. Орындалу ережесі: Begin және End сөздерінің арасында жазылған оперпторлар шарт ақиқат болғанда орындалады

While операторы алгоритмдік тілдегі “әзір” цикл командасына сәйкес “әзір” цикл командасының жазылуы және блок схемасы:

әзір<шарт>

цб

<цикл>

цс

бітті.

1-сурет.

4

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

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

While <шарт> do

begin

<циклдің денесі>;

end;

While операторында программалаушы циклдің өзгеру қадамын өзі тағайындап отырады. Егер әрекет белгісі “/” не тең болмаса немесе екінші сан да 0-гетең болмаса, онда программаның орындалу процесінде бұл циклді айналып өтеді, яғни цикл бір рет те орындалмайды. Программаны жүктеп, оның қалай жұмыс істейтін F7 пернесін қолдану арқылы тексереміз. Мысалы:

Z=Y 3 функциясының мәнін есептеу керек, мұндағы Y=1, 2, 3, 4, 5, 6, 7. Программаның нәтижесінде Y-тің мәні мен сәйкес функцияның мәні кесте түрінде шығады. Y-тің өзгеру қадамы 1-ге тең.

Program pr1;

Var Z, Y: integer; {берілген айнымалыны сипаттау}

Begin

Z:=1; {Y-тің бастапқы мәнін меншіктеу}

While y<=6 do {цикл тәуелді болатын шарт}

Begin

Z:=sqr(Y) *Y; { Y -тің мәнін Z-ті есептеу}

Writeln ( ‘Y=’, Y, ’___ Z=’, Z) ; { Y және Z экранға шығару}

Y :=Y+1 ; { Y -тің өзгеру қадамы}

End ;

End.

5

Нәтижесі:

Y=1 ! Z=1

Y=2 ! Z=8

Y=3 ! Z=27

Y=4 ! Z=64

Y=5 ! Z=125

Y=6 ! Z=196

Y=7 ! Z=343

3. Келесі шарт бойынша циклді ұйымдастыру Repeat операторы.

Циклдің процестері ұйымдастыруда Repeat операторы циклдің қайталану саны белгілі болғанда қолданылады. Мұндай жағдайлар көбінесе программаларды құрғанда кездеседі. Әрине бұл оператор бірден белгісіз санның қайталануынан немесе берілген формуламен есептелетін болса ғана қолданылады.

Repeat операторының жалпы жазылуы:

Repeat

<циклдің денесі>

Until<шарт>

Мұндағы, қызметші сөздері Repeat- қайтала, Until- соған дейін деген мағынада қолданылады. Цикл денесі - қайталанып орындалатын бір немесе бірнеше операторлардан тұрады. Цикл денесін құрайтын операторлар санын шектеу қойылмайды. Шартты тексеру логикалық өрнек арқылы жүргізіледі.

Орындалу ережесі: Repeat сөзінен кейін жазылған операторлар бір рет орындалады. Шарт жалған болса операторлар қайталанып орындала береді. Шарт ақиқат болғада ғана тоқтайды, яғни орындалмайды.

6

Repeat операторы алгоритмдік тілдегі “дейін” цикл командасына ұқсас. “Әзір” цикл командасынан “дейін” циклінің айырмашылығы: қойылған шартқа тәуелсіз бірнеше цикл денесі орындалады.

Сонан кейін, шарт тексеріледі. Демек, шарт ақиқат болмаса цикл денесі кемінде бір рет орындалады. Repeat операторының қызметін суреттегі блок схема арқылы сипаттауға болады.

Жоқ

2-сурет.

Repeat операторы құрамды оператордың орындалуын талап етпейді. Бірақ бұл Repeat операторы циклдің бір рет те орындалуын қажет ететін жағдайда циклдарды жазуға жарамайды. Егер мұндай жағдайда болса, онда алғышарт операторын қолдануымыз керек. Мысалы: 1кг ірімшік 300 теңге тұрады. Ірімшіктің 100, 200, 300, . . . 1000 граммына төленетін теңгені анықтайтын және есептің жауабын кесте түрінде шығарудың программасын жазайын.

7

Program pr2;

Var m:integer; {}

z:real; {}

Begin

m:=100;

Repeat

z:=(300*m) /1000;

Writeln(m, ’___’, z) ;

m:=m+100;

until m>1000;

readln

end.

4. Параметрлі қайталану операторы For операторы.

Циклдік құрылымды алгоритмді программалауда қайталанушы процесс бір айнымалының мәніне тәуелді болса, For операторын қолданамыз. Айнымалы тек бір қадамға ғана өзгере отырып циклді басқарыды. Бұл айнымалы циклдің параметрлі қайталану операторы деп аталынады. Санағышы бар параметрлі цикл операторы цикл қайталануын бақылайтын санағыштың алғашқы және соңғы мәндері алдын ала белгілі болған кезде ғана қолданылады.

For операторы алгоритмдік тілдегі параметрлі қайталану командасына сәйкес келеді.

і үшін m1 бастап m2 дейін h қадам

Цб

Серия

Цс

For операторы екі түрлі жазылады:

8

А) for I:=A to B do

Begin

End;

Орындалу ережесі: Begin және End сөздерінің арасында жазылған операторлар I:=A, I:=A+1, I:=A+2, …, I:=B үшін орындалады. Мұндағы І цикл параметрі, А -параметрдің бастапқы мәні, В-параметрдің соңғы мәні.

For Х:=М1 to M2 do S1;

Мұндағы, қызметші сөздер: For(үшін), to(дейін) циклдің қадамы +1-ге өсіп отыратынын көрсетеді, do(орында) ;

Х- скалярлық типтегі айнымалы циклдің параметрі;

М1-цикл параметрінің бастапқы мәні;

М2-цикл параметрінің соңғы мәні;

S1-параметріне тәуелді қайталанып орындалатын оператор. Сондықтан, S1-цикл денесі деп аталады.

Б) For I:=A DOWN TO B DO

Begin

End;

Орындау ережесі: Begin және End сөздерінің арасында жазылған операторлар I:=A, I:=A-1, I:=A-2, …, I:=B үшін орындалады.

For X:=M1 down to M2 do S1;

1-нұсқадан өзгешелігі to сөзінің орнына down to (төменге дейін) қызметші сөзі жазылады. down to циклдің өзгеру қадамы -1 тең екендігін көрсетеді. Мұндағы Х -тің мәні М1- ден М2-ге дейін -1 қадаммен кему үшін М1>M2 шарты орындалуы керек. Егер бұл шарт орындалмаса цикл денесі бірде бір рет орындалмайды.

Егер, цикл денесі бірнеше оператордан тұрса, Begin және End операторлар жақшасын пайдаланамыз.

9

Параметрдің мәніне тәуелді циклді блок схемасында төмендегідей сипаттайды.

3-сурет.

Параметрлі қайталану операторының жазылуына және орындалуына мысал келтірейік:

Оператордың жазылуы: Оператордың жазылуы
Нәтижесі: Нәтижесі
Оператордың жазылуы: For k:=-1 To 6 do Write (x, ’, ’)
Нәтижесі: -1, 0, 1, 2, 3, 4, 5, 6
Оператордың жазылуы: For k:=3 To 3 do Write (x, ’, ’) _
Нәтижесі: 3
Оператордың жазылуы: For k:=1 To 9 do Write (x, ’, ’)
Нәтижесі: 1, 2, 3, 4, 5, 6, 7, 8, 9
Оператордың жазылуы: For k:=-1 To -6 do Write(x, ’, ’)
Нәтижесі: Цикл орындалмайды
Оператордың жазылуы: For k:=10 down to 6 do Write(x, ’, ’)
Нәтижесі: 10, 9, 8, 7, 6
Оператордың жазылуы: For k:=0 down to -1 do Write(x, ’, ’)
Нәтижесі: 0, -1
Оператордың жазылуы: For k:=1 down to 16 do Write(x, ’, ’)
Нәтижесі: Цикл орындалмайды

10

Қайталану санын келесі тәсілдермен анықтауға болады. Соңғы мән - алғашқы мән +1 - бірінші жағдай үшін;

Алғашқы мән - соңғы мән +1 екінші жағдай үшін. Мысалы:Р=1*2*, …*10 сандарының көбейтіндісін есептеу.

Program pr3;

Var i, P :integer;

Begin

P:=1;

For i:=1 to 10 do

P:=P*1;

Writeln (‘P=’, P) ;

Readln

End.

5. Күрделі циклдер

Күрделі қайталанушы процесстерді ұйымдастыруда бір цикл операторы құрамында екінші бір цикл операторы болуы мүмкін. Бұл жағдай да бірінші цикл оператор - ішкі цикл деп аталады. Сыртқы және ішкі цикл ұйымдастыруда мына шарт орындалады: ішкі циклдің барлық операторы сыртқы цикл денесіне толық енеді

Мысылы, суретте екі параметрлі цикл операторлары арқылы жазылған күрделі циклдің жұмысы сипатталынған.

11

4-сурет.

6. ЭЕМ-де есеп шығару кезеңдері. Қадам бойынша орындау әдісі.

Кез-келген есерті ЭЕМ-де шешу бірнеше кезеңдерден тұрады:

1) есептің қойылуын ұғу;

2) формальдау деңгейі (есептің математикалық түрде қойылуы) ;

3) шешу әдісін таңдау;

4) алгоритмін жазу(құру) ;

5) программасынқұру;

6) программаның дұрыстығын тексеру;

7) есептеу және нәтижелерін өңдеу.

7. Мысал есептер

1-есеп . М натурал саны берілген. Оның жай сан екендігін анықтау керек.

12

Program pr1;

Var I, M, F: integer;

Begin

Repeat

Write(‘натуралсан енгізу М=’) ;

Readln(M) ;

Until M>0;

F:=0;

For I:=2 TO M DIV 2 do

If M MOD I=0 then F:=1;

If F=0 then writeln (M:6, ’жай сан’)

Else writeln (М:6, ’жай сан емес’) ;

End.

Есепті шешу алгоритмі:

1. Программа денесін айнымылылардан сипаттаудан бастаймын.

2. Натурал сан енгіземін.

  1. 2-ден М/2 аралығындағы натурал сандар М санының бөлгіші бола ма, соны тексеремін.
  2. F-тің мәніне байланысты нәтижені шығарамын.

Айнымалылар:

М-зерттелетін сан;

І-цикл айнымалысы;

F-көмекші айнымалы.

2-есеп . Р және М натурал сандары берілген. Олардың өзара жай сандар екендігін анықтау керек. Өзара жай сандардың 1-ден басқа ортақ бөлшектері болмайды.

Program pr3;

Var I, P, M, K: integer;

F: Boolean;

13

Begin

Repeat

Write(‘натурал сан енгіз P=’) ;

Readln(P) ;

Write(‘натурал сан енгіз M=’) ;

Readln(M) ;

Until(P>0) and (M>0) ;

F:= False;

If P>M then K:=M else K:=P;

For I:=2 to K do

If (P MOD I=0) And (M MOD I=0) Then F:=TRUE;

If F then writeln (P, ’, ’, M, ’ өзара жай сандар емес’)

Else writeln (P, ’, ’, M, ’өзара жай сандар’) ;

End.

Есепті шешу алгоритмі:

1. Программа денесін айнымалыларды сипаттаудан бастаймын;

2. Р, М натурал сан енгіземін;

3. Параметрі І циклде 2-ден бастап ең кіші санға дейінгі сандарды анықтаймыз және әрбір Р, М сандарының бөлгіші болатындығын тексеремін;

  1. F-тің мәніне байланысты нәтижені шығарамын.

Айнымалылдар:

Р, М -зерттелетін сан;

І-цикл айнымалысы;

Ғ-көмекші айнымалы;

К-Р, М сандарының кішісі.

3-есеп. 5х-3у=1 Диафонтова теңдеуі арқылы бүтін сандардың жиынын табу керек. Бастапқы тексеруде алдымен бірлік теңдіктері алынады. Одан әрі, егер де 5х-3у>1 болса, онда 1-ге артады, егер 5х-3у>1болса, онда 1-ден х-қа артады.

14

Program pr9;

Var x, y: byte;

Begin

x :=1; y :=1;

repeat

if (5*x-3*y) >1 then y:=y+1;

if (5*x-3*y) <1 then x:=x+1 until (5*x-3*y) =1;

writeln(‘x=’, x, ‘y=’, y) ;

end.

Нәтижесінде: х=2y=3.

4-есеп. Логикалық ұғым бар: not a and b xor c. a, b, c логикалық ұғымдарын ақиқат мәнінде экранға шығару керек. Мен а, b, c мәндерін жұп сандармен сипаттап шығаруды ұсынамын.

Program pr10;

Var a, b, c: Boolean;

Begin

For a:=false to true do

For b:=false to true do

For c:=false to true do

If not a and b xor c then;

Begin

Write(‘a=’, a) ;

Write(‘b=’, b) ;

Write(‘c=’, c) ;

End;

End.

Нәтижесінде:

a=False

b= False

c=True 15

а= False

b= True

c= False

а= True

b= False

c= True

а= True

b= True

c= True

Программа екі күрделі оператордан тұрады: For a:=false to true do, осы операторға тағы екі қосылған For және If операторы. Соңғы then бөлімінің құрамында күрделі оператор бар, олар үш жай оператордан тұрады, Begin және End жақшаларымен қамтылған.

127-есеп

Program pr1;

uses

Crt;

var

numb1, numb2:integer;

res:integer;

otv:integer;

kol:integer;

i:integer;

begin

ClrScr;

writeln('***proverka znania tablicy ymnojenia***') ;

writeln('posle primera vvedite otvet i najmite <Enter>. ') ;

writeln;

kol:=0;

Randomize;

fori:=1 to 10 do

begin

numb1:=Random(9) +1;

numb2:=Random(9) +1;

res:=numb1*numb2;

write('', numb1, 'x', numb2, '=') ;

readln(otv) ;

if otv=res

then

kol:=kol+1

else begin

writeln('vy oshiblis!', numb1, '*', numb2, '=', res) ;

end;

end;

writeln('pravilnyh otvetov:', kol) ;

write('vasha ocenka:') ;

case kol of

16

10: writeln('5') ;

9, 8:writeln('4') ;

7, 6:writeln('3') ;

0. . 5:writeln('2') ;

end;

writeln('dlya zavershenia raboty s programmoy najmite<Enter>') ;

readln;

end.

8. Қайталау (цикл)

Кейбір жағдайларда нәтижеге жету барысында, белгілі бір әрекет бірнеше рет қайталанып орындалуы мүмкін. Шегені қағу үшін оны балғамен бірнеше рет ұру керек. Бір сынып бөлмесінен, келесі сынып бөлмесіне бару үшін бірнеше қадам жасау керек.

Цикл: Белгілі бір А әрекетін жүзеге асыру үшін, N рет А1 әрекетін орындау керек.

А: А
... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Алгоритм құрылымдары (сызықтық, тармақты және циклдік), олардың блок схемалары
Алгоритм, оның ұғымы, қасиеттері
АЛГОРИТМНІҢ ПРОГРАММАЛАУ НЕГІЗДЕРІНДЕГІ РОЛІ
Алгоритмдер және деректер структурасы
Алгоритмнің күрделілігі - осы алгоритмді есептеу процесінде қолданылған элементарлы қадамдар саны
Бағдарламалау(программалау) технологиясы
Алгоритм, программа ұғымдары
Алгоритмнің берілу тәсілдері
Программаларды техникалық жобалау
Алгоритм жазу жолдары
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz