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


Slide 1

*

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

Кіріспе

Тармақталу

Күрделі шарттар

Циклдер

Шартты циклдер

Таңдау операторы

Графика

Функциялардың графигі

Процедуралар

Рекурсия

Анимация

Кездейсоқ сандар

Функциялар

Slide 2

*

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

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

Slide 3

*

Алгоритм

Алгоритм қасиеттері

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

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

белгілілік: бастапқы деректері бірдей болған жағдайда нәтижесі де бірдей болады

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

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

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

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

Slide 4

*

Программа

Программа дегеніміз -

қандай да бір программалау тілінде жазылған алгоритм

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

Команда - компьютер орындауға міндетті әрекеттің өрнектелуі.

алғашқы мәліметтерді қайдан алу керек?

олармен қандай амалдар орындау керек?

Slide 5

*

Программалау тілдері

Машинаға бейімделген (төменгі деңгейлі) - әрбір команда процессордың бір командасына сәйкес келеді (ассемблер)

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

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

Кәсіби: Си, Фортран, Паскаль

Жасанды интеллект тапсырмалары үшін: Пролог, ЛИСП

Интернет үшін: JavaScript, Java, Perl, PHP, ASP

Slide 6

*

Паскаль тілі

1970 - Никлаус Вирт (Швейцария)

студенттерді оқытуға арналған тіл

«жоғарыдан төменге қарай» программаларын жасау

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

Slide 7

*

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

program <программаның аты>;

const …; {тұрақтылар}

var …; {айнымалылар}

begin

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

end.

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

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

Slide 8

*

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

Тұрақты - өз атауы болатын, өзгермейтін шама, .

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

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

Функция - есептеулерді орындайтын қосалқы алгоритм (квадрат түбірді табу, sin) .

Slide 9

*

Программалар, тұрақтылар, айнымалылар атауы

Атауларды сипаттағанда

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

сандарды

астын сызу белгісін _

қолдануға болады

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

Атауларды сипаттағанда

орыс, қазақ әріптерін

бос орындарды

жақшаларды, +, =, !, ? белгілерін және т. б.

қолдануға болмайды

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

Қай атаулар дұрыс жазылған?

AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Slide 10

*

Тұрақтылар

const

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

pi = 3. 14; { нақты сан }

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

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

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

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

екі мән қабылдай алады:

True (ақиқат, «иә»)

False (жалған, «жоқ»)

Slide 11

*

Айнымалылар

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

Айнымалылардың типі:

integer { бүтін }

real { нақты }

char { бір символ }

string { символдық тіркес }

boolean { логикалық }

Айнымалыларды сипаттау (жад бөлу) :

var a, b: integer;

Q: real;

s1, s2: string;

Slide 12

*

Айнымалының мәнін қалай өзгертуге болады?

Оператор - жоғары деңгейлі программалау тілінің командасы.

Меншіктеу операторы айнымалының мәнін өзгерту үшін қолданылады.

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

Мысал:

Slide 13

*

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

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

Арифметикалық өрнектің құрамында

тұрақтылар

айнымалы атаулары

арифметикалық амалдар белгілері:

+ - * / div mod

функцияларды шақыру

жақшалар ( )

көбейту

бөлу

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

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

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

Slide 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.

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

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

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

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

Slide 15

*

Амалдарды орындау тәртібі

жақша ішіндегі өрнекті есептеу

солдан оңға қарай көбейту, бөлу, 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

Slide 16

*

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

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

Шығарылуы:

program qq;

var a, b, c: integer;

begin

read ( a, b ) ;

c := a + b;

writeln ( c ) ;

end.

Slide 17

*

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

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

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

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

бос орын арқылы:

25 30

Enter арқылы:

25

30

Slide 18

*

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

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

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

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

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

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

Slide 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<

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

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

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

Slide 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

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

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

Slide 21

*

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

басы

соңы

c := a + b;

енгізу a, b

шығару c

«басы» блогі

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

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

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

«соңы» блогі

Slide 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

Slide 23

*

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

Тақырып 2. Тармақталу

Slide 24

*

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

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

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

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

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

Slide 25

*

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

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

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

Slide 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.

Slide 27

*

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

if <шарт> then begin

{егер шарт орындалса, не істеу керек}

end

else begin

{егер шарт орындалмаса, не істеу керек}

end;

Ерекшеліктері:

else-тің алдында нүктелі үтір болмауы керек

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

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

Slide 28

*

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

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

Slide 29

*

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

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

Slide 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.

шартты оператордың толымсыз түрі

Slide 31

*

Нұсқа 2Б. Программа

program qq;

var a, b, max: integer;

begin

writeln('Екі бүтін сан енгіз') ;

read ( a, b ) ;

max := b;

if ??? then

???

writeln ('Екі санның үлкені', max) ;

end.

max := a;

a > b

Slide 32

*

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

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;

Slide 33

*

Тапсырмалар

"4": Үш сан енгізіп олардың үлкенін табу.

Мысал:

Үш сан енгіз:

4 15 9

Ең үлкен сан 15

"5": Бес сан енгізіп олардың үлкенін табу.

Мысал:

Бес сан енгіз:

4 15 9 56 4

Ең үлкен сан 56

Slide 34

*

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

Тақырып 3. Күрделі шарттар

Slide 35

*

Күрделі шарттар

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

Ерекшелігі: екі шарттың бір мезгілде орындалатынын немесе орындалмайтынын тексеру.

Slide 36

*

Нұсқа 1. Алгоритм

басы

енгізу x

‘болады'

жоқ

иә

жоқ

x >= 25?

иә

жоқ

x <= 40?

'болмайды'

‘болмайды'

Slide 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.

Slide 38

*

Нұсқа 2. Алгоритм

басы

енгізу x

‘болады'

иә

жоқ

x >= 25 және

x <= 40?

'болмайды'

Slide 39

*

Вариант 2. Программа

күрделі шарт

program qq;

var x: integer;

begin

writeln(‘Жасты енгіз') ;

read ( x ) ;

if (x >= 25) and (x <= 40) then

writeln ('Болады')

else writeln ('Болмайды')

end.

Slide 40

*

Күрделі шарттар

Күрделі шарт - бір-бірімен логикалық операциялардың көмегімен байланысатын бірнеше қарапайым шарттардан (қатынастардан) тұрады:

not - ЕМЕС (терістеу, инверсия)

and - ЖӘНЕ (логикалық көбейту, конъюнкция, шарттардың бір мезгілде орындалуы)

or - НЕМЕСЕ (логикалық қосу, дизъюнкция, ең болмағанда бір шарттың орындалуы)

xor - арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)

Қарапайым шарттар (қатынастар)

< <= > >= = <>

тең

тең емес

Slide 41

*

Күрделі шарттар

Орындау тәртібі

жақша ішіндегі өрнектер

not

and

or, xor

<, <=, >, >=, =, <>

Ерекшелігі - қарапайым шарттардың әрқайсысын жақшамен жабу.

Мысал:

4 1 6 2 5 3

if not (a > b) or (c <> d) and (b <> a)

then begin

. . .

end

Slide 42

*

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

Slide 43

*

Тапсырмалар

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

Мысал:

Ай нөмірін енгіз:

4

көктем

Slide 44

*

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

Тақырып 4. Циклдер

Slide 45

*

Циклдер

Цикл - белгілі бір әрекеттер тізбегінің бірнеше рет қайталанып орындалуы.

қадамдар саны белгілі цикл

қадамдар саны белгісіз цикл (шартты цикл)

Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (a-дан b-ға дейін) .

Ерекшелігі: бірдей амалдар 8 рет орындалады.

Slide 46

*

Алгоритм

басы

i, i2, i3

соңы

жоқ

иә

i <= 8?

i := 1;

i := i + 1;

i2 := i * i;

i3 := i2 * i;

цикл айнымалысының бастапқы мәнін көрсету

барлығы да атқарылды ма? соны тексеру

квадрат пен куб-ты есептейміз

нәтижесін шығару

келесі i-ге өту

Slide 47

*

Алгоритм ("цикл" блогімен)

басы

i, i2, i3

соңы

i2 := i * i;

i3 := i2 * i;

i := 1, 8

«цикл»блогі

цикл денесі

Slide 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.

цикл айнымалысы

бастапқы мән

ең соңғы мән

Slide 49

*

Айнымалысы кеміп отыратын цикл

Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (кері қарай есептеу) .

Ерекшелігі: цикл айнымалысы кеміп отыруы керек.

Шығарылуы:

for i:=8 1 do begin

i2 := i*i;

i3 := i2*i;

writeln(i:4, i2:4, i3:4) ;

end;

downto

Slide 50

*

Айнымалысы бар цикл

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 сөздерін жазбай кетуге болады:


Ұқсас жұмыстар
TP және Си подпрограммаларды пайдалануды салыстыру. Ішкі программаларды пайдаланатын программалар құру. Модульдерді пайдаланатын программа құру
Pascal тілінде бағдарламалау
Сабақтың Аралас сабақ типі
Көшу операторы
Типтерді өзгерту функциялары
Турбо Паскаль программалау ортасында қарапайым программа құру туралы ақпарат
Программалау тілдері
Паскаль программалау тілдері
Турбо Паскаль программалау ортасы
Паскаль тіліндегі программа
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz