Паскаль тілінде программалау
Transcript of Паскаль тілінде программалау
1
Паскаль тілінде программалау
1. Кіріспе2. Тармақталу3. Күрделі шарттар4. Циклдер5. Шартты циклдер6. Таңдау операторы
7. Графика8. Функциялардың графигі9. Процедуралар10. Рекурсия11. Анимация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;var a, b: integer;begin a := 5; b := a + 2; a := (a + 2)*(b – 3);end.
a? 55
b? 5+27
a5 7*428
Мысал:
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• солдан оңға қарай қосу және алу
z := (5*a*c+3*(c-d))/a*(b-c)/ b;
)2)(()(5 22
addcbadcax
)()(35 cb
abdcacz
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
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 30 Enter арқылы:
25 30
a25b30
a25b30
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, '<' ); 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<
барлық символдар
саны
барлық символдар
саныбөлшек бөлігіндегі символдар саны
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
Сызықтық алгоритмның блок-схемасы
басы
соңы
c := a + b;
енгізу 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. Блок-схема
басы
max:= a;
енгізу a,b
шығару max
a > b?
max:= b;
соңы
иә жоқ Тармақталудың толымды түрі
«таңдау» блогі
Егер a = b??
26
Нұсқа 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.
27
Шартты оператор
if <шарт> then begin {егер шарт орындалса, не істеу керек} end else begin {егер шарт орындалмаса, не істеу керек} end;Ерекшеліктері:
• else-тің алдында нүктелі үтір болмауы керек• екінші бөліктің (else …) болмауы да мүмкін
(толымсыз түрі)• егер блокта бір ғана оператор болса, begin мен end сөздерін жазбауға да болады
28
Нұсқа 2. Блок-схема
тармақталудың толымсыз түрі
басы
max:= a;
енгізу a,b
шығару max
max:= b;
соңы
иә жоқb > a?
29
Нұсқа 2. Программа
program qq;var a, b, max: integer;begin writeln(‘Екі бүтін сан енгіз'); read ( a, b ); max := a; if b > a then max := b;
writeln (‘Екі санның үлкені', max);end.
шартты оператордың
толымсыз түрі
30
Нұсқа 2Б. Программа
program qq;var a, b, max: integer;begin writeln('Екі бүтін сан енгіз'); read ( a, b ); max := b; if ??? then ???
writeln ('Екі санның үлкені', max);end.
max := a;a > b
31Лабораториялық жұмыс №8
функциясының мәнін есептейтін программа құру.
Program esep2_2;Var {айнымалыларды сипаттау бөлімі}x: Integer; {х – бүтін сан}А: real; {А нәтиже – нақты сан}BEGIN {программа басы}3
Write( 'x = '); { x санын енгізу туралы ақпаратты экранға шығару }ReadLn (x) ; { x – ті енгіземіз}If (x<-1) Then A:= x + sin(x) { егер х саны (-1)- ден кіші болса, А= функциясы орындалады} Else A:= 3* sqrt(x+1); {әйтпесе (х>-1 болса), А= функциясы орындалады }WriteLn('A =', A:5:3); {нәтижені экранға шығарамыз}END. {программа соңы}
басы
х:integer; a: real;
x<-1
A:= x + sin(x)
A:= 3* sqrt(x+1)
z
соңы
Мысал
Мысал
32Лабораториялық жұмыс №8
Деңгейлік тапсырмалар:1 деңгейБерілген Х,У мәндерінің х-қа үлкенін, ал у-ке кіші мәнін бөліп беретіндей программа құру 2 деңгейх,у (х≠у) сандары берілген. Олардың кішісін қосындының орта шамасымен, ал үлкенін – екі еселенген көбейтіндімен алмастырыңыз.3 деңгейКез келген 3 бүтін сан берілген: X, Y және Z. Осы сандарды кему реті бойынша орналастыратын программа құру қажет.
Зертханалық жұмыстың орындалуы бойынша қосымша тапсырмалар:
1. Берілген Х,У мәндерінің х-қа кішісін, ал у-ке үлкен мәнін бөліп беретіндей етіп өзгертіңіз2. х,у (х≠у) сандары берілген. Олардың кішісінің квадратын , ал үлкенін – кубын табатындай етіп алмастырыңыз3. х,у (х=у) сандары берілген. Олардың кішісінің квадратын , ал үлкенін – кубын табатындай етіп алмастырыңыз
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 := bend
a := b if b >= a then b := a;
34
Қай жері дұрыс емес?
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
beginend
35
Үйге тапсырмаТеориялық тапсырма: Тармақталған алгоритдерді программалау (қосымша мәліметтермен толықтыру, презентациялау)
Шығармашылық тапсырма: Шартқа өздігімізше 5 есеп құрып, программасын жазу