Орындаған:Сұлтанова А.А Группа: МИҚС-131
Сабақтың тақырыбы: Циклдік алгоритмдерді программалау.
Мәселелерді шешкенде бір типті әрекеттерді осы әрекеттерді анықтайтын параметрдің әр түрлі мәндерінде көп рет қайталау қажеттігі туады. Осындай процестерді ұйымдастыру үшін циклдік құрылымы бар алгоритмдер, дәлірек айтсақ, қайталанатын алгоритмдер, операторлар пайдаланылады. Осындай әрекеттерді жүзеге асыратын алгоритмді циклдік, ал көп рет қайталанатын әрекеттер тізбегін (цикл денесі) - цикл деп атайды. Циклдерді пайдалану жинақы программалардың көмегімен есептеулердің үлкен көлемдерін орындауға мүмкіндік береді.
Паскаль тілінде қайталау процесін үш түрлі жолмен ұйымдастыруға болады:
- алдын ала берілген шарт бойынша қайталауды ұйымдастыру;
- келесі шарт бойынша қайталауды ұйымдастыру;
- параметрдің мәні бойынша қайталауды ұйымдастыру.
Алдын ала берілген шарт бойынша қайталауды ұйымдастыру:
Алдын ала берілген шарт бойынша қайталау көп жағдайларда қайталану саны белгісіз болған жағдайда пайдаланылады.
Қайталану саны белгісіз циклдер.
Кейде циклді неше рет қайталау керек екені алдын ала белгісіз, бірақ ол қандай да бір шарт сақталғанша орындалуы керек екені белгілі болады.
Циклді дұрыс ұйымдастыру үшін:
1. параметрдің бастапқы мәнін беру керек;
2. циклдің аяқталу шартын тексеру керек;
3. циклдің жаңадан қайталануының алдында параметрді өзгерту керек;
цб (цикл басы) және цс (цикл соңы) қызметші сөздерінің арасында көрсетілген командалар сериясы (цикл денесі) берілген шарттың сақталуы бұзылғанша неше рет керек болса, сонша рет орындалады. Егер шарт басынан бастап сақталмаса, онда серия бір де бір рет орындалмайды.
Жүзеге асыру түрлері.
Блок-схема Алгоритмдік тіл Паскаль тілі
Қайталану командасы:
Әзір шарт
Цб
Цикл денесі
Цс Алғы шартты цикл операторы:
While шарт do
Begin
Цикл денесі (серия)
End
Егер серия бір командадан тұратын болса, операторлық жақшаларды қоймауға болады.
Соңғы шартты цикл операторы:
Repeat
Цикл денесі (серия);
Until шарт;
Цикл шарт әзірше ақиқат (while) немесе әзірше жалған (repeat ... until) болғанда орындала береді.
Егер қайталанудың денесі бірнеше оператордан құралса, онда олар Begin - End қызмет сөздерінің арасына алынып жазылады.
Мысалы,
While шарт do
Begin
1-оператор;
2-оператор;
. . . . . . . . . . .
n-1 - оператор;
n - оператор;
End
Ал егер қайталанудың денесі бір ғана оператордан тұрса, онда оны операторлық жақшасыз жазуға да болады. Мысалы:
While логикалық өрнек /шарт/ Do операторы.
Егер шарт жалған болса, онда цикл денесі бірде-бір рет орындалмайды.
Келесі шарт бойынша қайталау операторы
Бұл оператор көп жағдайларда қайталаудың саны белгісіз болған жағдайда пайдаланылады. Оның жазылу түрі:
Repeat
қайталану денесі (серия)
Until
Мұндағы Repeat - қайтала, Until - соған дейін -қызмет сөздері. Оның орындалуы: қашан логикалық өрнектің мәні ақиқат болғанша циклдің денесі қайталана береді.
Параметрдің мәні бойынша қайталауды ұйымдастыру.
Қайталану операторларда көп жағадай да функция аргументі, айнымалылар циклдің параметр қызметін атқаруы мүмкін. Сонымен бірге, циклдегі қайталанатын операторлар сериясындағы өрнектердің мәндері осы параметрге тәуелді өзгеруі мүмкін.
Көп жағдайларда қайталану саны белгілі болғанда, шартты параметрлі қайталану операторын пайдалануға болады.
Қайталануының саны белгілі циклдер.
Параметрі бар қайталану командасы циклдік құрылымды алгоритмді көрнекірек жазуға мүмкіндік береді.
Блок-схема Алгоритмдік тіл Паскаль тілі
Параметрлі қайталану командасы:
үшін Х бастап Хбас
дейін Хсоң қадам Хқад
цб
цикл денесі
цс
Егер қадамның мәні 1-ге тең болса, онда қадам қызметші сөзін жазбауға болады. 1-вариант (санауыш мәні өседі, Хқад =1)
for X:=Xбас to Xсоң do
begin
цикл денесі (серия)
end.
Егер Хбас>Хсоң болса, онда цикл денесі бір рет те орындалмайды.
2-вариант. (санауыш мәні кемиді, Хқад=-1)
for X:=Xбасdownto Xсоң do
begin
цикл денесі
end;
Егер Хбас<Хсоң болса, онда цикл денесі бір рет те орындалмайды.
Циклдің параметрі - көрсетілген Хқад қадамға сәйкес мәндерді ретпен қабылдайтын айнымалы. Парметрі бар қайталану командасын орындау механизмі қайталану командасына ("әзір" циклі) ұқсас.
Параметрі бар қайталану командасы ("үшін" циклі) қайталану саны алдын ала белгілі жағдайларда қолданылады. Циклдің Х, Хбас, Хсоң параметрлері бүтін сандық немесе символдық типті болу керек.
FOR операторы. Егер алгоритмде қайталану саны алдын ала белгілі болған жағдайда FOR операторы қолданылады. Бұл оператор параметрлі цикл операторы деп те аталады.
Жазылу үлгісі
FOR := n1 TO n2 DO
;
FOR: = n2 DOWNTO n1 DO
;
Мұндағы FOR (үшін), TO (дейін), DO (орындау) - қызметші сөздер;
- циклді басқару айнымалысы, Integer типті (немесе кез келген реттелген тип) n1 , n2 - цикл параметрінің бастапқы және соңғы мәндері (типі циклді басқару айнымалысымен сәйкес) кері қарай, DOWN төмен, TO дейін . Паскаль тілінде параметрдің қадамы тек екі мән: 1 немесе -1-ді ғана қабылдай алады.
Егер қадам -1 – ге тең болса, онда операторда TO, ал қадам -1-ге тең болса, онда DOWNTO сөзі қолданылады.
Мысалы: 1- ден 100- ге дейінгі сандардың қосындысын табу керек.
Program kosindi;
Var I, s: integer;
Begin s:=0;
FOR i:=1 TO 100 DO
S:=s+1;
Writeln (‘s = ‘ , s);
End.
Компьютермен жұмыс
№1. 1- ден 100-ге дейінгі сандарды экранға шығаратын программа құрыңдар.
Program san;
Var i: integer;
Begin
Wtiteln (‘ 1- den 100- ge dein butin san’);
Writeln;
For i:=1 to 100 do
Write (i:4);
End.
№2. 30-дан 10-ға дейінгі барлық жұп сандарды экранға шығаратын программа құрыңдар.
Program jup;
Var i: integer;
Begin
Writeln (’30-dan 10-ga deingi jup san’);
For i:=30 downto 10 do
If I mod 2=0 then
Writeln (i);
End.
№3. 1- ден 100 –ге дейінгі тақ сандардың және жұп сандардың қосындыларын табудың программасын құру керек.
Program tak and jup
Var I, s, s1: integer;
S:=0; S1:= 0;
For i:=1 to 100 do
Begin
If I mod 2 = 0 then s:=s+I else s1:=s1+I;
Writeln (‘ s=’, s, ‘ , ‘ , ‘s1= ‘, s1);
End;
End.
№4. 5- тен 1-ге дейінгі сандардың қосындысын есептеу керек.
Program kosindi;
Var I, s:integer;
Begin
S:=0;
For i:=5 downto 1 do
S:=S+I;
Writeln (‘s = ‘, s);
End.
Достарыңызбен бөлісу: |