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

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

Upload: -

Post on 14-Jan-2017

248 views

Category:

Education


2 download

TRANSCRIPT

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

1

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

1. Кіріспе2. Тармақталу3. Күрделі шарттар4. Циклдер5. Шартты циклдер6. Таңдау операторы

7. Графика8. Функциялардың графигі9. Процедуралар10. Рекурсия11. Анимация12. Кездейсоқ сандар13. Функциялар

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

2

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

Тақырып 1. Кіріспе

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

3

Алгоритм

Алгоритм қасиеттері• дискреттілік: жекелеген қадамдардан(командалардан)

тұрады• айқындылық: атқарушыға түсінікті болатын

командалардан тұруы керек• белгілілік: бастапқы деректері бірдей болған жағдайда

нәтижесі де бірдей болады• нәтижелік: әрекеттердің шектеулі санынан кейін белгілі

бір уақытта қорытынды нәтиже алуымыз керек• жалпылық: алгоритм әр түрлі алғашқы мәліметтер үшін

әр түрлі нәтижелер беруі тиіс• дұрыстылық: алғашқы мәліметтер әр түрлі

болғандығына қарамастан барлық жағдайда дұрыс нәтиже береді

Алгоритм – атқарушы орындайтын амалдардың тиянақты жоспары.

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

4

Программа

Программа дегеніміз - • қандай да бір программалау тілінде

жазылған алгоритм• компьютерге қажетті командалардың

жиынтығы

Команда – компьютер орындауға міндетті әрекеттің өрнектелуі.• алғашқы мәліметтерді қайдан алу керек?• олармен қандай амалдар орындау керек?

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

5

Программалау тілдері• Машинаға бейімделген (төменгі деңгейлі) -

әрбір команда процессордың бір командасына сәйкес келеді (ассемблер)

• Жоғарғы деңгейлі тілдер – кәдімгі табиғи тілге(ағылшын тіліне) ұқсайды, адамның түсінуіне оңай, бір ғана компьютерге тәуелді болмайды.

• Жаңадан үйренушілерге: Бейсик, ЛОГО, Паскаль

• Кәсіби: Си, Фортран, Паскаль• Жасанды интеллект тапсырмалары үшін:

Пролог, ЛИСП• Интернет үшін: JavaScript, Java, Perl, PHP,

ASP

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

6

Паскаль тілі

1970 – Никлаус Вирт (Швейцария)• студенттерді оқытуға арналған тіл• «жоғарыдан төменге қарай» программаларын

жасау

• берілгендердің әр түрлі құрылымдары(массивтер,

құрылымдар, жиымдар)

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

1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3

Есеп

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

7

Программа қандай бөліктерден тұрады?

program <программаның аты>;const …;{тұрақтылар}var …; {айнымалылар}

begin … {негізгі программа}end.

{ процедуралар мен функциялар }

фигуралық жақшаның ішінде орналасқан түсініктемелер программамен өңделмейді

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

8

Программа қандай бөліктерден тұрады?

Тұрақты – өз атауы болатын, өзгермейтін шама, .Айнымалы – өз атауы (жад ұяшығы)болатын, өзгеретін

шама.Процедура – кейбір әрекеттерді сипаттайтын қосалқы

алгоритм (мысалға шеңберді салу).Функция – есептеулерді орындайтын қосалқы алгоритм

(квадрат түбірді табу, sin).

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

9

Программалар, тұрақтылар, айнымалылар атауыАтауларды сипаттағанда

• латын әріптерін (A-Z)

• сандарды

• астын сызу белгісін _ қолдануға болады

Бас әріптер мен кіші әріптердің арасында айырмашылық болмайды

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

Атаулар санмен басталмауы керек

Қай атаулар дұрыс жазылған? AXby R&B 4Wheel Вася “PesBarbos” TU154

[QuQu] _ABBA A+B

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

10

Тұрақтылар

const i2 = 45; { бүтін сан }

pi = 3.14; { нақты сан }

qq = 'Вася'; { символдар қатары }

L = True; { логикалық шама }

бүтін және бөлшек бөліктері нүктемен ажыратылады

орыс, қазақ әріптерін қолдануға болады!

екі мән қабылдай алады:• True (ақиқат, «иә»)• False (жалған, «жоқ»)

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

11

Айнымалылар

Айнымалы – аты, типі және мәні болатын шама. Айнымалының мәнін программаның жұмысы кезінде өзгертіп отыруға болады.

Айнымалылардың типі:• integer { бүтін }• real { нақты }• char { бір символ }• string { символдық тіркес }• boolean { логикалық }

Айнымалыларды сипаттау (жад бөлу):var a, b: integer;

Q: real;s1, s2: string;

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

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

Мысал:

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

13

Меншіктеу операторы

Жалпы құрылымы:

Арифметикалық өрнектің құрамында• тұрақтылар• айнымалы атаулары• арифметикалық амалдар белгілері: + - * / div mod

• функцияларды шақыру• жақшалар ( )

көбейту бөлу бүтінді бүтінге бөлу

бөлуден қалған қалдық

<айнымалы атауы> := <өрнек>;

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

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.

Қай операторлар дұрыс жазылмаған?

айнымалы атауы := белгісінің сол жағында болуы керек

бүтін мен бөлшектің арасы нүктемен ажыратылуы керек

нақты мәнді бүтін айнымалыға меншіктеуге

болмайды

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

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

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

16

Екі санды қосу

Есеп. Екі бүтін санды қосып, қосындысын экранда шығару.

Шығарылуы:program qq;var a, b, c: integer;begin read ( a, b ); c := a + b; writeln ( c );end.

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

17

Енгізу операторы

read ( a ); { а айнымалысының мәнін енгізу}

read ( a, b ); { а және b айнымалыларының мәндерін енгізу}

Екі санды қалай енгізуге болады? бос орын арқылы:

25 30 Enter арқылы:

25 30

a25b30

a25b30

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

18

Шығару операторы

write ( a ); { a айнымалысының мәнін шығару}

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

writeln ( ‘Салем!' ); { мәтінді шығару}

writeln ( ‘Жауап: ', c ); { мәтінді және c айнымалысының мәнін шығару}

writeln ( a, '+', b, '=', c );

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

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<

барлық символдар

саны

барлық символдар

саныбөлшек бөлігіндегі символдар саны

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

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

бұны компьютер шығарады

бұны программа жазушы өзі енгізеді

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

21

Сызықтық алгоритмның блок-схемасы

басы

соңы

c := a + b;

енгізу a, b

шығару c

«басы» блогі

«енгізу» блогі

«процесс» блогі

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

«соңы» блогі

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

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

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

23

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

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

24

Тармақталу алгоритмдері

Есеп. Екі бүтін сан енгізіп,экранға олардың үлкенін шығару.

Шығару амалы: бірінші сан екінші саннан үлкен болса, біріншісін, ал егер кіші болса екіншісін экранға шығару.

Ерекшелігі: атқарушының әрекеті кейбір шарттардың орындалуына байланысты болады (егер …әйтпесе …).

Қадамдардың тізбектеп орындалуы кейбір шарттарға байланысты болатын алгоритмдерді тармақталу

алгоритмдері деп атайды.

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

25

Нұсқа 1. Блок-схема

басы

max:= a;

енгізу a,b

шығару max

a > b?

max:= b;

соңы

иә жоқ Тармақталудың толымды түрі

«таңдау» блогі

Егер a = b??

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

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.

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

27

Шартты оператор

if <шарт> then begin {егер шарт орындалса, не істеу керек} end else begin {егер шарт орындалмаса, не істеу керек} end;Ерекшеліктері:

• else-тің алдында нүктелі үтір болмауы керек• екінші бөліктің (else …) болмауы да мүмкін

(толымсыз түрі)• егер блокта бір ғана оператор болса, begin мен end сөздерін жазбауға да болады

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

28

Нұсқа 2. Блок-схема

тармақталудың толымсыз түрі

басы

max:= a;

енгізу a,b

шығару max

max:= b;

соңы

иә жоқb > a?

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

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.

шартты оператордың

толымсыз түрі

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

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

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

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

соңы

Мысал

Мысал

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

32Лабораториялық жұмыс №8

Деңгейлік тапсырмалар:1 деңгейБерілген Х,У мәндерінің х-қа үлкенін, ал у-ке кіші мәнін бөліп беретіндей программа құру 2 деңгейх,у (х≠у) сандары берілген. Олардың кішісін қосындының орта шамасымен, ал үлкенін – екі еселенген көбейтіндімен алмастырыңыз.3 деңгейКез келген 3 бүтін сан берілген: X, Y және Z. Осы сандарды кему реті бойынша орналастыратын программа құру қажет.

Зертханалық жұмыстың орындалуы бойынша қосымша тапсырмалар:

1. Берілген Х,У мәндерінің х-қа кішісін, ал у-ке үлкен мәнін бөліп беретіндей етіп өзгертіңіз2. х,у (х≠у) сандары берілген. Олардың кішісінің квадратын , ал үлкенін – кубын табатындай етіп алмастырыңыз3. х,у (х=у) сандары берілген. Олардың кішісінің квадратын , ал үлкенін – кубын табатындай етіп алмастырыңыз

Page 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 := bend

a := b if b >= a then b := a;

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

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

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

35

Үйге тапсырмаТеориялық тапсырма: Тармақталған алгоритдерді программалау (қосымша мәліметтермен толықтыру, презентациялау)

Шығармашылық тапсырма: Шартқа өздігімізше 5 есеп құрып, программасын жазу