Циклдің алғы шартыжәне ілесу шарты
Циклдің алғы шартыжәне ілесу шарты

#1 слайд
Циклдің алғы шарты
және ілесу шарты
Информатика және есептеуіш
техника негіздері
8 сынып
1 слайд
Циклдің алғы шарты және ілесу шарты Информатика және есептеуіш техника негіздері 8 сынып
#2 слайд
Қадамдар саны белгісіз цикл
Мысал: Бөренеден ағаштың бұтағын кесіп алу керек.
Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?
Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың
санын анықтау.
Шығару амалы: Ең соңғы орналасқан
цифрларды кезекпен алып тастай
отырып, санаушыны арттырамыз.
Мәселе: неше қадам жасау керектігі
белгісіз.
Шығарылуы: n = 0 болғанда тоқтау
керек, яғни "n <> 0" болғанша
орындай беру керек.
2 слайд
Қадамдар саны белгісіз цикл Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ? Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың санын анықтау. Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз. Мәселе: неше қадам жасау керектігі белгісіз. Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0" болғанша орындай беру керек.
#3 слайд
Алгоритм
басы
count
соңы
жоқ
иә
n <> 0?
count := 0;
count := count + 1;
n := n div 10;
цифрлардың санаушысын
нөлге теңестіру
енгізу n
“n <> 0“
болғанша
орындай беру
3 слайд
Алгоритм басы count соңы жоқ иә n <> 0? count := 0; count := count + 1; n := n div 10; цифрлардың санаушысын нөлге теңестіру енгізу n “n <> 0“ болғанша орындай беру
#4 слайд
Программа
program qq;
var n, count: integer;
begin
writeln(’Бүтін сан енгіз’);
read(n);
count := 0;
while n <> 0 do begin
count := count + 1;
n := n div 10;
end;
writeln( ’cанында’,count, ’цифр табылды’);
end.
while n <> 0 do begin
count := count + 1;
n := n div 10;
end;
, n1: integer;
n1 := n;
n1,
"n <> 0“
болғанша
орындай беру
4 слайд
Программа program qq; var n, count: integer; begin writeln(’Бүтін сан енгіз’); read(n); count := 0; while n <> 0 do begin count := count + 1; n := n div 10; end; writeln( ’cанында’,count, ’цифр табылды’); end. while n <> 0 do begin count := count + 1; n := n div 10; end; , n1: integer; n1 := n; n1, "n <> 0“ болғанша орындай беру
#5 слайд
Шартты цикл
while <шарт> do begin
{цикл денесі}
end;
Ерекшеліктері:
•күрделі шарттарды қолдануға болады:
while (a<b) and (b<c) do begin
{цикл денесі}
end;
•Егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін
жазбай кетуге болады:
while a < b do
a := a + 1;
5 слайд
Шартты цикл while <шарт> do begin {цикл денесі} end; Ерекшеліктері: •күрделі шарттарды қолдануға болады: while (a<b) and (b<c) do begin {цикл денесі} end; •Егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады: while a < b do a := a + 1;
#6 слайд
Ерекшеліктері:
•циклге кірген сайын шарт есептеліп отырады
•егер шарт циклге кіруде жалған болса, цикл бірде-бір рет
орындалмайды
a := 4; b := 6;
while a > b do
a := a – b;
a := 4; b := 6;
while a < b do
d := a + b;
•Егер шарт түбінде жалған болмайтын болса, программаның
жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)
6 слайд
Ерекшеліктері: •циклге кірген сайын шарт есептеліп отырады •егер шарт циклге кіруде жалған болса, цикл бірде-бір рет орындалмайды a := 4; b := 6; while a > b do a := a – b; a := 4; b := 6; while a < b do d := a + b; •Егер шарт түбінде жалған болмайтын болса, программаның жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)
#7 слайд
Цикл неше рет орындалған ?
a := 4; b := 6;
while a < b do a := a + 1;
2 рет
a = 6
a := 4; b := 6;
while a < b do a := a + b;
1 рет
a = 10
a := 4; b := 6;
while a > b do a := a + 1;
0 рет
a = 4
a := 4; b := 6;
while a < b do b := a - b;
1 рет
b = -2
a := 4; b := 6;
while a < b do a := a - 1;
дағдарысқа
ұшырау
7 слайд
Цикл неше рет орындалған ? a := 4; b := 6; while a < b do a := a + 1; 2 рет a = 6 a := 4; b := 6; while a < b do a := a + b; 1 рет a = 10 a := 4; b := 6; while a > b do a := a + 1; 0 рет a = 4 a := 4; b := 6; while a < b do b := a - b; 1 рет b = -2 a := 4; b := 6; while a < b do a := a - 1; дағдарысқа ұшырау
#8 слайд
For-ды while-ға ауыстыру және керісінше
for i:=1 to 10 do begin
{цикл денесі}
end;
i := 1;
while i <= 10 do begin
{цикл денесі}
i := i + 1;
end;
for i:=a downto b do
begin
{цикл денесі}
end;
i := a;
while i >= b do begin
{цикл денесі}
i := i - 1;
end;
for-ны while –ауыстыруға қашанда болады.
while-ды for-ға , циклдегі қадамдар саны алдын ала
белгілі болған жағдайда ғана ауыстыруға болады.
8 слайд
For-ды while-ға ауыстыру және керісінше for i:=1 to 10 do begin {цикл денесі} end; i := 1; while i <= 10 do begin {цикл денесі} i := i + 1; end; for i:=a downto b do begin {цикл денесі} end; i := a; while i >= b do begin {цикл денесі} i := i - 1; end; for-ны while –ауыстыруға қашанда болады. while-ды for-ға , циклдегі қадамдар саны алдын ала белгілі болған жағдайда ғана ауыстыруға болады.
#9 слайд
Соңғышартты цикл
Есеп: Бүтін оң сан енгізіп(<2000000), ондағы цифрлардың санын
анықтау.
Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай
қадағалауға болады?
Соңғышартты цикл – шарттың тексерілуі циклдың
соңында орындалатын цикл түрін айтады.
Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді
енгізу үшін кері оралу (цикл!).
Ерекшелігі: Цикл денесі кемінде бір рет
орындалады. = > шартын тексеруді циклдың
соңында орындау керек. (соңғышартты цикл).
9 слайд
Соңғышартты цикл Есеп: Бүтін оң сан енгізіп(<2000000), ондағы цифрлардың санын анықтау. Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай қадағалауға болады? Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады. Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді енгізу үшін кері оралу (цикл!). Ерекшелігі: Цикл денесі кемінде бір рет орындалады. = > шартын тексеруді циклдың соңында орындау керек. (соңғышартты цикл).
#10 слайд
Соңғышартты цикл: алгоритм
басы
соңы
иә
жоқ
n > 0?
цикл денесі
ШЫҒУДЫҢ шарты
«типтік
процесс» блогі
енгізу n
негізгі
алгоритм
10 слайд
Соңғышартты цикл: алгоритм басы соңы иә жоқ n > 0? цикл денесі ШЫҒУДЫҢ шарты «типтік процесс» блогі енгізу n негізгі алгоритм
#11 слайд
Программа
program qq;
var n: integer;
begin
repeat
writeln('Введите положительное число ');
read(n);
until n > 0;
... { негізгі алгоритм }
end.
repeat
writeln(‘Оң сан енгіз');
read(n);
until n > 0;until n > 0;
ШЫҒУДЫҢ шарты
Ерекшеліктері:
•цикл денесі кемінде бір рет орындалады
• until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ
шарты қойылады
11 слайд
Программа program qq; var n: integer; begin repeat writeln('Введите положительное число '); read(n); until n > 0; ... { негізгі алгоритм } end. repeat writeln(‘Оң сан енгіз'); read(n); until n > 0;until n > 0; ШЫҒУДЫҢ шарты Ерекшеліктері: •цикл денесі кемінде бір рет орындалады • until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады
#12 слайд
Цикл неше рет орындалған ?
a := 4; b := 6;
repeat a := a + 1; until a > b;
a := 4; b := 6;
repeat a := a + 1; until a > b;
3 рет
a = 7
3 рет
a = 7
a := 4; b := 6;
repeat a := a + b; until a > b;
a := 4; b := 6;
repeat a := a + b; until a > b;
1 рет
a = 10
1 рет
a = 10
a := 4; b := 6;
repeat a := a + b; until a < b;
a := 4; b := 6;
repeat a := a + b; until a < b;
Мүдіріп қалуМүдіріп қалу
a := 4; b := 6;
repeat b := a - b; until a < b;
a := 4; b := 6;
repeat b := a - b; until a < b;
2 рет
b = 6
2 рет
b = 6
a := 4; b := 6;
repeat a := a + 2; until a < b;
a := 4; b := 6;
repeat a := a + 2; until a < b;
Мүдіріп қалуМүдіріп қалу
12 слайд
Цикл неше рет орындалған ? a := 4; b := 6; repeat a := a + 1; until a > b; a := 4; b := 6; repeat a := a + 1; until a > b; 3 рет a = 7 3 рет a = 7 a := 4; b := 6; repeat a := a + b; until a > b; a := 4; b := 6; repeat a := a + b; until a > b; 1 рет a = 10 1 рет a = 10 a := 4; b := 6; repeat a := a + b; until a < b; a := 4; b := 6; repeat a := a + b; until a < b; Мүдіріп қалуМүдіріп қалу a := 4; b := 6; repeat b := a - b; until a < b; a := 4; b := 6; repeat b := a - b; until a < b; 2 рет b = 6 2 рет b = 6 a := 4; b := 6; repeat a := a + 2; until a < b; a := 4; b := 6; repeat a := a + 2; until a < b; Мүдіріп қалуМүдіріп қалу
#13 слайд
...,
32
5
,
16
4
,
8
3
,
4
2
,
2
1
Тізбектер
Мысалдар:
•1, 2, 3, 4, 5, …
•1, 2, 4, 7, 11, 16, …
•1, 2, 4, 8, 16, 32, …
•
...,
32
5
,
4
1
,
8
3
,
2
1
,
2
1
a
n
= n a
1
= 1, a
n+1
= a
n
+1
a
1
= 1, a
n+1
= a
n
+ n
a
n
= 2
n-1
a
1
= 1, a
n+1
= 2a
n
b
1
= 1, b
n+1
= b
n
+1
c
1
= 2, c
n+1
= 2c
n
n
n
n
c
b
a
13 слайд
..., 32 5 , 16 4 , 8 3 , 4 2 , 2 1 Тізбектер Мысалдар: •1, 2, 3, 4, 5, … •1, 2, 4, 7, 11, 16, … •1, 2, 4, 8, 16, 32, … • ..., 32 5 , 4 1 , 8 3 , 2 1 , 2 1 a n = n a 1 = 1, a n+1 = a n +1 a 1 = 1, a n+1 = a n + n a n = 2 n-1 a 1 = 1, a n+1 = 2a n b 1 = 1, b n+1 = b n +1 c 1 = 2, c n+1 = 2c n n n n c b a
#14 слайд
Есеп: модулі бойынша 0,001-ден асып түсетін
тізбектегі барлық элементтердің қосындысын табу:
...,
32
5
,
16
4
,
8
3
,
4
2
,
2
1
,1
Тізбек элементтері (№2-ден бастап ):
c
b
za
n 1 2 3 4 5...
b 1 2 3 4 5...
c 2 4 81632...
z-11-11-1...
b := b+1;
c := 2*c;
z := -z;
...
32
5
16
4
8
3
4
2
2
1
1 S
14 слайд
Есеп: модулі бойынша 0,001-ден асып түсетін тізбектегі барлық элементтердің қосындысын табу: ..., 32 5 , 16 4 , 8 3 , 4 2 , 2 1 ,1 Тізбек элементтері (№2-ден бастап ): c b za n 1 2 3 4 5... b 1 2 3 4 5... c 2 4 81632... z-11-11-1... b := b+1; c := 2*c; z := -z; ... 32 5 16 4 8 3 4 2 2 1 1 S
#15 слайд
Алгоритм
басы
S
соңы
жоқ
иә
|a| > 0.001?
S := S + a;
S := 0; b := 1;
c := 2; z := -1;
a := 1;
бастапқы
мәндер
a := z*b/c;
b := b + 1;
c := 2*c; z := -z;
бірінші
элемент
a := 1;
S := 0;
жаңа элемент
өзгеріс
Қайта қою керек
пе?
?
15 слайд
Алгоритм басы S соңы жоқ иә |a| > 0.001? S := S + a; S := 0; b := 1; c := 2; z := -1; a := 1; бастапқы мәндер a := z*b/c; b := b + 1; c := 2*c; z := -z; бірінші элемент a := 1; S := 0; жаңа элемент өзгеріс Қайта қою керек пе? ?
#16 слайд
Программа
program qq;
var b, c, z: integer;
S, a: real;
begin
S := 0; z := -1;
b := 1; c := 2; a := 1;
while abs(a) > 0.001 do begin
S := S + a;
a := z * b / c;
z := - z;
b := b + 1;
c := c * 2;
end;
writeln('S =', S:10:3);
end.
z := - z;
b := b + 1;
c := c * 2;
келесі
қосылғышқа
өту
S := 0; z := -1;
b := 1; c := 2; a := 1;
бастапқы
мәндер
қосындының
артуы
тізбек элементін
есепке алу
16 слайд
Программа program qq; var b, c, z: integer; S, a: real; begin S := 0; z := -1; b := 1; c := 2; a := 1; while abs(a) > 0.001 do begin S := S + a; a := z * b / c; z := - z; b := b + 1; c := c * 2; end; writeln('S =', S:10:3); end. z := - z; b := b + 1; c := c * 2; келесі қосылғышқа өту S := 0; z := -1; b := 1; c := 2; a := 1; бастапқы мәндер қосындының артуы тізбек элементін есепке алу
шағым қалдыра аласыз













