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



*
Паскаль тілінде программалау
Кіріспе
Тармақталу
Күрделі шарттар
Циклдер
Шартты циклдер
Таңдау операторы
Графика
Функциялардың графигі
Процедуралар
Рекурсия
Анимация
Кездейсоқ сандар
Функциялар

*
Паскаль тілінде программалау
Тақырып 1. Кіріспе

*
Алгоритм
Алгоритм қасиеттері
дискреттілік: жекелеген қадамдардан(командалардан) тұрады
айқындылық: атқарушыға түсінікті болатын командалардан тұруы керек
белгілілік: бастапқы деректері бірдей болған жағдайда нәтижесі де бірдей болады
нәтижелік: әрекеттердің шектеулі санынан кейін белгілі бір уақытта қорытынды нәтиже алуымыз керек
жалпылық: алгоритм әр түрлі алғашқы мәліметтер үшін әр түрлі нәтижелер беруі тиіс
дұрыстылық: алғашқы мәліметтер әр түрлі болғандығына қарамастан барлық жағдайда дұрыс нәтиже береді
Алгоритм - атқарушы орындайтын амалдардың тиянақты жоспары.

*
Программа
Программа дегеніміз -
қандай да бір программалау тілінде жазылған алгоритм
компьютерге қажетті командалардың жиынтығы
Команда - компьютер орындауға міндетті әрекеттің өрнектелуі.
алғашқы мәліметтерді қайдан алу керек?
олармен қандай амалдар орындау керек?

*
Программалау тілдері
Машинаға бейімделген (төменгі деңгейлі) - әрбір команда процессордың бір командасына сәйкес келеді (ассемблер)
Жоғарғы деңгейлі тілдер - кәдімгі табиғи тілге(ағылшын тіліне) ұқсайды, адамның түсінуіне оңай, бір ғана компьютерге тәуелді болмайды.
Жаңадан үйренушілерге: Бейсик, ЛОГО, Паскаль
Кәсіби: Си, Фортран, Паскаль
Жасанды интеллект тапсырмалары үшін: Пролог, ЛИСП
Интернет үшін: JavaScript, Java, Perl, PHP, ASP

*
Паскаль тілі
1970 - Никлаус Вирт (Швейцария)
студенттерді оқытуға арналған тіл
«жоғарыдан төменге қарай» программаларын жасау
берілгендердің әр түрлі құрылымдары(массивтер, құрылымдар, жиымдар)

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

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

*
Программалар, тұрақтылар, айнымалылар атауы
Атауларды сипаттағанда
латын әріптерін (A-Z)
сандарды
астын сызу белгісін _
қолдануға болады
Бас әріптер мен кіші әріптердің арасында айырмашылық болмайды
Атауларды сипаттағанда
орыс, қазақ әріптерін
бос орындарды
жақшаларды, +, =, !, ? белгілерін және т. б.
қолдануға болмайды
Атаулар санмен басталмауы керек
Қай атаулар дұрыс жазылған?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

*
Тұрақтылар
const
i2 = 45; { бүтін сан }
pi = 3. 14; { нақты сан }
qq = 'Вася'; { символдар қатары }
L = True; { логикалық шама }
бүтін және бөлшек бөліктері нүктемен ажыратылады
орыс, қазақ әріптерін қолдануға болады!
екі мән қабылдай алады:
True (ақиқат, «иә»)
False (жалған, «жоқ»)

*
Айнымалылар
Айнымалы - аты, типі және мәні болатын шама. Айнымалының мәнін программаның жұмысы кезінде өзгертіп отыруға болады.
Айнымалылардың типі:
integer { бүтін }
real { нақты }
char { бір символ }
string { символдық тіркес }
boolean { логикалық }
Айнымалыларды сипаттау (жад бөлу) :
var a, b: integer;
Q: real;
s1, s2: string;

*
Айнымалының мәнін қалай өзгертуге болады?
Оператор - жоғары деңгейлі программалау тілінің командасы.
Меншіктеу операторы айнымалының мәнін өзгерту үшін қолданылады.
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
Мысал:

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

*
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.
Қай операторлар дұрыс жазылмаған?
айнымалы атауы := белгісінің сол жағында болуы керек
бүтін мен бөлшектің арасы нүктемен ажыратылуы керек
нақты мәнді бүтін айнымалыға меншіктеуге болмайды

*
Амалдарды орындау тәртібі
жақша ішіндегі өрнекті есептеу
солдан оңға қарай көбейту, бөлу, 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

*
Екі санды қосу
Есеп. Екі бүтін санды қосып, қосындысын экранда шығару.
Шығарылуы:
program qq;
var a, b, c: integer;
begin
read ( a, b ) ;
c := a + b;
writeln ( c ) ;
end.

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

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

*
Шығару форматтары
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<
барлық символдар саны
барлық символдар саны
бөлшек бөлігіндегі символдар саны

*
Толық шығарылуы
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
бұны компьютер шығарады
бұны программа жазушы өзі енгізеді

*
Сызықтық алгоритмның блок-схемасы
басы
соңы
c := a + b;
енгізу a, b
шығару c
«басы» блогі
«енгізу» блогі
«процесс» блогі
«шығару» блогі
«соңы» блогі

*
Тапсырмалар
"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

*
Паскаль тілінде программалау
Тақырып 2. Тармақталу

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

*
Нұсқа 1. Блок-схема
Тармақталудың толымды түрі
«таңдау» блогі

*
Нұсқа 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.

*
Шартты оператор
if <шарт> then begin
{егер шарт орындалса, не істеу керек}
end
else begin
{егер шарт орындалмаса, не істеу керек}
end;
Ерекшеліктері:
else-тің алдында нүктелі үтір болмауы керек
екінші бөліктің (else …) болмауы да мүмкін (толымсыз түрі)
егер блокта бір ғана оператор болса, begin мен end сөздерін жазбауға да болады

*
Қай жері дұрыс емес?
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

*
Нұсқа 2. Блок-схема
тармақталудың толымсыз түрі

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

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

*
Қай жері дұрыс емес?
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;

*
Тапсырмалар
"4": Үш сан енгізіп олардың үлкенін табу.
Мысал:
Үш сан енгіз:
4 15 9
Ең үлкен сан 15
"5": Бес сан енгізіп олардың үлкенін табу.
Мысал:
Бес сан енгіз:
4 15 9 56 4
Ең үлкен сан 56

*
Паскаль тілінде программалау
Тақырып 3. Күрделі шарттар

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

*
Нұсқа 1. Алгоритм
басы
енгізу x
‘болады'
жоқ
иә
жоқ
x >= 25?
иә
жоқ
x <= 40?
'болмайды'
‘болмайды'

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

*
Нұсқа 2. Алгоритм
басы
енгізу x
‘болады'
иә
жоқ
x >= 25 және
x <= 40?
'болмайды'

*
Вариант 2. Программа
күрделі шарт
program qq;
var x: integer;
begin
writeln(‘Жасты енгіз') ;
read ( x ) ;
if (x >= 25) and (x <= 40) then
writeln ('Болады')
else writeln ('Болмайды')
end.

*
Күрделі шарттар
Күрделі шарт - бір-бірімен логикалық операциялардың көмегімен байланысатын бірнеше қарапайым шарттардан (қатынастардан) тұрады:
not - ЕМЕС (терістеу, инверсия)
and - ЖӘНЕ (логикалық көбейту, конъюнкция, шарттардың бір мезгілде орындалуы)
or - НЕМЕСЕ (логикалық қосу, дизъюнкция, ең болмағанда бір шарттың орындалуы)
xor - арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)
Қарапайым шарттар (қатынастар)
< <= > >= = <>
тең
тең емес

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

*
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

*
Тапсырмалар
"4": Айдың нөмірін енгізу арқылы, жыл мезгілінің атауын шығару.
Мысал:
Ай нөмірін енгіз:
4
көктем

*
Паскаль тілінде программалау
Тақырып 4. Циклдер

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

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

*
Алгоритм ("цикл" блогімен)
басы
i, i2, i3
соңы
i2 := i * i;
i3 := i2 * i;
i := 1, 8
«цикл»блогі
цикл денесі

*
Программа
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.
цикл айнымалысы
бастапқы мән
ең соңғы мән

*
Айнымалысы кеміп отыратын цикл
Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (кері қарай есептеу) .
Ерекшелігі: цикл айнымалысы кеміп отыруы керек.
Шығарылуы:
for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4) ;
end;
downto

*
Айнымалысы бар цикл
for <айнымалы> := <алғашқы мән> to
<ең соңғы мән> do begin
{цикл денесі}
end;
Айнымалының 1-ге артуы:
for <айнымалы> := <алғашқы мән> downto
<ең соңғы мән> do begin
{цикл денесі}
end;
Айнымалының 1-ге кемуі:
*
Айнымалысы бар цикл
Ерекшеліктері:
цикл айнымалысының мәні бүтін болуы керек (integer)
цикл айнымалысының өзгеру қадамы қашанда 1-ге (to) немесе -1-ге (downto) тең
егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
егер соңғы мән алғашқы мәннен кіші болса, (to) циклы бірде бір рет орындалмайды (шартты циклдың басында тексеру, шартты алдын ала тексеретін цикл)
for i:=1 to 8 do
writeln('Привет') ;
*
Айнымалысы бар цикл
Ерекшеліктері:
Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?)
Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:
n := 8;
for i:=1 to n do begin
writeln('Салем') ;
n := n + 1;
end;
мүдіріп қалу жоқ
*
Цикл неше рет орындалған?
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
*
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-лермен орындалады
*
Қадамдарды қалай өзгертуге болады? - 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;
*
Қадамдарды қалай өзгертуге болады? - III
Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден 5-ке дейін өзгереді. k-ны біле отырып, i-ді есептеу қажет.
Шығарылуы:
k
1
2
3
4
5
i
1
3
5
7
9
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;
*
Тапсырмалар
"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
*
Паскаль тілінде программалау
Тақырып 5. Шартты циклдер
*
Қадамдар саны белгісіз цикл
Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек, . ?
Есеп: (<2) бүтін сан енгізіп, ондағы цифрлардың санын анықтау.
Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз.
Мәселе: неше қадам жасау керектігі белгісіз.
Шығарылуы: n = 0 болғанда тоқтау керек, яғни "n <> 0" болғанша орындай беру керек.
n
count
123
0
12
1
1
2
0
3
*
Алгоритм
басы
count
соңы
жоқ
иә
n <> 0?
count := 0;
count := count + 1;
n := n div 10;
цифрлардың санаушысын нөлге теңестіру
енгізу n
“n <> 0“ болғанша орындай беру
*
Программа
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“ болғанша орындай беру
*
Шартты цикл
while <шарт> do begin
{цикл денесі}
end;
Ерекшеліктері:
күрделі шарттарды қолдануға болады:
егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz