Паскаль тілінде бағдарламалаудың негіздері: алгоритмдер, деректер типтері және басқару құрылымдары


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


Ұқсас жұмыстар
Алгоритмдер: анықтамасы, негізгі құрылымдары, блок-схемалар мен Паскаль тілінде ұсыну
Turbo Pascal және Паскаль тілінің негіздері: тарихы, мәлімет типтері мен басқару құрылымдары
Тармақталған алгоритмдер: 9-сынып информатика ашық сабағы (Паскаль тілінде)
Паскаль тіліндегі программалаудың негіздері: алгоритмдер, программа құрылымы және енгізу-шығару
Сызықтық алгоритмдер және Паскаль тіліндегі бағдарламалау: сабақ жоспары
Паскаль тіліндегі мәлімет типтері, өрнектер және айнымалылар
Сызықтық алгоритмдер мен Pascal тілінде бағдарламалау: сабақ жоспары және тапсырмалар
Паскаль тіліндегі алгоритмдер: алфавит, операторлар және практикалық есептер
Мәліметтер базасы және оның басқару жүйелері: жобалау кезеңдері мен деректер типтері
Реляциялық деректер моделінің құрылымы, тұтастық талаптары және деректер типтері
Пәндер



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