Паскаль тілінде программалау


Презентация қосу



1

Паскаль тілінде
программалау
1. Кіріспе 7. Графика
2. Тармақталу 8. Функциялардың графигі
3. Күрделі шарттар 9. Процедуралар
4. Циклдер 10. Рекурсия
5. Шартты циклдер 11. Анимация
6. Таңдау операторы 12. Кездейсоқ сандар
13. Функциялар
2

Паскаль тілінде
программалау
Тақырып 1. Кіріспе
3
Алгоритм
Алгоритм – атқарушы орындайтын амалдардың
тиянақты жоспары.
Алгоритм қасиеттері
• дискреттілік: жекелеген қадамдардан(командалардан)
тұрады
• айқындылық: атқарушыға түсінікті болатын
командалардан тұруы керек
• белгілілік: бастапқы деректері бірдей болған жағдайда
нәтижесі де бірдей болады
• нәтижелік: әрекеттердің шектеулі санынан кейін белгілі
бір уақытта қорытынды нәтиже алуымыз керек
• жалпылық: алгоритм әр түрлі алғашқы мәліметтер
үшін әр түрлі нәтижелер беруі тиіс
• дұрыстылық: алғашқы мәліметтер әр түрлі
болғандығына қарамастан барлық жағдайда дұрыс
нәтиже береді
4
Программа
Программа дегеніміз -
• қандай да бір программалау тілінде
жазылған алгоритм
• компьютерге қажетті командалардың
жиынтығы

Команда – компьютер орындауға міндетті
әрекеттің өрнектелуі.
• алғашқы мәліметтерді қайдан алу керек?
• олармен қандай амалдар орындау керек?
5
Программалау тілдері
• Машинаға бейімделген (төменгі деңгейлі) -
әрбір команда процессордың бір командасына
сәйкес келеді (ассемблер)
• Жоғарғы деңгейлі тілдер – кәдімгі табиғи
тілге(ағылшын тіліне) ұқсайды, адамның
түсінуіне оңай, бір ғана компьютерге тәуелді
болмайды.
• Жаңадан үйренушілерге: Бейсик, ЛОГО,
Паскаль
• Кәсіби: Си, Фортран, Паскаль
• Жасанды интеллект тапсырмалары үшін:
Пролог, ЛИСП
• Интернет үшін: JavaScript, Java, Perl, PHP,
ASP
6
Паскаль тілі
1970 – Никлаус Вирт (Швейцария)
• студенттерді оқытуға арналған тіл
• «жоғарыдан төменге қарай» программаларын
жасау
Есеп

Бағыныңқы есеп1 Бағыныңқы есеп2 Бағыныңқы есеп3

1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3

• берілгендердің әр түрлі құрылымдары(массивтер,
құрылымдар, жиымдар)
7
Программа қандай бөліктерден тұрады?

program <программаның аты>;
const …;{тұрақтылар}
var …; {айнымалылар}
{ процедуралар мен функциялар }
begin
… {негізгі программа}
end.
фигуралық жақшаның ішінде
орналасқан түсініктемелер
программамен өңделмейді
8
Программа қандай бөліктерден тұрады?

Тұрақты – өз атауы болатын, өзгермейтін шама, .
Айнымалы – өз атауы (жад ұяшығы)болатын, өзгеретін
шама.
Процедура – кейбір әрекеттерді сипаттайтын қосалқы
алгоритм (мысалға шеңберді салу).
Функция – есептеулерді орындайтын қосалқы алгоритм
(квадрат түбірді табу, sin).
9
Программалар, тұрақтылар, айнымалылар
атауы сипаттағанда
Атауларды
• латын әріптерін (A-Z)
Бас әріптер мен кіші әріптердің арасында айырмашылық болмайды
• сандарды

Атаулар санмен басталмауы керек
• астын сызу белгісін _
қолдануға болады
Атауларды сипаттағанда
• орыс, қазақ әріптерін
• бос орындарды
• жақшаларды, +, =, !, ? белгілерін және т.б.
қолдануға болмайды

Қай атаулар дұрыс жазылған?
AXby R&B 4Wheel Вася “PesBarbos” TU154
[QuQu] _ABBA A+B
10
Тұрақтылар

const
i2 = 45; { бүтін сан }
pi = 3.14; { нақты сан }
бүтін және бөлшек бөліктері нүктемен
ажыратылады
qq = 'Вася'; { символдар қатары }
орыс, қазақ әріптерін қолдануға болады!

L = True; { логикалық шама }
екі мән қабылдай алады:
• True (ақиқат, «иә»)
• False (жалған, «жоқ»)
11
Айнымалылар
Айнымалы – аты, типі және мәні болатын шама.
Айнымалының мәнін программаның жұмысы
кезінде өзгертіп отыруға болады.
Айнымалылардың типі:
• integer { бүтін }
• real { нақты }
• char { бір символ }
• string { символдық тіркес }
• boolean { логикалық }
Айнымалыларды сипаттау (жад бөлу):
var a, b: integer;
Q: real;
s1, s2: string;
12
Айнымалының мәнін қалай өзгертуге
болады?
Оператор – жоғары деңгейлі программалау тілінің
командасы.
Меншіктеу операторы айнымалының мәнін өзгерту
үшін қолданылады.
Мысал:
program qq; a
var a, b: integer; ?
5 5

begin
b
a := 5; ?
7 5+2
b := a + 2;
a := (a + 2)*(b – 3); a
5 7*4
end.
13
Меншіктеу операторы

Жалпы құрылымы:
<айнымалы атауы> := <өрнек>;
Арифметикалық өрнектің құрамында
• тұрақтылар
• айнымалы атаулары
• арифметикалық амалдар белгілері:
+ - * / div mod
көбейту бөлу бүтінді бөлуден
бүтінге бөлу қалған
қалдық
• функцияларды шақыру
• жақшалар ( )
14
Қай операторлар дұрыс жазылмаған?

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.
15
Амалдарды орындау тәртібі
• жақша ішіндегі өрнекті есептеу
• солдан оңға қарай көбейту, бөлу, div, mod
• солдан оңға қарай қосу және алу
2 3 5 4 1 7 8 6 9
z := (5*a*c+3*(c-d))/a*(b-c)/ b;
5ac 3(c d )
z (b c)
a 2 5c 2 d (a b) ab
x
(c d )(d 2a )

2 6 3 4 7 5 1 12 8 11 10 9
x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
16
Екі санды қосу
Есеп. Екі бүтін санды қосып, қосындысын
экранда шығару.
Шығарылуы:
program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.
17
Енгізу операторы

read ( a ); { а айнымалысының мәнін
енгізу}
read ( a, b ); { а және b
айнымалыларының мәндерін
енгізу}
Екі санды қалай енгізуге болады?
бос орын арқылы: 25 a
25 30 30 b
Enter арқылы:
25 25 a
30 30 b
18
Шығару операторы

write ( a ); { a айнымалысының
мәнін шығару}
writeln ( a ); {a айнымалысының мәнін
шығарып,келесі жолға
көшу}
writeln ( ‘Салем!' ); { мәтінді шығару}

writeln ( ‘Жауап: ', c ); { мәтінді
және c айнымалысының мәнін
шығару}
writeln ( a, '+', b, '=', c );
19
Шығару форматтары
program qq;
var i: integer;
x: real;
begin барлық
i := 15; символдар
саны
writeln ( '>', i, '<' ); >15<
writeln ( '>', i:5, '<' ); > 15<
x := 12.345678;
writeln ( '>', x, '<' ); >1.234568E+001<
writeln ( '>', x:10, '<' ); > 1.23E+001<
writeln ( '>', x:7:2, '<' ); > 12.35<
end. барлық
символдар бөлшек бөлігіндегі
саны символдар саны
20
Толық шығарылуы
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
21
Сызықтық алгоритмның блок-схемасы

басы «басы» блогі

енгізу a, b «енгізу» блогі

c := a + b; «процесс» блогі

шығару c «шығару» блогі

соңы «соңы» блогі
22
Тапсырмалар
"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
23

Паскаль тілінде
программалау
Тақырып 2. Тармақталу
24
Тармақталу алгоритмдері
Есеп. Екі бүтін сан енгізіп,экранға олардың үлкенін
шығару.
Шығару амалы: бірінші сан екінші саннан үлкен болса,
біріншісін, ал егер кіші болса екіншісін экранға шығару.
Ерекшелігі: атқарушының әрекеті кейбір шарттардың
орындалуына байланысты болады (егер …әйтпесе …).

ҚҚадамдарды
адамдардыңңтізбектеп
тізбектепорындалуы
орындалуыкейбір шарттарғғаа
кейбіршарттар
байланысты
байланыстыболатын
болатыналгоритмдерді тармаққталу
алгоритмдерді тарма талу
алгоритмдері
алгоритмдерідеп
депатайды.
атайды.
25
Нұсқа 1. Блок-схема
басы
«таңдау» блогі
енгізу a,b
Тармақталуды
иә жоқ ң толымды
a > b? түрі

max:= a; max:= b;

шығару max

соңы
? Егер a = b?
26
Нұсқа 1. Программа
program qq;
var a, b, max: integer;
begin
writeln(‘Екі бүтін сан енгіз');
read ( a, b );
шартты
if a > b then begin оператордың
max := a; толымды түрі
end
else begin
max := b;
end;
writeln (‘Екі санның үлкені', max);
end.
27
Шартты оператор

if <шарт> then begin
{егер шарт орындалса, не істеу керек}

end
else begin
{егер шарт орындалмаса, не істеу керек}
end;
Ерекшеліктері:
• else-тің алдында нүктелі үтір болмауы керек
• екінші бөліктің (else …) болмауы да мүмкін
(толымсыз түрі)
• егер блокта бір ғана оператор болса, begin мен
end сөздерін жазбауға да болады
28
Қай жері дұрыс емес?
if a > b then begin
if a > b then begin
a := b;
a := b; end
end
else begin
else begin
b := a;
b := a;
end;
end;

if a > b then begin if a > b then begin
a := b; a := b;
end end;
end
begin
else b > a begin else begin
b := a; b := a;
end; end;
29
Нұсқа 2. Блок-схема
басы

енгізу a,b

max:= a;
тармақталудың
иә
толымсыз түрі
жоқ
b > a?

max:= b;

шығару max

соңы
30
Нұсқа 2. Программа
program qq;
var a, b, max: integer;
begin
writeln(‘Екі бүтін сан енгіз');
read ( a, b );
шартты
max := a; оператордың
толымсыз түрі
if b > a then
max := b;
writeln (‘Екі санның үлкені',
max);
end.
31
Нұсқа 2Б. Программа
program qq;
var a, b, max: integer;
begin
writeln('Екі бүтін сан енгіз');
read ( a, b );
max := b;
if a???
> b then
???:= a;
max
writeln ('Екі санның үлкені',
max);
end.
32
Қай жері дұрыс емес?

if a > b then begin
if a > b then begin
a := b; a := b;
b
else b := a; end;
end
else b := a;

if a > b then if a > b then
a b
:= b; else
if b begin
>= a then
else b := a; end; bb:=
:=a;
a;
end;
33
Тапсырмалар
"4": Үш сан енгізіп олардың үлкенін табу.
Мысал:
Үш сан енгіз:
4 15 9
Ең үлкен сан 15
"5": Бес сан енгізіп олардың үлкенін табу.
Мысал:
Бес сан енгіз:
4 15 9 56 4
Ең үлкен сан 56
34

Паскаль тілінде
программалау
Тақырып 3. Күрделі шарттар
35
Күрделі шарттар
Есеп. Фирма 25 пен 40 жас арасындағы қызметкерлерді
жұмысқа алуда. Адамның жасын енгізіп, оны фирмаға
алуға болатындығы немесе болмайтындығы туралы
мәлімет шығару («болады» немесе «болмайды» деген
жауап шығару).
Ерекшелігі: екі шарттың бір мезгілде орындалатынын
немесе орындалмайтынын тексеру.

? Белгілі әдістермен шешуге бола ма?
36
Нұсқа 1. Алгоритм

басы

енгізу x

иә жоқ
x >= 25?
иә жоқ
x <= 40?

‘болады' 'болмайды' ‘болмайды'

жоқ
37
Нұсқа 1. Программа
program qq;
var x: integer;
begin
writeln(‘Жасты енгіз');
read ( x );
if x >= 25 then
if x <= 40 then
writeln (‘Болады')
else writeln (‘Болмайды')
else
writeln (‘Болмайды');
end.
38
Нұсқа 2. Алгоритм

басы

енгізу x

иә x >= 25 жоқ
және
x <= 40?

‘болады' 'болмайды'

соңы
39
Вариант 2. Программа
program qq;
var x: integer;
begin
күрделі
writeln(‘Жасты енгіз'); шарт
read ( x );
if (x >= 25) and (x <= 40) then
writeln ('Болады')
else writeln ('Болмайды')
end.
40
Күрделі шарттар
Күрделі шарт – бір-бірімен логикалық операциялардың
көмегімен байланысатын бірнеше қарапайым
шарттардан (қатынастардан) тұрады:
• not – ЕМЕС (терістеу, инверсия)
• and – ЖӘНЕ (логикалық көбейту, конъюнкция,
шарттардың бір мезгілде орындалуы)
• or – НЕМЕСЕ (логикалық қосу, дизъюнкция,
ең болмағанда бір шарттың орындалуы)
• xor – арифметикалық НЕМЕСЕ (екі шарттың екеуін
емес, біреуін ғана орындау)
Қарапайым шарттар (қатынастар) тең тең емес

< <= > >= = <>
41
Күрделі шарттар
Орындау тәртібі
• жақша ішіндегі өрнектер
• not
• and
• or, xor
• <, <=, >, >=, =, <>
Ерекшелігі – қарапайым шарттардың әрқайсысын
жақшамен жабу.
Мысал:
4 1 6 2 5 3
if not (a > b) or (c <> d) and (b <> a)
then begin
...
end
42
Күрделі шарттар
a := 2; b := 3; c := 4; болған жағдайда ақиқат немесе жалған:
not (a > b) True
True
(a < b) and (b < c)
True
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a) True

(a < b) xor not (b > c) FALSE
x-тің қандай мәндерінде шарт ақиқат болады:
(x < 6) and (x < 10)
(- , 6) x<6
(x < 6) and (x > 10)

(x > 6) and (x < 10)
(6, 10)
(x > 6) and (x > 10) x > 10
(10, )
(x < 6) or (x < 10)
(- , 10) x < 10
(x < 6) or (x > 10)
(- , 6) (10, )
(x > 6) or (x < 10)
(- , )
(x > 6) or (x > 10) (6, ) x>6
43
Тапсырмалар
"4": Айдың нөмірін енгізу арқылы, жыл мезгілінің
атауын шығару.
Мысал:
Ай нөмірін енгіз:
көктем
44

Паскаль тілінде
программалау
Тақырып 4. Циклдер
45
Циклдер
Цикл – белгілі бір әрекеттер тізбегінің бірнеше рет
қайталанып орындалуы.
• қадамдар саны белгілі цикл
• қадамдар саны белгісіз цикл (шартты цикл)
Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары
мен кубтарын есептеп шығару (a-дан b-ға дейін).
Ерекшелігі: бірдей амалдар 8 рет орындалады.

? Белгілі әдістермен шешуге бола ма?
46
Алгоритм
басы цикл айнымалысының
бастапқы мәнін көрсету
i := 1;
барлығы да атқарылды
ма? соны тексеру

жоқ
i <= 8? соңы
иә квадрат пен куб-ты есептейміз
i2 := i * i;
i3 := i2 * i;
нәтижесін шығару

i, i2, i3
келесі i-ге өту
i := i + 1;
47
Алгоритм ("цикл" блогімен)

басы «цикл»блогі

i := 1,8 соңы

i2 := i * i; цикл денесі
i3 := i2 * i;

i, i2, i3
48
Программа

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.
49
Айнымалысы кеміп отыратын цикл
Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары
мен кубтарын есептеп шығару (кері қарай есептеу).
Ерекшелігі: цикл айнымалысы кеміп отыруы керек.
Шығарылуы:

for i:=8 downto 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
50
Айнымалысы бар цикл
Айнымалының 1-ге артуы:
for <айнымалы> := <алғашқы мән> to
<ең соңғы мән> do begin
{цикл денесі}
end;

Айнымалының 1-ге кемуі:
for <айнымалы> := <алғашқы мән>
downto
<ең соңғы мән> do begin
{цикл денесі}
end;
51
Айнымалысы бар цикл
Ерекшеліктері:
• цикл айнымалысының мәні бүтін болуы керек (integer)
• цикл айнымалысының өзгеру қадамы қашанда 1-ге (to)
немесе -1-ге (downto) тең
• егер цикл денесінде бір ғана оператор болса, begin мен
end сөздерін жазбай кетуге болады:
for i:=1 to 8 do
writeln('Привет');
• егер соңғы мән алғашқы мәннен кіші болса, (to) циклы
бірде бір рет орындалмайды (шартты циклдың басында
тексеру, шартты алдын ала тексеретін цикл)
52
Айнымалысы бар цикл
Ерекшеліктері:
• Цикл денесінде цикл айнымалысын өзгертуге рұқсат
етілмейді (неліктен?)
• Алғашқы және соңғы мәндер өзгертілгенімен цикл
ішіндегі қадамдар саны өзгермейді:

n := 8;
for i:=1 to n do begin
writeln('Салем');
n := n + 1; мүдіріп қалу жоқ

end;
53
Цикл неше рет орындалған?

a := 1; a= 4
for i:=1 to 3 do a := a+1;

a := 1;
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;
for i:=3 downto 1 do a := a+1; a= 4
54
Қадамдарды қалай өзгертуге болады?
Есеп. Экранға 1-ден 9-ға дейінгі тақ сандардың квадраттары
мен кубтарын есептеп шығару.
Ерекшелігі: цикл айнымалысы 2-ге артып отыру керек.
Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы
мүмкін.
Шығfor
арылуы: Тек қана тақ
i:=1 to 9 do begin
i-лермен
if i mod
???2 = 1 then begin орындалады
i2
i2 :=
:= i*i;
i*i;
i3
i3 :=
:= i2*i;
i2*i;
writeln(i:4,
writeln(i:4, i2:4,
i2:4, i3:4);
i3:4);
end;
end;
55
Қадамдарды қалай өзгертуге болады? – II
Идея: Тек 5 санды ғана шығару керек, k айнымалысы 1-ден
5-ке дейін өзгереді. i-дің бастапқы мәні 1-ге тең, циклдың әр
қадамы сайын i 2-ге артып отырады.
Шығарылуы:
???
i := 1;
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
i := i + 2;
end;
56
Қадамдарды қалай өзгертуге болады? –
III
Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден
5-ке дейін өзгереді. k-ны біле отырып, i-ді есептеу қажет.
k 1 2 3 4 5 i = 2k-1
i 1 3 5 7 9
Шығарылуы:
for k:=1 to 5 do begin
i ???
:= 2*k – 1;
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
57
Тапсырмалар
"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
58

Паскаль тілінде
программалау
Тақырып 5. Шартты циклдер
59
Қадамдар саны белгісіз цикл
Мысал: Бөренеден ағаштың бұтағын кесіп алу керек.
Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?
Есеп: (<2000000) бүтін сан енгізіп, ондағы цифрлардың
санын анықтау.
Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен
алып тастай отырып, санаушыны арттырамыз.
n count
123 0
12 1
1 2
0 3

Мәселе: неше қадам жасау керектігі белгісіз.
Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0"
болғанша орындай беру керек.
60
Алгоритм

басы

енгізу n цифрлардың санаушысын
нөлге теңестіру
count := 0;
“n <> 0“
болғанша
орындай беру
жоқ
n <> 0?

иә
count
count := count + 1;
n := n div 10;
соңы
61
Программа
program qq;
var n, count:, integer;
n1: integer;
begin
writeln(’Бүтін сан енгіз’);
read(n); n1 := n; "n <> 0“
count := 0; болғанша
орындай беру
while nn <>
while <> 00 do
do begin
begin
count:=:=count
count count+ +1;1;
n n:=:=n ndiv
div10;
10;
end;
end;
writeln( n1, ’cанында’,count, ’цифр табылды’);
end.
62
Шартты цикл
while <шарт> do begin
{цикл денесі}
end;
Ерекшеліктері:
• күрделі шарттарды қолдануға болады:
while (a {цикл денесі}
end;
• егер цикл денесінде бір ғана оператор болса,
begin мен end сөздерін жазбай кетуге болады:
while a < b do
a := a + 1;
63
Шартты цикл
Ерекшеліктері:
• циклге кірген сайын шарт есептеліп отырады
• егер шарт циклге кіруде жалған болса, цикл бірде-бір
рет орындалмайды

a := 4; b := 6;
while a > b do
a := a – b;

• егер шарт түбінде жалған болмайтын болса,
программаның жұмысы дағдарысқа ұшырайды
(тоқтаусыз орындала береді)
a := 4; b := 6;
while a < b do
d := a + b;
64
Цикл неше рет орындалған?
a := 4; b := 6; 2 рет
a=6
while a < b do a := a + 1;

a := 4; b := 6; 1 рет
a = 10
while a < b do a := a + b;

a := 4; b := 6; 0 рет
a=4
while a > b do a := a + 1;

a := 4; b := 6; 1 рет
b = -2
while a < b do b := a - b;

a := 4; b := 6; дағдарысқа
ұшырау
while a < b do a := a - 1;
65
For-ны while-ға ауыстыру және
керісінше
i := 1;
for i:=1 to 10 do begin
while i <= 10 do begin
{цикл денесі}
{цикл денесі}
end;
i := i + 1;
end;

i := a;
for i:=a downto b do
while i >= b do begin
begin
{цикл денесі}
{цикл денесі}
i := i - 1;
end;
end;

for-ны while –ауыстыруға қашанда болады.

while-ды for-ға , циклдегі қадамдар саны алдын
ала белгілі болған жағдайда ғана ауыстыруға
болады.
66
Тапсырмалар
"4": Бүтін сан енгізіп, ондағы цифрлардың қосындысын
табу.
Мысал:
Бүтін сан енгіз:
1234
1234 санындағы цифрлардың қосындысы 10-ға
тең.

"5": Бүтін сан енгізіп, оның жазылуында бірдей
цифрларлардың бар-жоғын анықтау.
Мысал:
Бүтін сан енгіз: Бүтін сан енгіз:
1234 1224
Жоқ. Бар.
67
Тізбектер
Мысалдар:
• 1, 2, 3, 4, 5, … an = n a1 = 1, an+1 = an+1

• 1, 2, 4, 7, 11, 16, … a1 = 1, an+1 = an + n

• 1, 2, 4, 8, 16, 32, … an = 2n-1 a1 = 1, an+1 = 2an

1 1 3 1 5 1 2 3 4 5
• , , , , , ... , , , , , ...
2 2 8 4 32 2 4 8 16 32

bn b1 = 1, bn+1 = bn+1
an
cn c1 = 2, cn+1 = 2cn
68
Тізбектер
Есеп: модулі бойынша 0,001-ден асып түсетін
1 2 3 4 5
1, , , , , , ...
2 4 8 16 32
тізбектегі барлық элементтердің қосындысын табу:
1 2 3 4 5
S 1 ...
2 4 8 16 32

Тізбек элементтері (№2-ден бастап ):
n 1 2 3 4 5 ... b := b+1;
b b 1 2 3 4 5 ...
a z c := 2*c;
c c 2 4 8 16 32 ...
z -1 1 -1 1 -1 ... z := -z;
69
Алгоритм
басы
бастапқы мәндер
:= 0;
SS := 0; b := 1;
c := 2; z := -1; бірінші элемент
a := 1;

жоқ
|a| > 0.001?

иә
S
S := S + a;
жаңа элемент

a := z*b/c;
соңы
b := b + 1;
өзгеріс c := 2*c; z := -z;

? Қайта қою керек пе?
70
Программа
program qq; бастапқы
var b, c, z: integer; мәндер
S, a: real;
begin
SS :=
:= 0;
0; zz :=
:= -1;
-1;
bb :=
:= 1;
1; cc :=
:= 2;
2; aa :=
:= 1;
1;
while abs(a) > 0.001 do begin
қосындының
S := S + a; артуы
a := z * b / c;
zz :=
:= -- z;
z; тізбек элементін
bb :=
:= bb ++ 1;
1; есепке алу
cc :=
:= cc ** 2;
2;
end; келесі
writeln('S =', S:10:3); қосылғышқа
өту
end.
71
Тапсырмалар
"4": Тізбектегі элементтердің қосындысын 0,001
дәлдікпен табу :
2 4 6 8
S 1 ...
3 3 5 9 7 27 9 81
Жауап:
S = 1.157
"5": Тізбектегі элементтердің қосындысын 0,001
дәлдікпен табу :
2 4 6 8 10
S 1 ...
2 3 3 9 5 27 8 81 13 243
Жауап:
S = 1.220
72
Соңғышартты цикл
Есеп: Бүтін оң сан енгізіп(<2000000), ондағы
цифрлардың санын анықтау.
Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай
қадағалауға болады?
Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді
енгізу үшін кері оралу (цикл!).
Ерекшелігі: Цикл денесі кемінде бір рет орындалады.
=> шартын тексеруді циклдың соңында орындау керек.
(соңғышартты цикл).

Соңғ
Со ңғышартты
ышарттыцикл шарттыңңтексерілуі
цикл –– шартты циклдыңң
тексерілуіциклды
соңңында
со ындаорындалатын цикл ттүүрін
орындалатынцикл рінайтады.
айтады.
73
Соңғышартты цикл: алгоритм

басы

енгізу n
цикл денесі
жоқ
n > 0? ШЫҒУДЫҢ шарты
иә

негізгі
алгоритм «типтік процесс»
блогі

соңы
74
Программа
program qq;
var n: integer;
begin
repeat
repeat
writeln('Введите
writeln(‘О положительное
ң сан енгіз '); число');
read(n);
read(n); ШЫҒУДЫҢ
until nnn >>> 0;
0; шарты
until
until 0;
... { негізгі алгоритм }
end.
Ерекшеліктері:
• цикл денесі кемінде бір рет орындалады
• until ("…болмайынша") сөзінен кейін циклдан
ШЫҒУДЫҢ шарты қойылады
75
Цикл неше рет орындалған?
a := 4; b := 6; 3 рет
a=7
repeat a := a + 1; until a > b;
1 рет
a := 4; b := 6;
a = 10
repeat a := a + b; until a > b;

a := 4; b := 6; Мүдіріп қалу
repeat a := a + b; until a < b;

a := 4; b := 6; 2 рет
b=6
repeat b := a - b; until a < b;

a := 4; b := 6; Мүдіріп
қалу
repeat a := a + 2; until a < b;
76
Тапсырмалар (бұрыс енгізуден қорғау)
"4": Натурал сан енгізіп, сол сандағы цифрлардың
қосындысы 10-ға тең екендігінің дұрыстығын анықтау.
Мысал:
>= 0 сан енгіз: >= 0 сан енгіз:
-234 1233
Оң сан енгізу керек. Жоқ
>= 0 сан енгіз:
1234
Иә

"5": Натурал сан енгізіп,қандай цифрлардың бірнеше рет
кездесетіндігін анықтау.
Мысал:
>= 0 сан енгіз: >= 0 сан енгіз:
2323 1234
2, 3 қайталанады Қайталану жоқ.
77

Паскаль тілінде
программалау
Тақырып 6. Таңдау операторы
78
Таңдау операторы
Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын
шығару.
Шығарылуы: Айдағы күндер саны
28 күн – 2 (ақпан)
30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11
(қараша)
31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде),
8 (тамыз), 10 (қазан), 12 (желтоқсан)
Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес
бірнеше нұсқаның бірін таңдау.

? ма?
Бұған дейінгі қолданған әдістермен шешуге бола
79
Алгоритм
басы

енгізу M

иә
M = 1? D := 31; таңдау операторы
жоқ
иә
M = 2? D := 28;
жоқ

иә
M = 12? D := 31;
жоқ
ешбір шығару D
қате
нұсқасы
сәйкес
келген жоқ
соңы
80
Программа
program qq;
var M, D: integer;
begin
writeln(‘Айдың нөмірін енгіз:');
read ( M );
case
case MM of
of
2:
2: begin DD :=
begin := 28;
28; end;
end;
4,6,9,11: begin
4,6,9,11: begin DD :=
:= 30;
30; end;
end;
1,3,5,7,8,10,12: DD :=
1,3,5,7,8,10,12: := 31;
31;
else
else DD :=
:= -1;
-1; ешбір нұсқасы
end;
end; сәйкес келген жоқ

if D > 0 then
writeln(‘Бұл айда ', D, ' күн.')
else
writeln('Айдың нөмірі дұрыс емес');
end.
81
Таңдау операторы
Ерекшеліктері:
• case-тен кейін айнымалы атауы немесе бүтін типті
(integer) арифметикалық өрнек
case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;
немесе символдық типті (char) арифметикалық өрнек
var c: char;
...
case c of
'а': writeln(‘Бөкен');
'б': writeln('Борсық');
else writeln(‘Білмеймін');
end;
болуы мүмкін
82
Таңдау операторы
Ерекшеліктері:
• егер бір ғана операторды орындау керек болса,
begin мен end сөздерін жазбай кетуге болады
case i+3 of
1: a := b;
2: a := c;
end;

• бірдей екі мәнді қоюға болмайды
case i+3 of
1: a := b;
1: a := c;
end;
83
Таңдау операторы
Ерекшеліктері:
• бірдей әрекеттер орындалатын кезде қолданылатын
мәндерді топтастыру қажет

тізбелеп санап case i of
шығу 1: a := b;
2,4,6: a := c;
диапазон
10..15: a := d;
20,21,25..30: a := e;
аралас else writeln(‘Қате');

end;
84
Қай жері дұрыс емес?

case a of case a of
2: begin a := b; 2: a := b ;
4: a := c; 4: a := c
end; end;

case a of case a of
2..5: a := b; 0..2: a := b;
4: a := c; 6..3:
3..6: a := c;
end; end;
begin
case a+c/2 of case a of
2: a := b; 2: a := b; d := 0; end;
4: a := c; 4: a := c;
end; end;
85
Тапсырмалар (бұрыс енгізуден
қ ор ғаумен)
"4": Айдың нөмірін енгізе отырып, осы айдағы күндердің
санын және енгізу кезінде жіберілген қателердің санын
есептеп шығару.
Мысал:
Ай нөмірін енгіз: Ай нөмірін енгіз:
-2 2
Ай нөмірін енгіз: Бұл айда 28 күн бар.
11 Сіз 0 рет қате енгіздіңіз.
Бұл айда 30 күн бар.
Сіз 1 рет қате енгіздіңіз.

"5": Айдың нөмірі мен күннің нөмірін енгізіп, Жаңа жылға
дейін қалған күндердің санын анықтау.
Мысал:
Ай нөмірін енгіз:
Күнді енгіз:
Жаңа жылға дейін 6 күн бар.
86

Паскаль тілінде
программалау
Тақырып 7. Графика
87
Координаталар жүйесі

X
(0,0)

y

x (x,y)

Y
88
Түстерді басқару
Cызықтың түсі мен қалыңдығы, нүктелердің
түсі:
Pen
сызықты ң ( 1, 255, 0, 0 );
R(red) G(green) B(blue)
қалыңдығ 0..255
0..255 0..255
ы

Бояудың түсі мен стилі:
Brush ( 1, 0, 255, 0 );
0 – өшіру R G B
1 - қосу

Мәтін түсі:
TextColor ( 0, 0, 255 );
R G B
89
Нүктелер, кесінділер және қисық сызықтар

(x, y)
Pen (1, 0, 0, 255);
Point (x, y);
(x1, y1)

(x2, y2) Pen (1, 0, 255, 0);
Line (x1, y1, x2, y2);

(x1, y1) (x2, y2)
Pen (1, 255, 0, 0);
MoveTo (x1, y1);
(x3, y3) LineTo (x2, y2);
(x5, y5) LineTo (x3, y3);
LineTo (x4, y4);
LineTo (x5, y5);
(x4, y4)
90
Фигуралардың ішін бояу

(x1, y1)
Pen (1, 0, 0, 255);
Brush (1, 255, 255, 0);
Rectangle (x1, y1, x2, y2);
(x2, y2)
(x1, y1)
Pen (1, 255, 0, 0);
Brush (1, 0, 255, 0);
Ellipse (x1, y1, x2, y2);
(x2, y2)

(x, y) Brush (1, 100, 200, 255);
Fill (x, y);
91
Мәтін

TextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30, 600);
м !
(x, y)
ле өлшемі айналу қанықтылық:
а
С 30 о 10 пиксель бұрышы 400 – қалыпты
600 – қалың
MoveTo (x, y);
writeln (‘Салем!');
92
Мысал

program qq;
begin
(200, 50) Pen(2, 255, 0, 255);
Brush(1, 0, 0, 255);
(100, 100) Rectangle(100, 100, 300, 200);
MoveTo(100, 100);
LineTo(200, 50);
LineTo(300, 100);
Brush(1, 255, 255, 0);
(300, 200) Fill(200, 75);
Pen(2, 255, 255, 255);
Brush(1, 0, 255, 0);
Ellipse(150, 100, 250, 200);
end.
93
Тапсырмалар
"4": «Бақа"

"5": «Тәж"
94
Штрихтер салу

N сызық (N=5) x2 x1
(x1, y1) h
N 1

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, y2) ... x x x

h := (x2 – x1) / (N + 1);
Rectangle (x1, y1, x2, y2); var x, h: real;
x := x1 + h; жақын орналасқан бүтін
for i:=1 to N do begin санға дейін дөңгелектеу
Line( round(x), y1, round(x), y2);
x := x + h;
end;
95
Түсті қалай өзгертуге болады?
(x1, y1) x сұр: R = G = B

Brush ( 1, c, c, c );
(x-1, y1+1)
Fill ( ???, ??? );
255
Өзгеру қадамы c: hc
(x2, y2) N 1

hc := 255 div (N + 1);
var c, hc: integer;
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;
96
Штрихтер салу

a x3 x2
a x1 x2 h
(x1, y1) (x3+a, y1) N 1

Line( x1+h, y1, x1+h-a, y2);
Line( x1+2*h, y1, x1+2*h-a, y2);
(x2, y2) (x3, y2) Line( x1+3*h, y1, x1+3*h-a, y2);
h ...
x x-a
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;
97
Штрихтер салу
x2 x1 y2 y1
(x1, y1) hx hy
N 1 N 1
hx
Line( x1, y1+hy, x1+hx,
y1+hy) ;
Line( x1, y1+2*hy, x1+2*hx,
hy y1+2*hy);
Line( x1, y1+3*hy,
y x1+3*hx,
x y
y1+3*hy);
hx :=...
(x2 – x1) / (N + 1);
(x2, y2) 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;
98
Тапсырмалар
"4": Пернетақтадан штрих сызықтарының санын енгізе
отырып фигура салу және оның ішін әр түрлі түстермен
бояу.

"5": Пернетақтадан шеңберлердің санын енгізу арқылы
шеңбердің суретін салу және оның ішіндегі әр шеңберді
әр түрлі түске бояу.
99

Паскаль тілінде
программалау
Тақырып 8. Функциялардың
графигі
100
Функция графиктерін құру

Есеп: 0 мен 2π интервалы арасындағы y = 3 sin(x)
функциясының графигін құру.

Анализ:
x = π/2 болғанда максималды мән ymax = 3
x = 3π/2 болғанда минималды мән ymin = -3

Мәселе: функция координалардың математикалық
жүйесінде көрсетілген, ал графикті координаталарын
пиксельдермен көрсете отырып компьютер экранында
шығару керек.
101
Координаталардың түрленуі
Координаталардың Координаталардың
математикалық экрандық жүйесі
Y жүйесі (пиксельдер)
a
(0,0)
x (x,y) yэ
b xэ
y X (xэ,yэ)
(0,0)

k – масштаб (экрандағы
жекелеген кесінді кескінінің xэ = a + kx
ұзындығы)
yэ = b - ky
102
Программа
program qq;

const a = 50; b = 200; k = 50;
xmin = 0; xmax = 6.2832;
var x, y, h: real; h – x-тің өзгеру
қадамы
экранда xe, ye, w: integer;
w – ОХ осінің
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. ? Кемшілігі ?
103
Нүктелерді қалай біріктіруге болады?
Алгоритм: Программа: логикалық
айнымалы
Егер бірінші нүкте болса var first: boolean;
(xэ,yэ) нүктесіне өту ...
бастапқы мән
әйтпесе begin
(xэ,yэ) нүктесіне кесінді ...
first := True;
while x <= xmax do begin
...
әрекеттердің if first then begin
нұсқасын MoveTo(xe, ye);
таңдау first := False;
end
else LineTo(xe, ye);
...
end;
end.
104
Тапсырмалар
"4": [-3,3] интервалы
арасында y = x2
функциясының
графигін құру.

"5": Функция графигін құру
(эллипс)
x2 y2
16 9
105

Паскаль тілінде
программалау
Тақырып 9. Процедуралар
106
Процедуралар
Есеп: Мына фигураны құру:

? Белгілі әдістермен шешуге бола ма?

Ерекшелігі: Үш ұқсас фигура.
жалпы: өлшемдері, айналу бұрышы
айырмашылықтары: координаталары, түстері

? Неше координата белгілеу керек?
107
Процедуралар
Процедура – кейбір әрекеттерді орындау үшін
қолданылатын көмекші.
Қолданылуы:
• программаның әр жерінде орналасқан бірдей
әрекеттерді орындау
• программаны

Ұқсас жұмыстар
Паскаль программалау тілінде деректерді енгізу және шығару
Турбо Паскаль программалау ортасында қарапайым программа құру
Турбо Паскаль программалау ортасында қарапайым программа құру
Паскаль тілінде программа дайындау жолдары
Ішкі және модульдік программалау. Си тілі мен Паскаль тілінде жазылған бағдарламалар
“ Программалау тілдері. ”
Pascal тілінде бағдарламалау
Циклдік алгоритмді программалау
Си тілінде құрылған программаның құрылымын сипаттау Си программалау жүйесінің файлдарының құрамы қандай Си тілінде деректерді ұйымдастыру
Ішкі және модульдік программалау
Пәндер

Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор №1 болып табылады.

MasterCard Visa


WhatsApp: 777 614 50 20
Email: info@stud.kz
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь