Рабочие листы
к вашим урокам
Скачать
1 слайд
Turbo Pascal бағдарламлау тілі
Оқытушы: Мирзвметов Жасур Мехманкулович
1
2 слайд
2
Паскаль тілінде программалау
Кіріспе
Тармақталу
Күрделі шарттар
Циклдер
Шартты циклдер
Таңдау операторы
Графика
Функциялардың графигі
Процедуралар
Рекурсия
Анимация
Кездейсоқ сандар
Функциялар
3 слайд
3
Паскаль тілінде программалау
Тақырып 1. Кіріспе
Басты
мәзір
4 слайд
4
Алгоритм
Алгоритм қасиеттері
дискреттілік: жекелеген қадамдардан(командалардан) тұрады
айқындылық: атқарушыға түсінікті болатын командалардан тұруы керек
белгілілік: бастапқы деректері бірдей болған жағдайда нәтижесі де бірдей болады
нәтижелік: әрекеттердің шектеулі санынан кейін белгілі бір уақытта қорытынды нәтиже алуымыз керек
жалпылық: алгоритм әр түрлі алғашқы мәліметтер үшін әр түрлі нәтижелер беруі тиіс
дұрыстылық: алғашқы мәліметтер әр түрлі болғандығына қарамастан барлық жағдайда дұрыс нәтиже береді
Алгоритм – атқарушы орындайтын амалдардың тиянақты жоспары.
Басты
мәзір
5 слайд
5
Программа
Программа дегеніміз -
қандай да бір программалау тілінде жазылған алгоритм
компьютерге қажетті командалардың жиынтығы
Команда – компьютер орындауға міндетті әрекеттің өрнектелуі.
алғашқы мәліметтерді қайдан алу керек?
олармен қандай амалдар орындау керек?
Басты
мәзір
6 слайд
6
Программалау тілдері
Машинаға бейімделген (төменгі деңгейлі) - әрбір команда процессордың бір командасына сәйкес келеді (ассемблер)
Жоғарғы деңгейлі тілдер – кәдімгі табиғи тілге(ағылшын тіліне) ұқсайды, адамның түсінуіне оңай, бір ғана компьютерге тәуелді болмайды.
Жаңадан үйренушілерге: Бейсик, ЛОГО, Паскаль
Кәсіби: Си, Фортран, Паскаль
Жасанды интеллект тапсырмалары үшін: Пролог, ЛИСП
Интернет үшін: JavaScript, Java, Perl, PHP, ASP
Басты
мәзір
7 слайд
7
Паскаль тілі
1970 – Никлаус Вирт (Швейцария)
студенттерді оқытуға арналған тіл
«жоғарыдан төменге қарай» программаларын жасау
берілгендердің әр түрлі құрылымдары(массивтер, құрылымдар, жиымдар)
Бағыныңқы есеп1
Бағыныңқы есеп2
Бағыныңқы есеп3
1.1
1.2
1.3
2.1
2.2
2.3
3.1
3.2
3.3
Есеп
Басты
мәзір
8 слайд
8
Программа қандай бөліктерден тұрады?
program <программаның аты>;
const …;{тұрақтылар}
var …; {айнымалылар}
begin
… {негізгі программа}
end.
{ процедуралар мен функциялар }
фигуралық жақшаның ішінде орналасқан түсініктемелер программамен өңделмейді
Басты
мәзір
9 слайд
9
Программа қандай бөліктерден тұрады?
Тұрақты – өз атауы болатын, өзгермейтін шама, .
Айнымалы – өз атауы (жад ұяшығы)болатын, өзгеретін шама.
Процедура – кейбір әрекеттерді сипаттайтын қосалқы алгоритм (мысалға шеңберді салу).
Функция – есептеулерді орындайтын қосалқы алгоритм (квадрат түбірді табу, sin).
Басты
мәзір
10 слайд
10
Программалар, тұрақтылар, айнымалылар атауы
Атауларды сипаттағанда
латын әріптерін (A-Z)
сандарды
астын сызу белгісін _
қолдануға болады
Бас әріптер мен кіші әріптердің арасында айырмашылық болмайды
Атауларды сипаттағанда
орыс, қазақ әріптерін
бос орындарды
жақшаларды, +, =, !, ? белгілерін және т.б.
қолдануға болмайды
Атаулар санмен басталмауы керек
Қай атаулар дұрыс жазылған?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B
Басты
мәзір
11 слайд
11
Тұрақтылар
const
i2 = 45; { бүтін сан }
pi = 3.14; { нақты сан }
qq = 'Вася'; { символдар қатары }
L = True; { логикалық шама }
бүтін және бөлшек бөліктері нүктемен ажыратылады
орыс, қазақ әріптерін қолдануға болады!
екі мән қабылдай алады:
True (ақиқат, «иә»)
False (жалған, «жоқ»)
Басты
мәзір
12 слайд
12
Айнымалылар
Айнымалы – аты, типі және мәні болатын шама. Айнымалының мәнін программаның жұмысы кезінде өзгертіп отыруға болады.
Айнымалылардың типі:
integer{ бүтін }
real{ нақты }
char{ бір символ }
string{ символдық тіркес }
boolean { логикалық }
Айнымалыларды сипаттау (жад бөлу):
var a, b: integer;
Q: real;
s1, s2: string;
Басты
мәзір
13 слайд
13
Айнымалының мәнін қалай өзгертуге болады?
Оператор – жоғары деңгейлі программалау тілінің командасы.
Меншіктеу операторы айнымалының мәнін өзгерту үшін қолданылады.
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
end.
a
?
5
5
b
?
5+2
7
a
5
7*4
28
Мысал:
Басты
мәзір
14 слайд
14
Меншіктеу операторы
Жалпы құрылымы:
Арифметикалық өрнектің құрамында
тұрақтылар
айнымалы атаулары
арифметикалық амалдар белгілері:
+ - * / div mod
функцияларды шақыру
жақшалар ( )
көбейту
бөлу
бүтінді бүтінге бөлу
бөлуден қалған қалдық
<айнымалы атауы> := <өрнек>;
Басты
мәзір
15 слайд
15
program qq;
var a, b: integer;
x, y: real;
begin
a := 5;
10 := x;
y := 7,8;
b := 2.5;
x := 2*(a + y);
a := b + x;
end.
Қай операторлар дұрыс жазылмаған?
айнымалы атауы := белгісінің сол жағында болуы керек
бүтін мен бөлшектің арасы нүктемен ажыратылуы керек
нақты мәнді бүтін айнымалыға меншіктеуге болмайды
Басты
мәзір
16 слайд
16
Амалдарды орындау тәртібі
жақша ішіндегі өрнекті есептеу
солдан оңға қарай көбейту, бөлу, div, mod
солдан оңға қарай қосу және алу
z := (5*a*c+3*(c-d))/a*(b-c)/ b;
x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
2 3 5 4 1 7 8 6 9
2 6 3 4 7 5 1 12 8 11 10 9
Басты
мәзір
17 слайд
17
Екі санды қосу
Есеп. Екі бүтін санды қосып, қосындысын экранда шығару.
Шығарылуы:
program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.
Басты
мәзір
18 слайд
18
Енгізу операторы
read ( a ); { а айнымалысының мәнін енгізу}
read ( a, b ); { а және b айнымалыларының мәндерін енгізу}
Екі санды қалай енгізуге болады?
бос орын арқылы:
25 30
Enter арқылы:
25
30
a
25
b
30
a
25
b
30
Басты
мәзір
19 слайд
19
Шығару операторы
write ( a ); { a айнымалысының мәнін шығару}
writeln ( a ); {a айнымалысының мәнін шығарып,келесі жолға көшу}
writeln ( ‘Салем!' ); { мәтінді шығару}
writeln ( ‘Жауап: ', c ); { мәтінді және c айнымалысының мәнін шығару}
writeln ( a, '+', b, '=', c );
Басты
мәзір
20 слайд
20
Шығару форматтары
program qq;
var i: integer;
x: real;
begin
i := 15;
writeln ( '>', i, '<' );
writeln ( '>', i:5, '<' );
x := 12.345678;
writeln ( '>', x, '<' );
writeln ( '>', x:10, '<' );
writeln ( '>', x:7:2, '<' );
end.
>15<
> 15<
>1.234568E+001<
> 1.23E+001<
> 12.35<
барлық символдар саны
барлық символдар саны
бөлшек бөлігіндегі символдар саны
Басты
мәзір
21 слайд
21
Толық шығарылуы
program qq;
var a, b, c: integer;
begin
writeln(‘Екі бүтін сан енгізіңіз');
read ( a, b );
c := a + b;
writeln ( a, '+', b, '=', c );
end.
Протокол:
Екі бүтін сан енгізіңіз
25 30
25+30=55
бұны компьютер шығарады
бұны программа жазушы өзі енгізеді
Басты
мәзір
22 слайд
22
Сызықтық алгоритмның блок-схемасы
басы
соңы
c := a + b;
енгізу a, b
шығару c
«басы» блогі
«енгізу» блогі
«процесс» блогі
«шығару» блогі
«соңы» блогі
Басты
мәзір
23 слайд
23
Тапсырмалар
"4": Үш сан енгізіп,олардың қосындысын және көбейтіндісін табу.
Мысал:
Үш сан енгіз:
4 5 7
4+5+7=16
4*5*7=140
"5": Үш сан енгізіп, олардың қосындысын, көбейтіндісін және арифметикалық ортасын табу.
Мысал:
Үш сан енгіз:
4 5 7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.33
Басты
мәзір
24 слайд
24
Паскаль тілінде программалау
Тақырып 2. Тармақталу
Басты
мәзір
25 слайд
25
Тармақталу алгоритмдері
Есеп. Екі бүтін сан енгізіп,экранға олардың үлкенін шығару.
Шығару амалы: бірінші сан екінші саннан үлкен болса, біріншісін, ал егер кіші болса екіншісін экранға шығару.
Ерекшелігі: атқарушының әрекеті кейбір шарттардың орындалуына байланысты болады (егер …әйтпесе …).
Қадамдардың тізбектеп орындалуы кейбір шарттарға байланысты болатын алгоритмдерді тармақталу алгоритмдері деп атайды.
Басты
мәзір
26 слайд
26
Нұсқа 1. Блок-схема
басы
max:= a;
енгізу a,b
шығару max
a > b?
max:= b;
соңы
иә
жоқ
Тармақталудың толымды түрі
«таңдау» блогі
Егер a = b?
?
Басты
мәзір
27 слайд
27
Нұсқа 1. Программа
max := a;
max := b;
шартты оператордың толымды түрі
program qq;
var a, b, max: integer;
begin
writeln(‘Екі бүтін сан енгіз');
read ( a, b );
if a > b then begin
end
else begin
end;
writeln (‘Екі санның үлкені', max);
end.
Басты
мәзір
28 слайд
28
Шартты оператор
if <шарт> then begin
{егер шарт орындалса, не істеу керек}
end
else begin
{егер шарт орындалмаса, не істеу керек}
end;
Ерекшеліктері:
else-тің алдында нүктелі үтір болмауы керек
екінші бөліктің (else …) болмауы да мүмкін (толымсыз түрі)
егер блокта бір ғана оператор болса, begin мен end сөздерін жазбауға да болады
Басты
мәзір
29 слайд
29
Қай жері дұрыс емес?
if a > b then begin
a := b;
end
else
b := a;
end;
if a > b then begin
a := b;
else begin
b := a;
end;
if a > b then begin
a := b;
end;
else begin
b := a;
end;
if a > b then begin
a := b;
end
else b > a begin
b := a;
end;
begin
end
begin
end
Басты
мәзір
30 слайд
30
Нұсқа 2. Блок-схема
тармақталудың толымсыз түрі
басы
max:= a;
енгізу a,b
шығару max
max:= b;
соңы
иә
жоқ
b > a?
Басты
мәзір
31 слайд
31
Нұсқа 2. Программа
program qq;
var a, b, max: integer;
begin
writeln(‘Екі бүтін сан енгіз');
read ( a, b );
max := a;
if b > a then
max := b;
writeln (‘Екі санның үлкені', max);
end.
шартты оператордың толымсыз түрі
Басты
мәзір
32 слайд
32
Нұсқа 2Б. Программа
program qq;
var a, b, max: integer;
begin
writeln('Екі бүтін сан енгіз');
read ( a, b );
max := b;
if ??? then
???
writeln ('Екі санның үлкені', max);
end.
max := a;
a > b
Басты
мәзір
33 слайд
33
Қай жері дұрыс емес?
if a > b then begin
a := b;
else b := a;
if a > b then begin
a := b;
end;
else b := a;
if a > b then
else begin
b := a;
end;
if a > b then
a := b;
else b := a; end;
a := b
end
a := b
if b >= a then
b := a;
Басты
мәзір
34 слайд
34
Тапсырмалар
"4": Үш сан енгізіп олардың үлкенін табу.
Мысал:
Үш сан енгіз:
4 15 9
Ең үлкен сан 15
"5": Бес сан енгізіп олардың үлкенін табу.
Мысал:
Бес сан енгіз:
4 15 9 56 4
Ең үлкен сан 56
Басты
мәзір
35 слайд
35
Паскаль тілінде программалау
Тақырып 3. Күрделі шарттар
Басты
мәзір
36 слайд
36
Күрделі шарттар
Есеп. Фирма 25 пен 40 жас арасындағы қызметкерлерді жұмысқа алуда. Адамның жасын енгізіп, оны фирмаға алуға болатындығы немесе болмайтындығы туралы мәлімет шығару («болады» немесе «болмайды» деген жауап шығару).
Ерекшелігі: екі шарттың бір мезгілде орындалатынын немесе орындалмайтынын тексеру.
Белгілі әдістермен шешуге бола ма?
?
Басты
мәзір
37 слайд
37
Нұсқа 1. Алгоритм
басы
енгізу x
‘болады'
жоқ
иә
жоқ
x >= 25?
иә
жоқ
x <= 40?
'болмайды'
‘болмайды'
Басты
мәзір
38 слайд
38
Нұсқа 1. Программа
program qq;
var x: integer;
begin
writeln(‘Жасты енгіз');
read ( x );
if x >= 25 then
if x <= 40 then
writeln (‘Болады')
else writeln (‘Болмайды')
else
writeln (‘Болмайды');
end.
Басты
мәзір
39 слайд
39
Нұсқа 2. Алгоритм
басы
енгізу x
‘болады'
иә
жоқ
x >= 25
және
x <= 40?
'болмайды'
соңы
Басты
мәзір
40 слайд
40
Вариант 2. Программа
күрделі шарт
program qq;
var x: integer;
begin
writeln(‘Жасты енгіз');
read ( x );
if (x >= 25) and (x <= 40) then
writeln ('Болады')
else writeln ('Болмайды')
end.
Басты
мәзір
41 слайд
41
Күрделі шарттар
Күрделі шарт – бір-бірімен логикалық операциялардың көмегімен байланысатын бірнеше қарапайым шарттардан (қатынастардан) тұрады:
not – ЕМЕС (терістеу, инверсия)
and – ЖӘНЕ (логикалық көбейту, конъюнкция,
шарттардың бір мезгілде орындалуы)
or – НЕМЕСЕ (логикалық қосу, дизъюнкция,
ең болмағанда бір шарттың орындалуы)
xor – арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)
Қарапайым шарттар (қатынастар)
< <= > >= = <>
тең
тең емес
Басты
мәзір
42 слайд
42
Күрделі шарттар
Орындау тәртібі
жақша ішіндегі өрнектер
not
and
or, xor
<, <=, >, >=, =, <>
Ерекшелігі – қарапайым шарттардың әрқайсысын жақшамен жабу.
Мысал:
4 1 6 2 5 3
if not (a > b) or (c <> d) and (b <> a)
then begin
...
end
Басты
мәзір
43 слайд
43
a := 2; b := 3; c := 4; болған жағдайда ақиқат немесе жалған:
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
x-тің қандай мәндерінде шарт ақиқат болады:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)
Күрделі шарттар
True
True
FALSE
(-, 6)
(6, 10)
(10, )
(-, 10)
(-, 6) (10,)
(-, )
(6, )
x < 6
x > 10
x < 10
x > 6
True
True
Басты
мәзір
44 слайд
44
Тапсырмалар
"4": Айдың нөмірін енгізу арқылы, жыл мезгілінің атауын шығару.
Мысал:
Ай нөмірін енгіз:
4
көктем
Басты
мәзір
45 слайд
45
Паскаль тілінде программалау
Тақырып 4. Циклдер
Басты
мәзір
46 слайд
46
Циклдер
Цикл – белгілі бір әрекеттер тізбегінің бірнеше рет қайталанып орындалуы.
қадамдар саны белгілі цикл
қадамдар саны белгісіз цикл (шартты цикл)
Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (a-дан b-ға дейін).
Ерекшелігі: бірдей амалдар 8 рет орындалады.
Белгілі әдістермен шешуге бола ма?
?
Басты
мәзір
47 слайд
47
Алгоритм
басы
i, i2, i3
соңы
жоқ
иә
i <= 8?
i := 1;
i := i + 1;
i2 := i * i;
i3 := i2 * i;
цикл айнымалысының бастапқы мәнін көрсету
барлығы да атқарылды ма? соны тексеру
квадрат пен куб-ты есептейміз
нәтижесін шығару
келесі i-ге өту
Басты
мәзір
48 слайд
48
Алгоритм ("цикл" блогімен)
басы
i, i2, i3
соңы
i2 := i * i;
i3 := i2 * i;
i := 1,8
«цикл»блогі
цикл денесі
Басты
мәзір
49 слайд
49
Программа
program qq;
var i, i2, i3: integer;
begin
for i:=1 to 8 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end.
цикл айнымалысы
бастапқы мән
ең соңғы мән
Басты
мәзір
50 слайд
50
Айнымалысы кеміп отыратын цикл
Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (кері қарай есептеу).
Ерекшелігі: цикл айнымалысы кеміп отыруы керек.
Шығарылуы:
for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
downto
Басты
мәзір
51 слайд
51
Айнымалысы бар цикл
for <айнымалы> := <алғашқы мән> to
<ең соңғы мән> do begin
{цикл денесі}
end;
Айнымалының 1-ге артуы:
for <айнымалы> := <алғашқы мән>
downto
<ең соңғы мән> do begin
{цикл денесі}
end;
Айнымалының 1-ге кемуі:
Басты
мәзір
52 слайд
52
Айнымалысы бар цикл
Ерекшеліктері:
цикл айнымалысының мәні бүтін болуы керек (integer)
цикл айнымалысының өзгеру қадамы қашанда 1-ге (to) немесе -1-ге (downto) тең
егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
егер соңғы мән алғашқы мәннен кіші болса, (to) циклы бірде бір рет орындалмайды (шартты циклдың басында тексеру, шартты алдын ала тексеретін цикл)
for i:=1 to 8 do
writeln('Привет');
Басты
мәзір
53 слайд
53
Айнымалысы бар цикл
Ерекшеліктері:
Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?)
Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:
n := 8;
for i:=1 to n do begin
writeln('Салем');
n := n + 1;
end;
мүдіріп қалу жоқ
Басты
мәзір
54 слайд
54
Цикл неше рет орындалған?
a := 1;
for i:=1 to 3 do a := a+1;
a = 4
a := 1;
for i:=3 to 1 do a := a+1;
a = 1
a := 1;
for i:=1 downto 3 do a := a+1;
a = 1
a := 1;
for i:=3 downto 1 do a := a+1;
a = 4
Басты
мәзір
55 слайд
55
for i:=1 to 9 do begin
if ??? then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;
Қадамдарды қалай өзгертуге болады?
Есеп. Экранға 1-ден 9-ға дейінгі тақ сандардың квадраттары мен кубтарын есептеп шығару.
Ерекшелігі: цикл айнымалысы 2-ге артып отыру керек.
Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы мүмкін.
Шығарылуы:
i mod 2 = 1
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
Тек қана тақ i-лермен орындалады
Басты
мәзір
56 слайд
56
Қадамдарды қалай өзгертуге болады? – II
Идея: Тек 5 санды ғана шығару керек, k айнымалысы 1-ден 5-ке дейін өзгереді. i-дің бастапқы мәні 1-ге тең, циклдың әр қадамы сайын i 2-ге артып отырады.
Шығарылуы:
???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;
i := i + 2;
i := 1;
Басты
мәзір
57 слайд
57
Қадамдарды қалай өзгертуге болады? – III
Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден 5-ке дейін өзгереді. k-ны біле отырып, i-ді есептеу қажет.
Шығарылуы:
i = 2k-1
for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
i := 2*k – 1;
Басты
мәзір
58 слайд
58
Тапсырмалар
"4": a мен b-ны енгізіп, осы екеуінің арасындағы сандардың квадраттары мен кубтарын есептеп шығару.
Мысал:
Интервал шекараларын енгіз:
4 6
4 16 64
5 25 125
6 36 216
"5": 1, 2, 4, 7, 11, 16, … тәртібімен орналасқан 10 санның квадраттары мен кубтарын есептеп шығару
Мысал:
1 1 1
2 4 8
4 16 64
...
46 2116 97336
Басты
мәзір
59 слайд
59
Паскаль тілінде программалау
Тақырып 5. Шартты циклдер
Басты
мәзір
60 слайд
60
Қадамдар саны белгісіз цикл
Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?
Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың санын анықтау.
Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз.
Мәселе: неше қадам жасау керектігі белгісіз.
Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0" болғанша орындай беру керек.
Басты
мәзір
61 слайд
61
Алгоритм
басы
count
соңы
жоқ
иә
n <> 0?
count := 0;
count := count + 1;
n := n div 10;
цифрлардың санаушысын нөлге теңестіру
енгізу n
“n <> 0“ болғанша орындай беру
Басты
мәзір
62 слайд
62
Программа
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“ болғанша орындай беру
Басты
мәзір
63 слайд
63
Шартты цикл
while <шарт> do begin
{цикл денесі}
end;
Ерекшеліктері:
күрделі шарттарды қолдануға болады:
егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
while (a<b) and (b<c) do begin
{цикл денесі}
end;
while a < b do
a := a + 1;
Басты
мәзір
64 слайд
64
Шартты цикл
Ерекшеліктері:
циклге кірген сайын шарт есептеліп отырады
егер шарт циклге кіруде жалған болса, цикл бірде-бір рет орындалмайды
егер шарт түбінде жалған болмайтын болса, программаның жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)
a := 4; b := 6;
while a > b do
a := a – b;
a := 4; b := 6;
while a < b do
d := a + b;
Басты
мәзір
65 слайд
65
Цикл неше рет орындалған?
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;
дағдарысқа ұшырау
Басты
мәзір
66 слайд
66
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;
while-ды for-ға , циклдегі қадамдар саны алдын ала белгілі болған жағдайда ғана ауыстыруға болады.
for-ны while –ауыстыруға қашанда болады.
Басты
мәзір
67 слайд
67
Тапсырмалар
"4": Бүтін сан енгізіп, ондағы цифрлардың қосындысын табу.
Мысал:
Бүтін сан енгіз:
1234
1234 санындағы цифрлардың қосындысы 10-ға тең.
"5": Бүтін сан енгізіп, оның жазылуында бірдей цифрларлардың бар-жоғын анықтау.
Мысал:
Бүтін сан енгіз: Бүтін сан енгіз:
1234 1224
Жоқ. Бар.
Басты
мәзір
68 слайд
68
Тізбектер
Мысалдар:
1, 2, 3, 4, 5, …
1, 2, 4, 7, 11, 16, …
1, 2, 4, 8, 16, 32, …
an = n
a1 = 1, an+1 = an+1
a1 = 1, an+1 = an + n
an = 2n-1
a1 = 1, an+1 = 2an
b1 = 1, bn+1 = bn+1
c1 = 2, cn+1 = 2cn
Басты
мәзір
69 слайд
69
Тізбектер
Есеп: модулі бойынша 0,001-ден асып түсетін
тізбектегі барлық элементтердің қосындысын табу:
Тізбек элементтері (№2-ден бастап ):
b := b+1;
c := 2*c;
z := -z;
Басты
мәзір
70 слайд
70
Алгоритм
басы
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;
жаңа элемент
өзгеріс
Қайта қою керек пе?
?
Басты
мәзір
71 слайд
71
Программа
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;
бастапқы мәндер
қосындының артуы
тізбек элементін есепке алу
Басты
мәзір
72 слайд
72
Тапсырмалар
"4": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :
Жауап:
S = 1.157
"5": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :
Жауап:
S = 1.220
Басты
мәзір
73 слайд
73
Соңғышартты цикл
Есеп: Бүтін оң сан енгізіп(<2000000), ондағы цифрлардың санын анықтау.
Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай қадағалауға болады?
Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді енгізу үшін кері оралу (цикл!).
Ерекшелігі: Цикл денесі кемінде бір рет орындалады. => шартын тексеруді циклдың соңында орындау керек. (соңғышартты цикл).
Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады.
Басты
мәзір
74 слайд
74
Соңғышартты цикл: алгоритм
басы
соңы
иә
жоқ
n > 0?
цикл денесі
ШЫҒУДЫҢ шарты
«типтік процесс» блогі
енгізу n
негізгі
алгоритм
Басты
мәзір
75 слайд
75
Программа
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 ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады
Басты
мәзір
76 слайд
76
Цикл неше рет орындалған?
a := 4; b := 6;
repeat a := a + 1; until a > b;
3 рет
a = 7
a := 4; b := 6;
repeat a := a + b; until a > b;
1 рет
a = 10
a := 4; b := 6;
repeat a := a + b; until a < b;
Мүдіріп қалу
a := 4; b := 6;
repeat b := a - b; until a < b;
2 рет
b = 6
a := 4; b := 6;
repeat a := a + 2; until a < b;
Мүдіріп қалу
Басты
мәзір
77 слайд
77
Тапсырмалар (бұрыс енгізуден қорғау)
"4": Натурал сан енгізіп, сол сандағы цифрлардың қосындысы 10-ға тең екендігінің дұрыстығын анықтау.
Мысал:
>= 0 сан енгіз: >= 0 сан енгіз:
-234 1233
Оң сан енгізу керек. Жоқ
>= 0 сан енгіз:
1234
Иә
"5": Натурал сан енгізіп,қандай цифрлардың бірнеше рет кездесетіндігін анықтау.
Мысал:
>= 0 сан енгіз: >= 0 сан енгіз:
2323 1234
2, 3 қайталанады Қайталану жоқ.
Басты
мәзір
78 слайд
78
Паскаль тілінде программалау
Тақырып 6. Таңдау операторы
Басты
мәзір
79 слайд
79
Таңдау операторы
Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын шығару.
Шығарылуы: Айдағы күндер саны
28 күн – 2 (ақпан)
30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша)
31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде),
8 (тамыз), 10 (қазан), 12 (желтоқсан)
Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес бірнеше нұсқаның бірін таңдау.
Бұған дейінгі қолданған әдістермен шешуге бола ма?
?
Басты
мәзір
80 слайд
80
Алгоритм
басы
соңы
таңдау операторы
ешбір нұсқасы сәйкес келген жоқ
енгізу M
иә
жоқ
M = 1?
D := 31;
жоқ
M = 2?
D := 28;
иә
жоқ
M = 12?
D := 31;
иә
шығару D
қате
Басты
мәзір
81 слайд
81
Программа
program qq;
var M, D: integer;
begin
writeln(‘Айдың нөмірін енгіз:');
read ( M );
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
if D > 0 then
writeln(‘Бұл айда ', D, ' күн.')
else
writeln('Айдың нөмірі дұрыс емес');
end.
case M of
2: begin D := 28; end;
4,6,9,11: begin D := 30; end;
1,3,5,7,8,10,12: D := 31;
else D := -1;
end;
ешбір нұсқасы сәйкес келген жоқ
Басты
мәзір
82 слайд
82
Таңдау операторы
Ерекшеліктері:
case-тен кейін айнымалы атауы немесе бүтін типті (integer) арифметикалық өрнек
немесе символдық типті (char) арифметикалық өрнек
case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;
var c: char;
...
case c of
'а': writeln(‘Бөкен');
'б': writeln('Борсық');
else writeln(‘Білмеймін');
end;
болуы мүмкін
Басты
мәзір
83 слайд
83
Таңдау операторы
Ерекшеліктері:
егер бір ғана операторды орындау керек болса, begin мен end сөздерін жазбай кетуге болады
бірдей екі мәнді қоюға болмайды
case i+3 of
1: a := b;
1: a := c;
end;
case i+3 of
1: a := b;
2: a := c;
end;
Басты
мәзір
84 слайд
84
Таңдау операторы
Ерекшеліктері:
бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет
case i of
1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln(‘Қате');
end;
тізбелеп санап шығу
диапазон
аралас
Басты
мәзір
85 слайд
85
Қай жері дұрыс емес?
case a of
2: begin a := b;
4: a := c;
end;
case a of
2: a := b
4: a := c
end;
;
case a of
2..5: a := b;
4: a := c;
end;
case a of
0..2: a := b;
6..3: a := c;
end;
3..6:
case a+c/2 of
2: a := b;
4: a := c;
end;
case a of
2: a := b; d := 0;
4: a := c;
end;
begin
end;
Басты
мәзір
86 слайд
86
Тапсырмалар (бұрыс енгізуден қорғаумен)
"4": Айдың нөмірін енгізе отырып, осы айдағы күндердің санын және енгізу кезінде жіберілген қателердің санын есептеп шығару.
Мысал:
Ай нөмірін енгіз: Ай нөмірін енгіз:
-2 2
Ай нөмірін енгіз: Бұл айда 28 күн бар.
11 Сіз 0 рет қате енгіздіңіз.
Бұл айда 30 күн бар.
Сіз 1 рет қате енгіздіңіз.
"5": Айдың нөмірі мен күннің нөмірін енгізіп, Жаңа жылға дейін қалған күндердің санын анықтау.
Мысал:
Ай нөмірін енгіз:
12
Күнді енгіз:
25
Жаңа жылға дейін 6 күн бар.
Басты
мәзір
87 слайд
87
Паскаль тілінде программалау
Тақырып 7. Графика
Басты
мәзір
88 слайд
88
Координаталар жүйесі
(0,0)
(x,y)
X
Y
x
y
Басты
мәзір
89 слайд
89
Түстерді басқару
Cызықтың түсі мен қалыңдығы, нүктелердің түсі:
Pen ( 1, 255, 0, 0 );
Бояудың түсі мен стилі:
Brush ( 1, 0, 255, 0 );
Мәтін түсі:
TextColor ( 0, 0, 255 );
сызықтың қалыңдығы
R(red)
0..255
G(green)
0..255
B(blue)
0..255
0 – өшіру
1 - қосу
R
G
B
R
G
B
Басты
мәзір
90 слайд
90
Нүктелер, кесінділер және қисық сызықтар
(x1, y1)
(x2, y2)
Pen (1, 0, 255, 0); Line (x1, y1, x2, y2);
(x, y)
Pen (1, 0, 0, 255);
Point (x, y);
(x1, y1)
(x2, y2)
(x3, y3)
(x4, y4)
(x5, y5)
Pen (1, 255, 0, 0); MoveTo (x1, y1);
LineTo (x2, y2);
LineTo (x3, y3);
LineTo (x4, y4);
LineTo (x5, y5);
Басты
мәзір
91 слайд
91
Фигуралардың ішін бояу
(x1, y1)
(x2, y2)
Pen (1, 0, 0, 255);
Brush (1, 255, 255, 0);
Rectangle (x1, y1, x2, y2);
(x1, y1)
(x2, y2)
Pen (1, 255, 0, 0);
Brush (1, 0, 255, 0);
Ellipse (x1, y1, x2, y2);
Brush (1, 100, 200, 255);
Fill (x, y);
(x, y)
Басты
мәзір
92 слайд
92
Мәтін
TextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30, 600);
MoveTo (x, y);
writeln (‘Салем!');
Салем!
(x, y)
өлшемі
10 пиксель
айналу бұрышы
қанықтылық:
400 – қалыпты
600 – қалың
30о
Басты
мәзір
93 слайд
93
Мысал
(200, 50)
(100, 100)
(300, 200)
program qq;
begin
Pen(2, 255, 0, 255);
Brush(1, 0, 0, 255);
Rectangle(100, 100, 300, 200);
MoveTo(100, 100);
LineTo(200, 50);
LineTo(300, 100);
Brush(1, 255, 255, 0);
Fill(200, 75);
Pen(2, 255, 255, 255);
Brush(1, 0, 255, 0);
Ellipse(150, 100, 250, 200);
end.
Басты
мәзір
94 слайд
94
Тапсырмалар
"4": «Бақа"
"5": «Тәж"
Басты
мәзір
95 слайд
95
Штрихтер салу
(x1, y1)
(x2, y2)
N сызық (N=5)
h
Rectangle (x1, y1, x2, y2);
Line( x1+h, y1, x1+h, y2);
Line( x1+2*h, y1, x1+2*h, y2);
Line( x1+3*h, y1, x1+3*h, y2);
...
h := (x2 – x1) / (N + 1);
Rectangle (x1, y1, x2, y2);
x := x1 + h;
for i:=1 to N do begin
Line( round(x), y1, round(x), y2);
x := x + h;
end;
var x, h: real;
x
жақын орналасқан бүтін санға дейін дөңгелектеу
x
Басты
мәзір
96 слайд
96
Түсті қалай өзгертуге болады?
(x1, y1)
(x2, y2)
Brush ( 1, c, c, c );
Fill ( ???, ??? );
сұр: R = G = B
Өзгеру қадамы c:
x
(x-1, y1+1)
var c, hc: integer;
hc := 255 div (N + 1);
c := 0;
for i:=1 to N+1 do begin
Line (round(x), y1, round(x), y2);
Brush (1, c, c, c);
Fill (round(x)-1, y1+1);
x := x + h; c := c + hc;
end;
Басты
мәзір
97 слайд
97
Штрихтер салу
(x1, y1)
(x2, y2)
(x3, y2)
a
h
(x3+a, y1)
Line( x1+h, y1, x1+h-a, y2);
Line( x1+2*h, y1, x1+2*h-a, y2);
Line( x1+3*h, y1, x1+3*h-a, y2);
...
h := (x3 – x2) / (N + 1);
a := x1 – x2;
x := x1 + h;
for i:=1 to N do begin
Line( round(x), y1, round(x-a), y2);
x := x + h;
end;
x
x-a
Басты
мәзір
98 слайд
98
Штрихтер салу
(x1, y1)
(x2, y2)
hx
hy
y
x
y
Line( x1, y1+hy, x1+hx, y1+hy) ;
Line( x1, y1+2*hy, x1+2*hx, y1+2*hy);
Line( x1, y1+3*hy, x1+3*hx, y1+3*hy);
...
hx := (x2 – x1) / (N + 1);
hy := (y2 – y1) / (N + 1);
x := x1 + hx; y := y1 + hy;
for i:=1 to N do begin
Line( x1, round(y), round(x), round(y));
x := x + hx; y := y + hy;
end;
Басты
мәзір
99 слайд
99
Тапсырмалар
"4": Пернетақтадан штрих сызықтарының санын енгізе отырып фигура салу және оның ішін әр түрлі түстермен бояу.
"5": Пернетақтадан шеңберлердің санын енгізу арқылы шеңбердің суретін салу және оның ішіндегі әр шеңберді әр түрлі түске бояу.
Басты
мәзір
100 слайд
100
Паскаль тілінде программалау
Тақырып 8. Функциялардың графигі
Басты
мәзір
101 слайд
101
Функция графиктерін құру
Есеп: 0 мен 2π интервалы арасындағы y = 3 sin(x) функциясының графигін құру.
Анализ:
x = π/2 болғанда максималды мән ymax = 3
x = 3π/2 болғанда минималды мән ymin = -3
Мәселе: функция координалардың математикалық жүйесінде көрсетілген, ал графикті координаталарын пиксельдермен көрсете отырып компьютер экранында шығару керек.
Басты
мәзір
102 слайд
102
Координаталардың түрленуі
(x,y)
X
Y
x
y
Координаталардың математикалық
жүйесі
Координаталардың экрандық жүйесі (пиксельдер)
(xэ,yэ)
xэ
yэ
(0,0)
(0,0)
a
b
k – масштаб (экрандағы жекелеген кесінді кескінінің ұзындығы)
xэ = a + kx
yэ = b - ky
Басты
мәзір
103 слайд
103
Программа
2π
h – x-тің өзгеру қадамы
w – ОХ осінің ұзындығы(пиксельдер саны)
экранда
координаталар осі
графиктің құрылу циклі
program qq;
const a = 50; b = 200; k = 50;
xmin = 0; xmax = 6.2832;
var x, y, h: real;
xe, ye, w: integer;
begin
w := round((xmax - xmin)*k);
Line(a-10, b, a+w, b);
Line(a, 0, a, 2*b);
x := xmin; h := 0.05;
while x <= xmax do begin
y := 3*sin(x);
xe := a + round(k*x);
ye := b - round(k*y);
Point (xe, ye);
x := x + h;
end;
end.
Кемшілігі ?
?
Басты
мәзір
104 слайд
104
Нүктелерді қалай біріктіруге болады?
Алгоритм:
Егер бірінші нүкте болса
(xэ,yэ) нүктесіне өту
әйтпесе
(xэ,yэ) нүктесіне кесінді
Программа:
бастапқы мән
әрекеттердің нұсқасын таңдау
логикалық айнымалы
var first: boolean;
...
begin
...
first := True;
while x <= xmax do begin
...
if first then begin
MoveTo(xe, ye);
first := False;
end
else LineTo(xe, ye);
...
end;
end.
Басты
мәзір
105 слайд
105
Тапсырмалар
"4": [-3,3] интервалы арасында y = x2 функциясының графигін құру.
"5": Функция графигін құру (эллипс)
Басты
мәзір
106 слайд
106
Паскаль тілінде программалау
Тақырып 9. Процедуралар
Басты
мәзір
107 слайд
107
Процедуралар
Есеп: Мына фигураны құру:
Ерекшелігі: Үш ұқсас фигура.
жалпы: өлшемдері, айналу бұрышы
айырмашылықтары: координаталары, түстері
Белгілі әдістермен шешуге бола ма?
?
Неше координата белгілеу керек?
?
Басты
мәзір
108 слайд
108
Процедуралар
Процедура – кейбір әрекеттерді орындау үшін қолданылатын көмекші.
Қолданылуы:
программаның әр жерінде орналасқан бірдей әрекеттерді орындау
программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу
Көмекші есеп1
Көмекші есеп2
Көмекші есеп3
1.1
1.2
1.3
2.1
2.2
2.3
3.1
3.2
3.3
Негізгі есеп
Басты
мәзір
109 слайд
109
Процедуралар
Есепті орындау тәртібі:
бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура)
олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу
айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады
(x, y)
100
60
(x+100, y)
(x, y-60)
procedure Tr( x, y, r, g, b: integer);
begin
MoveTo(x, y);
LineTo(x, y-60);
LineTo(x+100, y);
LineTo(x, y);
Brush(1, r, g, b);
Fill(x+20, y-20);
end;
тақырыбы
MoveTo(x, y);
LineTo(x, y-60);
LineTo(x+100, y);
LineTo(x, y);
Brush(1, r, g, b);
Fill(x+20, y-20);
процедура тұлғасы
координаталар
түс
параметрлер
Басты
мәзір
110 слайд
110
Программа
program qq;
begin
Pen(1, 255, 0, 255);
Tr(100, 100, 0, 0, 255);
Tr(200, 100, 0, 255, 0);
Tr(200, 160, 255, 0, 0);
end.
(100,100)
100
60
процедура
нақтылы параметрлер
процедураны шақырулар
procedure Tr( x, y, r, g, b: integer);
begin
...
end;
формальды параметрлер
Басты
мәзір
111 слайд
111
Процедуралар
Ерекшеліктері:
барлық процедуралар негізгі программаның үстінде орналасқан
процедураның тақырыбында формальды параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді
процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі
procedure Tr( x, y, r, g, b: integer);
Tr (200, 100, 0, 255, 0);
x
y
r
g
b
Басты
мәзір
112 слайд
112
Процедуралар
Ерекшеліктері:
әрбір формалды параметрдің қос нүктеден кейін типі көрсетілуі қажет
егер типтері бірдей параметрлер бірінен кейін бірі орналасса, олардың арасы үтірмен ажыратылады
процедураның ішіндегі параметрлер айнымалылар секілді қолданылады
procedure A (x: real; y: integer; z: real);
procedure A (x, z: real; y, k, l: integer);
Басты
мәзір
113 слайд
113
Процедуралар
Ерекшеліктері:
процедурада қосымша айнымалы ретінде жергілікті(локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды
program qq;
procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;
begin
...
end.
procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;
локальді айнымалылар
var a, b: real;
Басты
мәзір
114 слайд
114
Параметр-айнымалылар
Есеп: екі айнымалы мәндерінің орындарын ауыстыратын процедураны құру.
Ерекшеліктері:
Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет.
program qq;
var x, y: integer;
begin
x := 1; y := 2;
Exchange ( x, y );
writeln ( ’x = ’, x, ’ y = ’, y );
end;
procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;
мына процедура параметрлердің көшірмесімен жұмыс істейді
x = 1 y = 2
Басты
мәзір
115 слайд
115
Параметр-айнымалылар
Қолданылуы:
процедура(және функция) осындай әдіс арқылы бірнеше мән бере алады.
Шақыртудың тыйым салынған нұсқалары
Exchange ( 2, 3 ); { сандар }
Exchange ( x+z, y+2 ); { өрнектер }
procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;
var
параметрлер өзгере алады
Басты
мәзір
116 слайд
116
Тапсырмалар
"4": Процедураларды пайдалана отырып, мына фигураны құрастыру.
"5": Процедураларды пайдалана отырып, мына фигураны құрастыру.
a
a
a
0,866∙a
Тең қабырғалы үшбұрыш
Басты
мәзір
117 слайд
117
Паскаль тілінде программалау
Тақырып 10. Рекурсия
Басты
мәзір
118 слайд
118
Рекурсивті объектілер
Рекурсивті объект деп - бір объект немесе дәл осындай бірнеше объект арқылы анықталатын объектіні айтады.
Мысалдар:
Факториал:
егер
егер
Рекурсияланған сурет:
Басты
мәзір
119 слайд
119
Пифагор ағашы
N деңгейлі Пифагор ағашы – бұл ағаштың діңгегі мен осы діңгектен симметриялы түрде өсіп шыққан N-деңгейлі екі Пифагор ағашы, бұл ағаштардың бағанының ұзындығы 2 есе кем және олардың арасындағы бұрыш 90o-қа тең.
6 деңгей:
Бұның рекурсивті фигура екенін қалай дәлелдеуге болады?
?
Басты
мәзір
120 слайд
120
Пифагор ағашы
Ерекшеліктері:
қашан тоқтау керек?
ағаштардың иілу бұрышы әр түрлі
Қалған деңгейлердің саны нөлге тең болғанда!
(x1, y1)
(x0, y0)
α
α+45o
α-45o
L
x1 = x0 + L·cos(α)
y1 = y0 – L·sin(α)
Еншілес ағаштардың иілу бұрышы
α + π/4
α – π/4
Басты
мәзір
121 слайд
121
Процедура
α бұрышы
баған ұзындығы
procedure Pifagor(x0, y0, a, L: real;
N: integer);
const k = 0.6; { ұзындықтың өзгеруі }
var x1, y1: real; { жергілікті айнымалылар }
begin
if N > 0 then begin
x1 := x0 + L*cos(a);
y1 := y0 - L*sin(a);
Line (round(x0), round(y0),
round(x1), round(y1));
Pifagor (x1, y1, a+pi/4, L*k, N-1);
Pifagor (x1, y1, a-pi/4, L*k, N-1);
end;
end;
рекурсивті шақырулар
егер N=0 болса, аяқтау
Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады
Басты
мәзір
122 слайд
122
Программа
program qq;
procedure Pifagor(x0, y0, a, L: real;
N: integer);
...
end;
begin
Pifagor (250, 400, pi/2, 150, 8);
end;
α бұрышы
баған ұзындығы
деңгейлер саны
x0
y0
Ағашты 30o оңға қалай еңкейтуге болады?
?
Pifagor (250, 400, 2*pi/3, 150, 8);
Басты
мәзір
123 слайд
123
"4": Рекурсивті процедураны қолдана отырып, мына фигураны құрастыру:
"5": Рекурсивті процедураны қолдана отырып, мына фигураларды құрастыру:
Задания
Басты
мәзір
124 слайд
124
Паскаль тілінде программалау
Тақырып 11. Анимация
Басты
мәзір
125 слайд
125
Анимация
Анимация (ағылш. animation) – экрандағы кескінге жан бітіру.
Есеп: 400х400 пиксельді көк квадраттың ішімен 20х20 пиксельді сары квадрат солдан оңға қарай жылжып келеді. Программа өз жұмысын Esc пернесін басқанда немесе сары квадрат көк квадраттың оң жақ жетіне жеткен кезде тоқтатады.
Проблема: объектінің экранда қозғалуын қалай кескіндеуге болады?
Қосымша: объектінің қозғалысы (x,y) координаталарымен белгіленеді
Анимация қағидасы:
объектіні (x,y) нүктесінде саламыз
бірнеше миллисекундқа кідіру
объектіні өшіреміз
(x,y) координаталарын өзгертеміз
1-қадамға көшеміз
Басты
мәзір
126 слайд
126
«Пернелерді шертуді» қалай іске асыруға болады?
Оқиға деп қандай да бір объектінің қалпында өзгерістің болуын немесе пайдаланушының әрекетін айтады. (пернені басу, тышқанды шерту).
IsEvent – қолданушы тарапынан қандай да бір әрекеттің болған-болмағандығын анықтайтын логикалық функция.
Event – нақты қандай оқиғаның болғандығын анықтайтын процедура.
if IsEvent then begin
Event(k, x, y);
if k = 1 then
writeln(‘Коды бар перне ', x)
else { k = 2 }
writeln(‘Тышқан: x=', x, ' y=', y);
end;
var k, x, y: integer;
Басты
мәзір
127 слайд
127
Esc пернесін басып циклдан қалай шығуға болады?
program qq;
var stop: boolean;
k,code,i: integer;
begin
stop := False;
repeat
if IsEvent then begin
Event(k, code, i);
if (k = 1) and (code = 27) then
stop := True;
end;
...
until stop;
end;
егер бір нәрсе бола қалса...
қандай оқиға болды?
егер коды 27 (Esc) болатын перне басылса, онда стоп
егер тоқтау қажет болса, True
циклді іске қосу
Басты
мәзір
128 слайд
128
Процедура (сурет салу және өшіру)
procedure Draw(x, y: integer; flag: boolean);
begin
if flag then
Brush(1, 255, 255, 0)
else
Brush(1, 0, 0, 255);
Rectangle(x, y, x+20, y+20);
end;
(x, y)
(x+20, y+20)
Идеялар
бір процедура суретті салады және өшіреді
өшіру = фонның түсімен бояу
квадраттың шекарасын өшіріп тастау (негізгі программада)
сурет салу (True) немесе салмау (False)?
сурет саламыз: қылқаламның түсі – сары
суретті өшіреміз: қылқаламның түсі – көк
тек қана құю!
Басты
мәзір
129 слайд
129
Толық программасы
program qq;
var x, y, k, code, i: integer;
stop: boolean;
procedure Draw(x,y: integer; flag: Boolean);
begin
...
end;
begin
Brush(1, 0, 0, 255);
Rectangle(10, 10, 400, 400);
Pen(0, 0, 0, 255);
x := 10; y := 200; stop := false;
repeat
if IsEvent then begin
...
end;
Draw(x, y, True);
Delay(10);
Draw(x, y, False);
x := x + 1;
if x >= 400-20 then stop := true;
until stop;
end.
процедура
бастапқы жағдайлары
Esc пернесімен шығу
шекараға тақалған кезде шығу
көк фон
10 мс күтеміз
шекараны өшіріп тастау
Басты
мәзір
130 слайд
130
"4": Екі квадрат бір біріне қарама-қарсы бағытта қозғалады:
"5": Екі квадрат бір біріне қарама-қарсы бағытта қозғалады және көк квадраттың қабырғасына соқтығысып кері бағытта жылжиды:
Тапсырмалар
Басты
мәзір
131 слайд
131
Пернелермен басқару
Есеп: көк квадраттың ішінде орналасқан сары квадрат бағыттаушы пернелермен басқарылатындай болуы керек. Пернелердің коды:
солға – 37жоғары – 38Esc – 27
оңға – 39 төмен – 40
Проблема: қозғалыс бағытын қалай өзгертуге болады?
Шығарылуы:
if {оқиға болды} then begin
if {перне басулы} then begin
{перненің кодын алу - code}
if code = 37 then x := x – 1;
if code = 38 then y := y – 1;
if code = 39 then x := x + 1;
if code = 40 then y := y + 1;
if code = 27 then stop := True;
end;
end;
IsEvent
Event ( k, code, i);
if k = 1 then begin
case code of
37: x := x – 1; 38: y := y – 1;
39: x := x + 1; 40: y := y + 1;
27: stop := True;
end;
егер перне басылған болса, …
Басты
мәзір
132 слайд
132
Программасы
program qq;
var x, y, k, code, i: integer;
stop: boolean;
begin
...
repeat
Draw(x, y, True);
Delay(20);
Draw(x, y, False);
until stop;
end.
procedure Draw(x,y: integer; flag: Boolean);
begin
...
end;
if IsEvent then begin
...
end;
Кемшілігі?
?
процедура
негізгі цикл
оқиғаларды өңдеу
Басты
мәзір
133 слайд
133
Жыпылықтауды қалай кетіруге болады?
Проблема: ешбір перне басылмағанның өзінде де квадрат әр 20 мс сайын басқа түске боялып тұрады(жыпылықтау!)
Бізге қажеттісі: ешқандай оқиға болмаса квадратты басқа түстерге боямау (жыпылықтатпау)
Шығарылуы: квадратты бояп тастап, оқиғаны күту
Жаңа проблема: оқиғаны қалай күтеміз ?
Жаңа проблеманың шығарылуы: бос цикл «оқиға болмайынша ештеме істеме":
while not IsEvent do;
Басты
мәзір
134 слайд
134
Программасы
program qq;
var x, y, k, code, i: integer;
stop: boolean;
begin
...
repeat
Draw(x, y, True);
while not IsEvent do;
until stop;
end.
procedure Draw(x,y: integer; flag: Boolean);
begin
...
end;
Draw(x, y, False);
Event(k, code, i);
...
while not IsEvent do;
процедура
квадраттың суретін саламыз
оқиғаны күтеміз
енді өшіруге болады
Нені жақсартуға болады?
?
Басты
мәзір
135 слайд
135
"4": Квадрат бағыттауыш пернелерді басқан бағытта жылжып отырады, алайда көк квадраттың шекарасынан асып кете алмайды:
"5": Квадрат үздіксіз қозғалып отырады, бағыттауыш пернелер басылған кезде өз бағытын өзгертеді және көк квадраттың қабырғаларына соқтығысып кері жылжып отырады:
Тапсырмалар
Басты
мәзір
136 слайд
136
Айналу
Есеп: Жердің Күнді айналу моделін бейнелеу.
Проблема: шеңбер бойымен айналу, координаталарды қалай өзгертіп отыруға болады?
Шығарылуы: тәуелсіз айнымалы ретінде α –ның айналу бұрышын қолдану (циклде өзгерту)
(x0, y0)
α
L
(x, y)
x = x0 + L·cos(α)
y = y0 – L·sin(α)
Басты
мәзір
137 слайд
137
Процедура
procedure Draw(x, y: integer; flag: boolean);
const r = 10;
begin
if flag then
Brush(1, 100, 100, 255)
else
Brush(1, 0, 0, 0);
Ellipse(x-r, y-r, x+r, y+r);
end;
сурет салу (True) немесе салмау (False)?
суретін саламыз: қылқалам түсі – көгілдір
суретті өшіреміз: қылқалам түсі – қара
тек қана құю!
Жердің радиусы
(x-r, y-r)
(x,y)
(x+r, y+r)
Басты
мәзір
138 слайд
138
Тұрақтылар мен айнымалылар
program qq;
const rSun = 60; { Күннің радиусы }
L = 150; { Жер орбитасының радиусы }
x0 = 200; { Күн центрінің координаталары }
y0 = 200;
var x, y, { Жердің координаталары }
k, code, i: integer; { Event үшін }
a, ha: real; { айналу бұрышы, қадам }
stop: boolean; { программаны тоқтату белгісі }
begin
...
end.
procedure Draw(x, y: integer; flag: Boolean);
begin
...
end;
Басты
мәзір
139 слайд
139
Негізгі программа
program qq;
...
begin
Brush(1, 0, 0, 0); Fill(1,1);
Brush(1, 255, 255, 0);
Ellipse(x0-rSun, y0-rSun, x0+rSun, y0+rSun);
a := 0; ha := 1*pi/180;{ бастапқы бұрыш, 100 мс-та 1o қадам}
stop := false;
Pen(0,0,0,0); { контурларды өшіріп тастаймыз }
repeat
x := round(x0 + L*cos(a));
y := round(y0 - L*sin(a));
Draw(x, y, True);
Delay(100);
Draw(x, y, False);
a := a + ha;
until stop;
end.
фонды қара түске бояу
Күннің суретін саламыз
жаңа координаталар
ha бұрышына бұрылу
100 мс күтеміз
if IsEvent then begin
Event(k, code, i);
if (k = 1) and (code = 27) then stop := true;
end;
Басты
мәзір
140 слайд
140
"4": Күнді айналып жүрген екі планетаның моделін бейнелеу, планеталар бір-біріне қарама-қарсы бағытта қозғалатын болсын:
"5": Күн-Жер-Ай жүйесінің моделін бейнелеу:
Тапсырмалар
Басты
мәзір
141 слайд
141
Паскаль тілінде программалау
Тақырып 12. Кездейсоқ сандар
Басты
мәзір
142 слайд
142
Кездейсоқ сандар
Кездейсоқ көріністер: барлық жерде…
тиынды лақтыру ("орел" немесе "решка")
қардың түсуі
броундық қозғалыс
телефон байланысында болатын ақаулар
радиоэфирдің шуы
Кездейсоқ сандар – бұған дейінгі сандардың ретін біліп отырсақ та, келесі санның қандай екені белгісіз болатын сандардың тізбегін айтады.
Проблема: компьютерде осыны қалай алуға болады?
Мүмкін болатын шешімдері:
шу ақауларының сыртқы көздерін пайдалану
математикалық түрлендірулерді пайдалану
Басты
мәзір
143 слайд
143
Жалған кездейсоқ сандар
Жалған кездейсоқ сандар – бойында кездейсоқ сандардың қасиеті бар, бірақ әрбір келесі сан алдын ала берілген формула бойынша есептелетін сандардың тізбегін айтады.
Мысалдар:
Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс)
Кездейсоқ нақты сандар [0,1]
санның бөлшек бөлігі
a, c, m - бүтін сандар
жай сан
230-1
мысал, k = 5
Басты
мәзір
144 слайд
144
Кездейсоқ сандардың орналасуы
Модель: қар бұршақтары [a,b] кесіндісінің аралығына түседі
a
b
a
b
орналасуы
бірқалыпты
бірқалыпты емес
Әр түрлі орналастырулардың саны қанша болуы мүмкін?
?
Басты
мәзір
145 слайд
145
Кездейсоқ сандардың орналасуы
Ерекшеліктері:
орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы
бірқалыпсыздардың саны – көп
кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады.
a
b
a
b
бірқалыпты орналасу
бірқалыпсыз орналасу
Басты
мәзір
146 слайд
146
Паскальдегі кездейсоқ сандардың генераторы
[0,N] интервалындағы бүтін сандар:
var x: integer;
...
x := random ( 100 ); { интервал [0,99] }
[0,1] интервалындағы бүтін сандар:
var x: real;
...
x := random; { интервал [0,1] }
Басты
мәзір
147 слайд
147
Кездейсоқ сандар
Есеп: 400х300 пиксельді тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен бірқалыпты етіп толтыру.
Нүктенің кездейсоқ координаталарын қалай алуға болады?
x := random ( 400 );
y := random ( 300 );
Бірқалыптылықты қалай алуға болады? random функциясы қолданылса автоматты түрде қамтамасыз етіледі
Кездейсоқ түстерді қалай алуға болады?
Pen (1, random(256), random(256), random(256));
Point ( x, y );
Басты
мәзір
148 слайд
148
Программа
program qq;
var x, y, k, code, i: integer;
stop: boolean;
begin
stop := False;
repeat
x := random(400);
y := random(300);
Pen(1, random(256), random(256), random(256));
Point(x, y );
if IsEvent then begin
Event(k, code, i);
if (k = 1) and (code = 27) then stop := True;
end;
until stop;
end.
кездейсоқ координаталар
кездейсоқ түс
Esc пернесін басып шығып кету
Басты
мәзір
149 слайд
149
"4": Пернетақтадан тіктөртбұрыш бұрыштарының координаталарын енгізіп, тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен толтыру керек.
"5": Үшбұрыштың ішін түстері кездейсоқ болатын нүктелермен толтыру. (бірқалыпты немесе бірқалыпты емес).
Қосымша көмек: бұрышы 45о болатын теңбүйірлі үшбұрышты алу керек .
Тапсырмалар
(100,100)
(300,200)
Басты
мәзір
150 слайд
150
Паскаль тілінде программалау
Тақырып 13. Функциялар
Басты
мәзір
151 слайд
151
Функциялар
Функция – нәтижесі қандай да бір мәнге ие болатын көмекші алгоритм (қосалқы программа).
Мысалдар:
, , есептеу
өрнектерді күрделі формулалармен есептеу
сұраққа жауап (жай сан ба, әлде жай сан емес пе?)
Неліктен?
программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін
функциялардың жалпыға бірдей кітапханаларын құру үшін
Процедурадан айырмашылығы неде?
?
Басты
мәзір
152 слайд
152
Функциялар
Есеп: екі санның үлкенін анықтайтын функция құру және оны қолдануға мысал келтіру
Функция:
формальды параметрлер
function Max (a, b: integer): integer;
begin
if a > b then Max := a
else Max := b;
end.
бұл функцияны нәтижесі
Басты
мәзір
153 слайд
153
Функциялар
Ерекшеліктері:
тақырыбы function сөзімен басталады
функцияда формальды параметрлер процедурадағыдай сипатталады
айнымалы параметрлерді пайдалануға болады
тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі
функциялар негізгі программадан ЖОҒАРЫ орналасады
Max (a, b: integer): integer;
function
function Max (a, b: integer): ;
integer
function qq( a, b: integer; x: real ): real;
a, b: integer; x: real
function Max ( a, b: integer): integer;
var
Басты
мәзір
154 слайд
154
Функциялар
Ерекшеліктері:
жергілікті айнымалыларды жариялауға және пайдалануға болады
нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ:
function Max (a, b: integer): integer;
begin
...
end;
Max := a;
function qq (a, b: integer): float;
begin
...
end;
var x, y: float;
Delphi-де:
!
Result := a;
Басты
мәзір
155 слайд
155
Программа
program qq;
var a, b, max: integer;
begin
writeln(‘Екі сан енгіз');
read(a, b);
max := Max ( a, b );
writeln(‘Санның үлкені ', max );
end.
function Max (a, b: integer): integer;
begin
...
end;
c
c
c
Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек!
!
нақты параметрлер
функцияны шақыру
Басты
мәзір
156 слайд
156
Логикалық функциялар
Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру.
Ерекшеліктері:
жауабы – логикалық мән (True немесе False)
функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады
Алгоритм: 2-ден N-1-ге дейінгі аралықтағы бөлгіштердің санын есептейміз, егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.
count := 0;
for i := 2 to N-1 do
if N mod i = 0 then
count := count + 1;
if count = 0 then
{ N саны – жай сан }
else { N саны – құрама сан }
for i := 2 to N-1 do
if N mod i = 0 then
count := count + 1;
Қалай жақсартуға болады?
?
Басты
мәзір
157 слайд
157
Логикалық функциялар
program qq;
var N: integer;
begin
writeln(‘Бүтін сан енгіз');
read(N);
if Prime(N) then
writeln(N, ' – жай сан')
else writeln(N, ' – құрама сан');
end.
function Prime (N: integer): boolean;
var count, i: integer;
begin
i := 2; count := 0;
while i*i <= N do
if N mod i = 0 then count := count + 1;
i := i + 1;
end;
Prime := (count = 0);
end;
функцияны шақыру
нәтижесі – логикалық мән
шарт дегеніміз – логикалық мән
таңдап алу тек -ге дейін
Басты
мәзір
158 слайд
158
Тапсырмалар
"4": 1-ден N-ге дейінгі сандардың қосындысын анықтайтын функция құру және оны қолдануға мысал келтіру.
Мысал:
Сан енгіз:
100
қосынды = 5050
"5": Шахматты ойлап шығарған адамның N-ші торға неше бидайдың қоюын сұрағанын анықтайтын функция құру. (1-шісіне – 1 дән, 2-шісіне – 2 дән, 3-шісіне – 4 бидай дәнін, …)
Мысал:
Тордың нөмірін енгіз:
28
28-шісі торда 134217728 бидай дәні.
Басты
мәзір
159 слайд
159
Тапсырмалар (2-нұсқа)
"4": Екі натурал санның ең үлкен ортақ бөлгішін анықтайтын функция құру және оны қолдануға мысал келтіру.
Мысал:
Екі сан енгіз:
14 21
ЕҮОБ(14,21)=7
"5": Синус функциясын қатардың қосындысы секілді есептейтін функция құру. (0.001 дәлдікпен)
Мысал:
Градус түріндегі бұрышты енгіз:
45
sin(45) = 0.707
x радиан түрінде!
Басты
мәзір
160 слайд
160
Фильмнің соңы
Басты
мәзір
Рабочие листы
к вашим урокам
Скачать
Алгоритм қасиеттері•дискреттілік: жекелеген қадамдардан(командалардан) тұрады•айқындылық: атқарушыға түсінікті болатын командалардан тұруы керек•белгілілік: бастапқы деректері бірдей болған жағдайда нәтижесі де бірдей болады•нәтижелік: әрекеттердің шектеулі санынан кейін белгілі бір уақытта қорытынды нәтиже алуымыз керек•жалпылық: алгоритм әр түрлі алғашқы мәліметтер үшін әр түрлі нәтижелер беруі тиіс•дұрыстылық: алғашқы мәліметтер әр түрлі болғандығына қарамастан барлық жағдайда дұрыс нәтиже бередіКоманда – компьютер орындауға міндетті әрекеттің өрнектелуі.• алғашқы мәліметтерді қайдан алу керек?• олармен қандай амалдар орындау керек?Программа дегеніміз - •қандай да бір программалау тілінде жазылған алгоритм•компьютерге қажетті командалардың жиынтығы•Машинаға бейімделген (төменгі деңгейлі) - әрбір команда процессордың бір командасына сәйкес келеді (ассемблер)•Жоғарғы деңгейлі тілдер – кәдімгі табиғи тілге(ағылшын тіліне) ұқсайды, адамның түсінуіне оңай, бір ғана компьютерге тәуелді болмайды.•Жаңадан үйренушілерге: Бейсик, ЛОГО, Паскаль•Кәсіби: Си, Фортран, Паскаль•Жасанды интеллект тапсырмалары үшін: Пролог, ЛИСП Интернет үшін: JavaScript, Java, Perl, PHP, ASPЕсеп. Фирма 25 пен 40 жас арасындағы қызметкерлерді жұмысқа алуда. Адамның жасын енгізіп, оны фирмаға алуға болатындығы немесе болмайтындығы туралы мәлімет шығару («болады» немесе «болмайды» деген жауап шығару). Ерекшелігі: екі шарттың бір мезгілде орындалатынын немесе орындалмайтынын тексеру.Тұрақты – өз атауы болатын, өзгермейтін шама, .Айнымалы – өз атауы (жад ұяшығы)болатын, өзгеретін шама.Процедура – кейбір әрекеттерді сипаттайтын қосалқы алгоритм (мысалға шеңберді салу). Функция – есептеулерді орындайтын қосалқы алгоритм (квадрат түбірді табу, sin).
6 661 517 материалов в базе
Настоящий материал опубликован пользователем Суслова Елена Викторовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
600 ч.
Курс повышения квалификации
72 ч. — 180 ч.
Курс повышения квалификации
36/72 ч.
Мини-курс
4 ч.
Мини-курс
8 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.