kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

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

Нажмите, чтобы узнать подробности

Саба?ты? та?ырыбы Паскаль программалау тілі саба? интерактивті та?тада слайд т?рінде ?ткізілуге арнал?ан. К?рсетіліп т?сіндіру  ар?ылы ж?зеге асырылады. саба?ты? ма?саттары білімділік, дамыту ж?не т?рбиелік болып б?лінеді. Саба? о?ушыларды? танымдылы? белсенділігін ж?не п?нге деген ?ызы?ушылы?ын арттыру, зияткерлік ?асиеттерін дамыту, логикалы? ойлау ?абілеттерін ?алыптастыру?а болады. 

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

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

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

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

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

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

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

Алгоритм

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

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

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

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

Программа

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

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

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

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

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

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

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

Паскаль тілі 1970 – Никлаус Вирт (Швейцария)  студенттерді оқытуға арналған тіл  «жоғарыдан төменге қарай» программаларын жасау       студенттерді оқытуға арналған тіл  «жоғарыдан төменге қарай» программаларын жасау       берілгендердің әр түрлі құрылымдары(массив тер , құрылымдар, жиымдар)  берілгендердің әр түрлі құрылымдары(массив тер , құрылымдар, жиымдар) Есеп Бағыныңқы есеп3 Бағыныңқы есеп 2 Бағыныңқы есеп1 3 .3 3 .2 2 .3 2 .2 2 .1 1.3 1.2 1.1 3 .1 6

Паскаль тілі

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

  • студенттерді оқытуға арналған тіл «жоғарыдан төменге қарай» программаларын жасау
  • студенттерді оқытуға арналған тіл
  • «жоғарыдан төменге қарай» программаларын жасау
  • берілгендердің әр түрлі құрылымдары(массив тер , құрылымдар, жиымдар)
  • берілгендердің әр түрлі құрылымдары(массив тер , құрылымдар, жиымдар)

Есеп

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

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

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

3 .3

3 .2

2 .3

2 .2

2 .1

1.3

1.2

1.1

3 .1

6

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

6

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

program ;

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

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

begin

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

end.

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

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

6

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

6

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

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

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

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

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

6

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

6

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

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

  • латын әріптерін ( A-Z) сандарды астын сызу белгісін _
  • латын әріптерін ( A-Z)
  • сандарды
  • астын сызу белгісін _

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

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

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

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

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

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

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

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

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

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

6

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

6

Тұрақтылар

const

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

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

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

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

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

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

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

  • True ( ақиқат , «иә» ) False ( жалған , «жоқ»)
  • True ( ақиқат , «иә» )
  • False ( жалған , «жоқ»)

6

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

6

Айнымалылар

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

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

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

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

var a, b: integer;

Q: real;

s1, s2: string;

  • Q: real; s1, s2: string;

6

6 Айнымалының мәнін қалай өзгертуге болады? Оператор – жоғары деңгейлі программалау тілінің командасы. Меншіктеу операторы айнымалының мәнін өзгерту үшін қолданылады. Мысал:  program qq;  var a, b: integer;  begin   a := 5;   b := a + 2;   a := (a + 2)*(b – 3);  end. a 5 ? 5 b 7 5+2 ? a 5 7*4 28 6

6

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

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

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

Мысал:

program qq;

var a, b: integer;

begin

a := 5;

b := a + 2;

a := (a + 2)*(b – 3);

end.

a

5

?

5

b

7

5+2

?

a

5

7*4

28

6

:= өрнек ; Арифметикалық өрнектің құрамында тұрақтылар айнымалы атаулары арифметикалық амалдар белгілері: тұрақтылар айнымалы атаулары арифметикалық амалдар белгілері: + - * / div mod + - * / div mod функцияларды шақыру жақшалар ( ) функцияларды шақыру жақшалар ( ) көбейту бүтінді бүтінге бөлу бөлу бөлуден қалған қалдық 6" width="640"

6

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

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

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

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

  • тұрақтылар айнымалы атаулары арифметикалық амалдар белгілері:
  • тұрақтылар
  • айнымалы атаулары
  • арифметикалық амалдар белгілері:

+ - * / div mod

  • + - * / div mod
  • функцияларды шақыру жақшалар ( )
  • функцияларды шақыру
  • жақшалар ( )

көбейту

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

бөлу

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

6

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

6

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

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.

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

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

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

6

6 Амалдарды орындау тәртібі жақша ішіндегі өрнекті есептеу солдан оңға қарай  көбейту, бөлу, div , mod солдан оңға қарай қосу және алу жақша ішіндегі өрнекті есептеу солдан оңға қарай  көбейту, бөлу, div , mod солдан оңға қарай қосу және алу  2 3 5 4 1  7 8 6 9  2 3 5 4 1  7 8 6 9 z := ( 5*a*c+3*(c-d))/a*(b-c)/ b; z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;  2 6 3 4 7 5 1 12 8 11 10 9  2 6 3 4 7 5 1 12 8 11 10 9 x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a)); x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a)); 6

6

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

  • жақша ішіндегі өрнекті есептеу солдан оңға қарай көбейту, бөлу, div , mod солдан оңға қарай қосу және алу
  • жақша ішіндегі өрнекті есептеу
  • солдан оңға қарай көбейту, бөлу, div , mod
  • солдан оңға қарай қосу және алу

2 3 5 4 1 7 8 6 9

  • 2 3 5 4 1 7 8 6 9

z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;

  • z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;

2 6 3 4 7 5 1 12 8 11 10 9

  • 2 6 3 4 7 5 1 12 8 11 10 9

x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

  • x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

6

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

6

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

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

Шығарылуы:

program qq;

var a, b, c: integer;

begin

read ( a, b );

c := a + b;

writeln ( c );

end.

6

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

6

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

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

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

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

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

25 30

Enter арқылы :

25

30

a

25

b

30

a

25

b

30

17

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

17

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

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

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

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

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

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

17

', i, ' writeln ( '', i:5, ' x := 12.345678; writeln ( '', x, ' writeln ( '', x:10, ' writeln ( '', x:7:2, ' end. барлық символдар саны 15 151.234568E+001 1.23E+001 12.35барлық символдар саны бөлшек бөлігіндегі символдар саны 17" width="640"

17

Шығару форматтары

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

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

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

17

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

17

Толық шығарылуы

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

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

17

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

17

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

«басы» блогі

басы

енгізу a , b

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

c := a + b;

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

шығару c

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

соңы

«соңы» блогі

17

17 Тапсырмалар

17

Тапсырмалар

"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

17

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

17

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

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

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

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

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

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

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

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

b? max:= a; max:= b; шығару max соңы ? Егер a = b? 25" width="640"

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

басы

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

енгізу a,b

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

иә

жоқ

a b?

max:= a;

max:= b;

шығару max

соңы

?

Егер a = b?

25

b then begin end else begin end ; writeln (‘ Екі санның үлкені ', max); end. шартты оператордың толымды түрі max := a ; max := b ; 25" width="640"

25

Нұсқа 1. Программа

program qq;

var a, b, max: integer;

begin

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

read ( a, b );

if a b then begin

end

else begin

end ;

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

end.

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

max := a ;

max := b ;

25

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

25

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

if then begin

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

end

else begin

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

end ;

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

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

25

b then begin a := b; end else b := a; end ; if a b then begin a := b; else begin b := a; end ; end begin 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 ; end begin 25" width="640"

25

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

if a b then begin

a := b;

end

else

b := a;

end ;

if a b then begin

a := b;

else begin

b := a;

end ;

end

begin

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 ;

end

begin

25

a? max:= b; шығару max соңы 29" width="640"

25

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

басы

енгізу a,b

max:= a;

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

иә

жоқ

b a?

max:= b;

шығару max

соңы

29

a then max := b; writeln (‘ Екі санның үлкені ', max); end. шартты оператордың толымсыз түрі 29" width="640"

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.

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

29

b max := a; 29" width="640"

29

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

program qq;

var a, b, max: integer;

begin

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

read ( a, b );

max := b;

if ??? then

???

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

end.

a b

max := a;

29

b then begin a := b; end; else b := a; if a b then begin a := b; else b := a; a := b end if a b then a := b; else b := a; end; if a b then else begin b := a; end ; if b = a then b := a; a := b 29" width="640"

29

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

if a b then begin

a := b;

end;

else b := a;

if a b then begin

a := b;

else b := a;

a := b

end

if a b then

a := b;

else b := a; end;

if a b then

else begin

b := a;

end ;

if b = a then

b := a;

a := b

29

29 Тапсырмалар

29

Тапсырмалар

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

Мысал:

Үш сан енгіз:

4 15 9

Ең үлкен сан 15

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

Мысал:

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

4 15 9 56 4

Ең үлкен сан 5 6

29

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

29

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

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

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

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

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

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

?

Белгілі әдістермен шешуге бола ма ?

35

= 25? иә жоқ x ‘ болмайды ' ‘ болады ' ' болмайды ' жоқ 35" width="640"

35

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

басы

енгізу x

иә

жоқ

x = 25?

иә

жоқ

x

‘ болмайды '

‘ болады '

' болмайды '

жоқ

35

= 25 then if x writeln (‘ Болады ') else writeln (‘ Болмайды ') else writeln (‘ Болмайды '); end. 35" width="640"

35

Нұсқа 1. Программа

program qq;

var x: integer;

begin

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

read ( x );

if x = 25 then

if x

writeln (‘ Болады ')

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

else

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

end.

35

= 25 және x жоқ иә ' болмайды ' ‘ болады ' соңы 38" width="640"

35

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

басы

енгізу x

x = 25 және

x

жоқ

иә

' болмайды '

‘ болады '

соңы

38

= 25) and (x writeln (' Болады ') else writeln (' Б олмайды ') end. күрделі шарт 38" width="640"

38

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

program qq;

var x: integer;

begin

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

read ( x );

if (x = 25) and (x

writeln (' Болады ')

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

end.

күрделі шарт

38

= = тең тең емес 38" width="640"

38

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

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

  • not – ЕМЕС (терістеу, инверсия) and – ЖӘНЕ (логикалық көбейту, конъюнкция, шарттардың бір мезгілде орындалуы) or – НЕМЕСЕ (логикалық қосу, дизъюнкция, ең болмағанда бір шарттың орындалуы) xor – арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)
  • not – ЕМЕС (терістеу, инверсия)
  • and – ЖӘНЕ (логикалық көбейту, конъюнкция, шарттардың бір мезгілде орындалуы)
  • or – НЕМЕСЕ (логикалық қосу, дизъюнкция, ең болмағанда бір шарттың орындалуы)
  • xor – арифметикалық НЕМЕСЕ (екі шарттың екеуін емес, біреуін ғана орындау)

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

= =

тең

тең емес

38

=, =, not and or, xor , =, =, Ерекшелігі – қарапайым шарттардың әрқайсысын жақшамен жабу. Мысал: 4 1 6 2 5 3 if not (a b) or (c d) and (b a) then begin ... end if not (a b) or (c d) and (b a) then begin ... end 38" width="640"

38

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

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

  • жақша ішіндегі өрнектер
  • жақша ішіндегі өрнектер
  • 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

  • if not (a b) or (c d) and (b a) then begin ... end

38

b) (a not (a = b) or (c = d) (a (a c) not (a b) (a not (a = b) or (c = d) (a (a c) x -тің қандай мәндерінде шарт ақиқат болады : (x (x 10) (x 6) and (x (x 6) and (x 10) (x (x 10) (x 6) or (x (x 6) or (x 10) (x (x 10) (x 6) and (x (x 6) and (x 10) (x (x 10) (x 6) or (x (x 6) or (x 10) True True True True FALSE (-  , 6) x  (6, 10) x 10 (10,  ) (-  , 10) x (-  , 6)  (10,  ) (-  ,  ) x 6 (6,  )" width="640"

38

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

a := 2; b := 3; c := 4; болған жағдайда ақиқат немесе жалған:

not (a b)

(a

not (a = b) or (c = d)

(a

(a c)

  • not (a b) (a not (a = b) or (c = d) (a (a c)

x -тің қандай мәндерінде шарт ақиқат болады :

(x

(x 10)

(x 6) and (x

(x 6) and (x 10)

(x

(x 10)

(x 6) or (x

(x 6) or (x 10)

  • (x (x 10) (x 6) and (x (x 6) and (x 10) (x (x 10) (x 6) or (x (x 6) or (x 10)

True

True

True

True

FALSE

(-  , 6)

x

(6, 10)

x 10

(10,  )

(-  , 10)

x

(-  , 6)  (10,  )

(-  ,  )

x 6

(6,  )

Тапсырмалар

Тапсырмалар

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

Мысал:

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

4

көктем

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

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

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

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

Циклдер

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

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

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

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

?

Белгілі әдістермен шешуге бола ма ?

45

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

45

Алгоритм

басы

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

i := 1;

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

жоқ

i

соңы

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

иә

i2 := i * i;

i3 := i2 * i;

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

i, i2, i3

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

i := i + 1;

45

45 Алгоритм (

45

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

«цикл»блогі

басы

i := 1,8

соңы

i2 := i * i;

i3 := i2 * i;

цикл денесі

i, i2, i3

45

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

45

Программа

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.

бастапқы мән

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

ең соңғы мән

45

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

45

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

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

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

Шығарылуы:

down to

for i:=8 1 do begin

i2 := i*i;

i3 := i2*i;

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

end;

45

45 Айнымалысы бар цикл Айнымалының 1-ге артуы:  for    :=    to   do  begin  { цикл денесі }   end; Айнымалының 1-ге кемуі:  for    :=       downto   do  begin  { цикл денесі }   end; 45

45

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

Айнымалының 1-ге артуы:

for := to

do begin

{ цикл денесі }

end;

Айнымалының 1-ге кемуі:

for := downto

do begin

{ цикл денесі }

end;

45

45 Айнымалысы бар цикл Ерекшеліктері: цикл айнымалысының мәні бүтін болуы керек ( integer ) цикл айнымалысының өзгеру қадамы қашанда 1-ге ( to )  немесе -1-ге ( downto ) тең егер цикл денесінде бір ғана оператор болса, begin  мен end  сөздерін жазбай кетуге болады : егер соңғы мән алғашқы мәннен кіші болса, ( to ) циклы бірде бір рет орындалмайды ( шартты циклдың басында тексеру , шартты алдын ала тексеретін цикл) цикл айнымалысының мәні бүтін болуы керек ( integer ) цикл айнымалысының өзгеру қадамы қашанда 1-ге ( to )  немесе -1-ге ( downto ) тең егер цикл денесінде бір ғана оператор болса, begin  мен end  сөздерін жазбай кетуге болады : егер соңғы мән алғашқы мәннен кіші болса, ( to ) циклы бірде бір рет орындалмайды ( шартты циклдың басында тексеру , шартты алдын ала тексеретін цикл) for i:= 1  to 8 do  writeln( ' Привет ' ); 45

45

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

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

  • цикл айнымалысының мәні бүтін болуы керек ( integer ) цикл айнымалысының өзгеру қадамы қашанда 1-ге ( to ) немесе -1-ге ( downto ) тең егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады : егер соңғы мән алғашқы мәннен кіші болса, ( to ) циклы бірде бір рет орындалмайды ( шартты циклдың басында тексеру , шартты алдын ала тексеретін цикл)
  • цикл айнымалысының мәні бүтін болуы керек ( integer )
  • цикл айнымалысының өзгеру қадамы қашанда 1-ге ( to ) немесе -1-ге ( downto ) тең
  • егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады :
  • егер соңғы мән алғашқы мәннен кіші болса, ( to ) циклы бірде бір рет орындалмайды ( шартты циклдың басында тексеру , шартты алдын ала тексеретін цикл)

for i:= 1 to 8 do

writeln( ' Привет ' );

45

45 Айнымалысы бар цикл Ерекшеліктері: Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?) Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді: Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?) Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді: n := 8; for i:= 1  to n do begin  writeln( ' Салем ' );  n := n + 1; end; мүдіріп қалу жоқ 45

45

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

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

  • Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?) Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:
  • Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?)
  • Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:

n := 8;

for i:= 1 to n do begin

writeln( ' Салем ' );

n := n + 1;

end;

мүдіріп қалу жоқ

45

45 Цикл неше рет орындалған? 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 down to 3 do  a  :=  a+1; a  =  1 a  :=  1; for i:= 3 down to 1 do  a  :=  a+1; a  =  4 45

45

Цикл неше рет орындалған?

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 down to 3 do a := a+1;

a = 1

a := 1;

for i:= 3 down to 1 do a := a+1;

a = 4

45

45 Қадамдарды қалай өзгертуге болады? Есеп. Экранға 1-ден 9-ға дейінгі тақ сандардың квадраттары мен кубтарын есептеп шығару. Ерекшелігі: цикл айнымалысы 2-ге артып отыру керек. Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы мүмкін. Шығарылуы: Тек қана тақ i -лермен орындалады 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; i mod 2 = 1 i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); 45

45

Қадамдарды қалай өзгертуге болады?

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

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

Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы мүмкін.

Шығарылуы:

Тек қана тақ i -лермен орындалады

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;

i mod 2 = 1

i2 := i*i;

i3 := i2*i;

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

45

45 Қадамдарды қалай өзгертуге болады? – II Идея: Тек 5 санды ғана шығару керек, k  айнымалысы  1-ден 5-ке дейін өзгереді.  i -дің бастапқы мәні  1-ге тең , циклдың әр қадамы сайын i 2-ге артып отырады. Шығарылуы: i := 1;   ???  for k:= 1 to 5 do begin  i2 := i*i;  i3 := i2*i;  writeln(i:4, i2:4, i3:4);  ???   end; i := i + 2; 45

45

Қадамдарды қалай өзгертуге болады? – II

Идея: Тек 5 санды ғана шығару керек, k айнымалысы 1-ден 5-ке дейін өзгереді. i -дің бастапқы мәні 1-ге тең , циклдың әр қадамы сайын i 2-ге артып отырады.

Шығарылуы:

i := 1;

???

for k:= 1 to 5 do begin

i2 := i*i;

i3 := i2*i;

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

???

end;

i := i + 2;

45

45 Қадамдарды қалай өзгертуге болады? – III Идея: Тек 5 санды ғана шығару керек, k  айнымылысы  1-ден 5-ке дейін өзгереді.  k -ны біле отырып , i -ді есептеу қажет . Шығарылуы : i  =  2k-1 k 1 i 1 2 3 3 5 4 7 5 9  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;

45

Қадамдарды қалай өзгертуге болады? – III

Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден 5-ке дейін өзгереді. k -ны біле отырып , i -ді есептеу қажет .

Шығарылуы :

i = 2k-1

k

1

i

1

2

3

3

5

4

7

5

9

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. Ш артты ц иклдер

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

Тақырып 5. Ш артты ц иклдер

Қадамдар саны белгісіз цикл Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ? Есеп: ( Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз. Мәселе: неше қадам жасау керектігі белгісіз. Шығарылуы: n  =  0  болғанда тоқтау керек , яғни

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

Мысал: Бөренеден ағаштың бұтағын кесіп алу керек. Қолараны әрі-бері неше рет қозғалтуымыз керек,. ?

Есеп: (

Шығару амалы: Ең соңғы орналасқан цифрларды кезекпен алып тастай отырып, санаушыны арттырамыз.

Мәселе: неше қадам жасау керектігі белгісіз.

Шығарылуы: n = 0 болғанда тоқтау керек , яғни " n 0 " болғанша орындай беру керек .

n

123

count

12

0

1

1

0

2

3

Алгоритм басы енгізу n цифрлардың санаушысын нөлге теңестіру count  := 0 ; “ n    0 “  болғанша орындай беру n    0? жоқ иә count count  :=  count  +  1;  n  :=  n  div  10; соңы

Алгоритм

басы

енгізу n

цифрлардың санаушысын нөлге теңестіру

count := 0 ;

“ n 0 “ болғанша орындай беру

n 0?

жоқ

иә

count

count := count + 1;

n := n div 10;

соңы

Программа 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. , n1: integer; n1 := n;

Программа

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.

, n1: integer;

n1 := n;

" n 0 “ болғанша орындай беру

while n 0 do begin

count := count + 1;

n := n div 10;

end;

n1,

Шартты цикл  while    do  begin  { цикл денесі }   end; Ерекшеліктері: күрделі шарттарды қолдануға болады: егер цикл денесінде бір ғана оператор болса, begin  мен  end  сөздерін жазбай кетуге болады : күрделі шарттарды қолдануға болады: егер цикл денесінде бір ғана оператор болса, begin  мен  end  сөздерін жазбай кетуге болады : while (a { ц икл денесі } end; while a  a := a + 1;

Шартты цикл

while do begin

{ цикл денесі }

end;

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

  • күрделі шарттарды қолдануға болады: егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады :
  • күрделі шарттарды қолдануға болады:
  • егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады :

while (a

{ ц икл денесі }

end;

while a

a := a + 1;

b d o a := a – b; a := 4; b := 6; while a d := a + b;" width="640"

Шартты цикл

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

  • циклге кірген сайын шарт есептеліп отырады егер шарт циклге кіруде жалған болса, цикл бірде-бір рет орындалмайды егер шарт түбінде жалған болмайтын болса, программаның жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)
  • циклге кірген сайын шарт есептеліп отырады
  • егер шарт циклге кіруде жалған болса, цикл бірде-бір рет орындалмайды
  • егер шарт түбінде жалған болмайтын болса, программаның жұмысы дағдарысқа ұшырайды (тоқтаусыз орындала береді)

a := 4; b := 6;

while a b d o

a := a – b;

a := 4; b := 6;

while a

d := a + b;

b d o a := a + 1; 1 рет b = -2 a := 4; b := 6; while a дағдарысқа ұшырау a := 4; b := 6; while a" width="640"

Цикл неше рет орындалған ?

2 рет

a = 6

a := 4; b := 6;

while a

1 рет

a = 10

a := 4; b := 6;

while a

0 рет

a = 4

a := 4; b := 6;

while a b d o a := a + 1;

1 рет b = -2

a := 4; b := 6;

while a

дағдарысқа ұшырау

a := 4; b := 6;

while a

= b d o begin { цикл денесі } i := i - 1; end; for i:=a downto b d o begin { цикл денесі } end; for - ны while –ауыстыруға қашанда болады . while - ды for -ға , циклдегі қадамдар саны алдын ала белгілі болған жағдайда ғана ауыстыруға болады." width="640"

For - ны while -ға ауыстыру және керісінше

i := 1;

while i

{ цикл денесі }

i := i + 1;

end;

for i:=1 to 10 d o begin

{ цикл денесі }

end;

i := a;

while i = b d o begin

{ цикл денесі }

i := i - 1;

end;

for i:=a downto b d o

begin

{ цикл денесі }

end;

for - ны while –ауыстыруға қашанда болады .

while - ды for -ға , циклдегі қадамдар саны алдын ала белгілі болған жағдайда ғана ауыстыруға болады.

Тапсырмалар

Тапсырмалар

"4": Бүтін сан енгізіп, ондағы цифрлардың қосындысын табу.

Мысал:

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

1234

1234 санындағы цифрлардың қосындысы 10-ға тең.

"5": Бүтін сан енгізіп, оның жазылуында бірдей цифрларлардың бар-жоғын анықтау.

Мысал:

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

1234 1224

Жоқ. Бар.

Тізбектер Мысалдар: 1 , 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1, 2, 4, 8 , 1 6 , 32 , …  1 , 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1, 2, 4, 8 , 1 6 , 32 , … a n  =  n a 1  =  1, a n +1  =  a n +1 a 1  =  1, a n +1  =  a n  +  n a 1  =  1, a n +1  = 2 a n a n  = 2 n-1 b 1  =  1, b n +1  =  b n +1 c 1  =  2, c n +1  = 2 c n

Тізбектер

Мысалдар:

  • 1 , 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1, 2, 4, 8 , 1 6 , 32 , …
  • 1 , 2, 3, 4, 5, …
  • 1, 2, 4, 7, 11, 16, …
  • 1, 2, 4, 8 , 1 6 , 32 , …

a n = n

a 1 = 1, a n +1 = a n +1

a 1 = 1, a n +1 = a n + n

a 1 = 1, a n +1 = 2 a n

a n = 2 n-1

b 1 = 1, b n +1 = b n +1

c 1 = 2, c n +1 = 2 c n

Тізбектер Есеп: модулі бойынша 0,001-ден асып түсетін  тізбектегі барлық элементтердің қосындысын табу: Тізбек элементтері (№2-ден бастап ): b  :=  b+1; n b 1 c 1 2 3 2 z 2 4 3 -1 4 4 1 8 5 16 ... -1 5 ... 1 32 ... -1 ... c  :=  2*c; z  :=  -z;

Тізбектер

Есеп: модулі бойынша 0,001-ден асып түсетін

тізбектегі барлық элементтердің қосындысын табу:

Тізбек элементтері (№2-ден бастап ):

b := b+1;

n

b

1

c

1

2

3

2

z

2

4

3

-1

4

4

1

8

5

16

...

-1

5

...

1

32

...

-1

...

c := 2*c;

z := -z;

0.001? жоқ иә S S := S + a; жаңа элемент соңы a := z*b/c; b := b + 1; c := 2*c; z := -z; өзгеріс ? Қайта қою керек пе? 69" width="640"

Алгоритм

басы

бастапқы мәндер

S := 0 ; b := 1; c := 2 ; z := -1; a := 1;

S := 0 ;

бірінші элемент

a := 1;

|a| 0.001?

жоқ

иә

S

S := S + a;

жаңа элемент

соңы

a := z*b/c;

b := b + 1; c := 2*c; z := -z;

өзгеріс

?

Қайта қою керек пе?

69

0.001 do begin S := S + a; a := z * b / c; z := - z; b := b + 1; c := c * 2; end; writeln('S =', S:10:3); end. бастапқы мәндер S := 0; z := -1; b := 1; c := 2; a := 1; қосындының артуы z := - z; b := b + 1; c := c * 2; тізбек элементін есепке алу келесі қосылғышқа өту 69" width="640"

69

Программа

program qq;

var b, c, z: integer;

S, a: real;

begin

S := 0; z := -1;

b := 1; c := 2; a := 1;

while abs(a) 0.001 do begin

S := S + a;

a := z * b / c;

z := - z;

b := b + 1;

c := c * 2;

end;

writeln('S =', S:10:3);

end.

бастапқы мәндер

S := 0; z := -1;

b := 1; c := 2; a := 1;

қосындының артуы

z := - z;

b := b + 1;

c := c * 2;

тізбек элементін есепке алу

келесі қосылғышқа өту

69

69 Тапсырмалар

69

Тапсырмалар

"4": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :

Жауап:

S = 1.157

"5": Тізбектегі элементтердің қосындысын 0,001 дәлдікпен табу :

Жауап:

S = 1.220

69

шартын тексеруді циклдың соңында орындау керек. ( соңғышартты цикл). Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады. 69" width="640"

69

Соңғышартты цикл

Есеп: Бүтін оң сан енгізіп(

Мәселе: Теріс санның немесе нөлдің енгізілмеуін қалай қадағалауға болады?

Шығарылуы: Егер бұрыс сан енгізілсе,берілгендерді енгізу үшін кері оралу (цикл!).

Ерекшелігі: Цикл денесі кемінде бір рет орындалады. = шартын тексеруді циклдың соңында орындау керек. ( соңғышартты цикл).

Соңғышартты цикл – шарттың тексерілуі циклдың соңында орындалатын цикл түрін айтады.

69

0? жоқ ШЫҒУДЫҢ шарты иә негізгі алгоритм «типтік процесс» блогі соңы 69" width="640"

69

Соңғышартты цикл: алгоритм

басы

енгізу n

цикл денесі

n 0?

жоқ

ШЫҒУДЫҢ шарты

иә

негізгі алгоритм

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

соңы

69

0; ... { негізгі алгоритм } end. repeat writeln(‘ Оң сан енгіз '); read(n); until n 0; ШЫҒУДЫҢ шарты until n 0; Ерекшеліктері: цикл денесі кемінде бір рет орындалады until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады цикл денесі кемінде бір рет орындалады until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады 69" width="640"

69

Программа

program qq;

var n: integer;

begin

repeat

writeln(' Введите положительное число ');

read(n);

until n 0;

... { негізгі алгоритм }

end.

repeat

writeln(‘ Оң сан енгіз ');

read(n);

until n 0;

ШЫҒУДЫҢ шарты

until n 0;

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

  • цикл денесі кемінде бір рет орындалады until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады
  • цикл денесі кемінде бір рет орындалады
  • until ("…болмайынша") сөзінен кейін циклдан ШЫҒУДЫҢ шарты қойылады

69

b; 1 рет a = 10 a := 4; b := 6; repeat a := a + b ; until a b; Мүдіріп қалу a := 4; b := 6; repeat a := a + b ; until a a := 4; b := 6; repeat b := a - b ; until a 2 рет b = 6 a := 4; b := 6; repeat a := a + 2 ; until a Мүдіріп қалу 69" width="640"

69

Цикл неше рет орындалған ?

3 рет

a = 7

a := 4; b := 6;

repeat a := a + 1; until a b;

1 рет

a = 10

a := 4; b := 6;

repeat a := a + b ; until a b;

Мүдіріп қалу

a := 4; b := 6;

repeat a := a + b ; until a

a := 4; b := 6;

repeat b := a - b ; until a

2 рет

b = 6

a := 4; b := 6;

repeat a := a + 2 ; until a

Мүдіріп қалу

69

69 Тапсырмалар (бұрыс енгізуден қорғау) = 0 сан енгіз : = 0 сан енгіз : -234 1233 Оң сан енгізу керек. Жоқ = 0 сан енгіз : 1234 Иә "5": Натурал сан енгізіп,қандай цифрлардың бірнеше рет кездесетіндігін анықтау. Мысал: = 0 сан енгіз : = 0 сан енгіз : 2323 1234 2, 3 қайталанады Қайталану жоқ. 69" width="640"

69

Тапсырмалар (бұрыс енгізуден қорғау)

"4": Натурал сан енгізіп, сол сандағы цифрлардың қосындысы 10-ға тең екендігінің дұрыстығын анықтау.

Мысал:

= 0 сан енгіз : = 0 сан енгіз :

-234 1233

Оң сан енгізу керек. Жоқ

= 0 сан енгіз :

1234

Иә

"5": Натурал сан енгізіп,қандай цифрлардың бірнеше рет кездесетіндігін анықтау.

Мысал:

= 0 сан енгіз : = 0 сан енгіз :

2323 1234

2, 3 қайталанады Қайталану жоқ.

69

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

69

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

Тақырып 6 . Таңдау операторы

Таңдау операторы Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын шығару. Шығарылуы: Айдағы күндер саны 28 күн – 2 (ақпан) 30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша) 31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде),  8 (тамыз), 10 (қазан), 12 (желтоқсан) 28 күн – 2 (ақпан) 30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша) 31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде),  8 (тамыз), 10 (қазан), 12 (желтоқсан) Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес бірнеше нұсқаның бірін таңдау. ?  Бұған дейінгі қолданған әдістермен шешуге бола ма ? 78

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

Есеп: Ай нөмірін енгізіп, осы айдағы күндердің санын шығару.

Шығарылуы: Айдағы күндер саны

28 күн – 2 (ақпан)

30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша)

31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде), 8 (тамыз), 10 (қазан), 12 (желтоқсан)

  • 28 күн – 2 (ақпан) 30 күн – 4 (сәуір), 6 (маусым), 9 (қыркүйек), 11 (қараша) 31 күн – 1 (қаңтар), 3 (наурыз), 5 (мамыр), 7 (шілде), 8 (тамыз), 10 (қазан), 12 (желтоқсан)

Ерекшелігі: Екі нұсқаның емес, айдың нөміріне сәйкес бірнеше нұсқаның бірін таңдау.

?

Бұған дейінгі қолданған әдістермен шешуге бола ма ?

78

78 Алгоритм басы енгізу  M иә M  =  1? таңдау операторы D  :=  31; жоқ иә M  =  2? D  :=  28; жоқ иә M  =  12? D  :=  31; жоқ шығару  D ешбір нұсқасы сәйкес келген жоқ қате соңы 78

78

Алгоритм

басы

енгізу M

иә

M = 1?

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

D := 31;

жоқ

иә

M = 2?

D := 28;

жоқ

иә

M = 12?

D := 31;

жоқ

шығару D

ешбір нұсқасы сәйкес келген жоқ

қате

соңы

78

0 then writeln(‘ Бұл айда ', D, ' күн . ') else writeln(' Айдың нөмірі дұрыс емес '); end. case M of 2: begin D := 28; end; 4,6,9,11: begin D := 30; end; 1,3,5,7,8,10,12: D := 31; else D := -1; end; ешбір нұсқасы сәйкес келген жоқ 78" width="640"

78

Программа

program qq;

var M, D: integer;

begin

writeln(‘ Айдың нөмірін енгіз : ');

read ( M );

case M of

2: begin D := 28; end;

4,6,9,11: begin D := 30; end;

1,3,5,7,8,10,12: D := 31;

else D := -1;

end;

if D 0 then

writeln(‘ Бұл айда ', D, ' күн . ')

else

writeln(' Айдың нөмірі дұрыс емес ');

end.

case M of

2: begin D := 28; end;

4,6,9,11: begin D := 30; end;

1,3,5,7,8,10,12: D := 31;

else D := -1;

end;

ешбір нұсқасы сәйкес келген жоқ

78

78 Таңдау операторы Ерекшеліктері:  case -тен кейін айнымалы атауы немесе бүтін типті ( integer )  арифметикалық өрнек  case -тен кейін айнымалы атауы немесе бүтін типті ( integer )  арифметикалық өрнек  немесе символдық типті ( char ) арифметикалық өрнек  немесе символдық типті ( char ) арифметикалық өрнек case i+3  of  1: begin a := b; end;  2: begin a := c; end; end; var c: char; ... case c  of  ' а ': writeln(‘ Бөкен ');  ' б ': writeln(' Борсық ');  else writeln(‘ Білмеймін '); end; болуы мүмкін 78

78

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

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

  • case -тен кейін айнымалы атауы немесе бүтін типті ( integer ) арифметикалық өрнек
  • case -тен кейін айнымалы атауы немесе бүтін типті ( integer ) арифметикалық өрнек

немесе символдық типті ( char ) арифметикалық өрнек

  • немесе символдық типті ( char ) арифметикалық өрнек

case i+3 of

1: begin a := b; end;

2: begin a := c; end;

end;

var c: char;

...

case c of

' а ': writeln(‘ Бөкен ');

' б ': writeln(' Борсық ');

else writeln(‘ Білмеймін ');

end;

болуы мүмкін

78

78 Таңдау операторы Ерекшеліктері: егер бір ғана операторды орындау керек болса, begin  мен  end  сөздерін жазбай кетуге болады бірдей екі мәнді қоюға болмайды егер бір ғана операторды орындау керек болса, begin  мен  end  сөздерін жазбай кетуге болады бірдей екі мәнді қоюға болмайды case i+3  of  1: a := b;  2 : a := c; end; case i+3  of  1: a := b;  1: a := c; end; 82

78

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

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

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

case i+3 of

1: a := b;

2 : a := c;

end;

case i+3 of

1: a := b;

1: a := c;

end;

82

82 Таңдау операторы Ерекшеліктері: бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет case i  of  1: a := b;  2,4 ,6 : a := c;  10..15: a := d;  20,21,25..30: a := e;  else writeln(‘ Қате ');  end; тізбелеп санап шығу диапазон аралас 82

82

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

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

  • бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет
  • бірдей әрекеттер орындалатын кезде қолданылатын мәндерді топтастыру қажет

case i of

1: a := b;

2,4 ,6 : a := c;

10..15: a := d;

20,21,25..30: a := e;

else writeln(‘ Қате ');

end;

тізбелеп санап шығу

диапазон

аралас

82

82 Қай жері дұрыс емес ? case  a  of  2: begin a := b;  4: a := c; end; case  a  of  2: a := b  4: a := c end; ; case  a  of  2..5: a := b;  4: a := c; end; case  a  of  0..2: a := b;  6..3: a := c; end; 3..6: begin case  a+c/2  of  2: a := b;  4: a := c; end; case  a  of  2: a := b; d := 0;  4: a := c; end; end; 84

82

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

case a of

2: begin a := b;

4: a := c;

end;

case a of

2: a := b

4: a := c

end;

;

case a of

2..5: a := b;

4: a := c;

end;

case a of

0..2: a := b;

6..3: a := c;

end;

3..6:

begin

case a+c/2 of

2: a := b;

4: a := c;

end;

case a of

2: a := b; d := 0;

4: a := c;

end;

end;

84

84 Тапсырмалар (бұрыс енгізуден қорғаумен)

84

Тапсырмалар (бұрыс енгізуден қорғаумен)

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

Мысал:

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

-2 2

Ай нөмірін енгіз: Бұл айда 28 күн бар.

1 1 Сіз 0 рет қате енгіздіңіз.

Бұл айда 30 күн бар.

Сіз 1 рет қате енгіздіңіз.

"5": Айдың нөмірі мен күннің нөмірін енгізіп, Жаңа жылға дейін қалған күндердің санын анықтау.

Мысал:

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

12

Күнді енгіз:

25

Жаңа жылға дейін 6 күн бар.

84

84 Паскаль тілінде программалау Тақырып 7. Графика

84

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

Тақырып 7. Графика

К оординаталар жүйесі X (0,0) y ( x , y ) x Y

К оординаталар жүйесі

X

(0,0)

y

( x , y )

x

Y

Түстерді басқару C ызықтың түсі мен қалыңдығы , нүктелердің түсі:  Pen ( 1, 255, 0, 0 );  Pen ( 1, 255, 0, 0 ); Бояудың түсі мен стилі:  Brush ( 1, 0, 255, 0 );  Brush ( 1, 0, 255, 0 ); Мәтін түсі:  TextColor ( 0 , 0, 255 );  TextColor ( 0 , 0, 255 ); B ( blue ) 0..255 R ( red ) 0..255 G ( green ) 0..255 сызықтың қалыңдығы R G B 0 – өшіру 1 - қосу R G B

Түстерді басқару

C ызықтың түсі мен қалыңдығы , нүктелердің түсі:

Pen ( 1, 255, 0, 0 );

  • Pen ( 1, 255, 0, 0 );

Бояудың түсі мен стилі:

Brush ( 1, 0, 255, 0 );

  • Brush ( 1, 0, 255, 0 );

Мәтін түсі:

TextColor ( 0 , 0, 255 );

  • TextColor ( 0 , 0, 255 );

B ( blue )

0..255

R ( red )

0..255

G ( green )

0..255

сызықтың қалыңдығы

R

G

B

0 – өшіру

1 - қосу

R

G

B

Нүктелер, кесінділер және қисық сызықтар ( x , y ) Pen  (1, 0, 0, 255) ; Point  (x, y) ; ( x 1 , y 1 ) Pen  (1, 0, 255, 0) ; Line (x1, y1, x2, y2) ; ( x 2 , y 2 ) ( x 2 , y 2 ) ( x 1 , y 1 ) Pen  (1, 255, 0, 0) ; MoveTo (x1, y1) ;   LineTo (x2, y2) ; LineTo (x3, y3) ; LineTo (x4, y4) ; LineTo (x5, y5) ; ( x 3 , y 3 ) ( x 5 , y 5 ) ( x 4 , y 4 ) 89

Нүктелер, кесінділер және қисық сызықтар

( x , y )

Pen (1, 0, 0, 255) ;

Point (x, y) ;

( x 1 , y 1 )

Pen (1, 0, 255, 0) ; Line (x1, y1, x2, y2) ;

( x 2 , y 2 )

( x 2 , y 2 )

( x 1 , y 1 )

Pen (1, 255, 0, 0) ; MoveTo (x1, y1) ; LineTo (x2, y2) ;

LineTo (x3, y3) ;

LineTo (x4, y4) ;

LineTo (x5, y5) ;

( x 3 , y 3 )

( x 5 , y 5 )

( x 4 , y 4 )

89

89 Фигуралардың ішін бояу ( x 1 , y 1 ) Pen  (1, 0, 0, 255) ; Brush  (1, 255, 255, 0) ; Rectangle  (x1, y1, x2, y2) ; ( x 2 , y 2 ) ( x 1 , y 1 ) Pen  (1, 255, 0, 0) ; Brush  (1, 0, 255, 0) ; Ellipse  (x1, y1, x2, y2) ; ( x 2 , y 2 ) ( x , y ) Brush  (1, 100, 200, 255) ; Fill  (x, y) ; 90

89

Фигуралардың ішін бояу

( x 1 , y 1 )

Pen (1, 0, 0, 255) ;

Brush (1, 255, 255, 0) ;

Rectangle (x1, y1, x2, y2) ;

( x 2 , y 2 )

( x 1 , y 1 )

Pen (1, 255, 0, 0) ;

Brush (1, 0, 255, 0) ;

Ellipse (x1, y1, x2, y2) ;

( x 2 , y 2 )

( x , y )

Brush (1, 100, 200, 255) ;

Fill (x, y) ;

90

90 Салем! Мәтін TextColor  (0, 0, 255) ; Brush  (1, 255, 255, 0) ; Font  (20, 30 , 600 ) ; MoveTo  (x, y) ; writeln  (‘ Салем ! ') ; ( x , y ) қанықтылық:  400 – қалыпты  600 – қалың  өлшемі 10 пиксель айналу бұрышы 30 о 90

90

Салем!

Мәтін

TextColor (0, 0, 255) ;

Brush (1, 255, 255, 0) ;

Font (20, 30 , 600 ) ;

MoveTo (x, y) ;

writeln (‘ Салем ! ') ;

( x , y )

қанықтылық:

400 – қалыпты

600 – қалың

өлшемі

10 пиксель

айналу бұрышы

30 о

90

90 Мысал p rogram qq; b egin  Pen(2,  255, 0, 255);  Brush(1,  0, 0, 255);  Rectangle(100, 100, 300, 200);  MoveTo(100, 100);  LineTo(200, 50);  LineTo(300, 100);  Brush(1, 255 , 255, 0);  Fill(200, 75);  Pen(2,  255, 255 , 255 );  Brush(1, 0 , 255, 0);  Ellipse(150, 100, 250, 200); end. (200, 50) (100, 100) (300, 200) 90

90

Мысал

p rogram qq;

b egin

Pen(2, 255, 0, 255);

Brush(1, 0, 0, 255);

Rectangle(100, 100, 300, 200);

MoveTo(100, 100);

LineTo(200, 50);

LineTo(300, 100);

Brush(1, 255 , 255, 0);

Fill(200, 75);

Pen(2, 255, 255 , 255 );

Brush(1, 0 , 255, 0);

Ellipse(150, 100, 250, 200);

end.

(200, 50)

(100, 100)

(300, 200)

90

90 Тапсырмалар

90

Тапсырмалар

"4": « Бақа "

"5": « Тәж "

93

93 Штрихтер салу N сызық  ( N=5) ( x 1 , y 1 ) Rectangle  (x1, y1, x2, y2) ; Line( x1+h, y1, x1+h, y2) ; Line( x1+2*h, y1, x1+2*h, y2) ; Line( x1+3*h, y1, x1+3*h, y2) ; ... h ( x 2 , y 2 ) x x h := (x2 – x1) / (N + 1); Rectangle  (x1, y1, x2, y2) ; x := x1 + h; for i:=1 to N do begin  Line( round(x), y1, round(x), y2) ;  x := x + h; end; var x, h: real ; жақын орналасқан бүтін санға дейін дөңгелектеу

93

Штрихтер салу

N сызық ( N=5)

( x 1 , y 1 )

Rectangle (x1, y1, x2, y2) ;

Line( x1+h, y1, x1+h, y2) ;

Line( x1+2*h, y1, x1+2*h, y2) ;

Line( x1+3*h, y1, x1+3*h, y2) ;

...

h

( x 2 , y 2 )

x

x

h := (x2 – x1) / (N + 1);

Rectangle (x1, y1, x2, y2) ;

x := x1 + h;

for i:=1 to N do begin

Line( round(x), y1, round(x), y2) ;

x := x + h;

end;

var x, h: real ;

жақын орналасқан бүтін санға дейін дөңгелектеу

Түсті қалай өзгертуге болады? ( x 1 , y 1 ) x сұр: R = G = B Brush ( 1, c, c, c ); Fill ( ??? , ??? ); ( x-1 , y 1 +1 ) Өзгеру қадамы c: ( x 2 , y 2 ) hc := 255 div (N + 1); c := 0; for i:=1 to N+1 do begin  Line (round(x), y1, round(x), y2) ;  Brush (1, c, c, c);  Fill (round(x)-1, y1+1);  x := x + h; c := c + hc; end; var c, hc: integer;

Түсті қалай өзгертуге болады?

( x 1 , y 1 )

x

сұр: R = G = B

Brush ( 1, c, c, c );

Fill ( ??? , ??? );

( x-1 , y 1 +1 )

Өзгеру қадамы c:

( x 2 , y 2 )

hc := 255 div (N + 1);

c := 0;

for i:=1 to N+1 do begin

Line (round(x), y1, round(x), y2) ;

Brush (1, c, c, c);

Fill (round(x)-1, y1+1);

x := x + h; c := c + hc;

end;

var c, hc: integer;

Штрихтер салу a ( x 1 , y 1 ) ( x 3 + a , y 1 ) Line( x1+h, y1, x1+h-a, y2) ; Line( x1+2*h, y1, x1+2*h-a, y2) ; Line( x1+3*h, y1, x1+3*h-a, y2) ; ... ( x 2 , y 2 ) ( x 3 , y 2 ) h x x-a h := (x3 – x2) / (N + 1); a := x1 – x2; x := x1 + h; for i:=1 to N do begin  Line( round(x), y1, round(x-a), y2) ;  x := x + h; end;

Штрихтер салу

a

( x 1 , y 1 )

( x 3 + a , y 1 )

Line( x1+h, y1, x1+h-a, y2) ;

Line( x1+2*h, y1, x1+2*h-a, y2) ;

Line( x1+3*h, y1, x1+3*h-a, y2) ;

...

( x 2 , y 2 )

( x 3 , y 2 )

h

x

x-a

h := (x3 – x2) / (N + 1);

a := x1 – x2;

x := x1 + h;

for i:=1 to N do begin

Line( round(x), y1, round(x-a), y2) ;

x := x + h;

end;

Штрихтер салу ( x 1 , y 1 ) h x Line( x1, y1+hy, x1+hx, y1+hy) ; Line( x1, y1+2*hy, x1+2*hx, y1+2*hy) ; Line( x1, y1+3*hy, x1+3*hx, y1+3*hy) ; ... h y y x y hx := (x2 – x1) / (N + 1); hy := (y2 – y1) / (N + 1); x := x1 + hx; y := y1 + hy; for i:=1 to N do begin  Line( x1, round(y), round(x), round(y)) ;  x := x + hx; y := y + hy; end; ( x 2 , y 2 )

Штрихтер салу

( x 1 , y 1 )

h x

Line( x1, y1+hy, x1+hx, y1+hy) ;

Line( x1, y1+2*hy, x1+2*hx, y1+2*hy) ;

Line( x1, y1+3*hy, x1+3*hx, y1+3*hy) ;

...

h y

y

x

y

hx := (x2 – x1) / (N + 1);

hy := (y2 – y1) / (N + 1);

x := x1 + hx; y := y1 + hy;

for i:=1 to N do begin

Line( x1, round(y), round(x), round(y)) ;

x := x + hx; y := y + hy;

end;

( x 2 , y 2 )

Тапсырмалар

Тапсырмалар

"4": Пернетақтадан штрих сызықтарының санын енгізе отырып фигура салу және оның ішін әр түрлі түстермен бояу.

"5": Пернетақтадан шеңберлердің санын енгізу арқылы шеңбердің суретін салу және оның ішіндегі әр шеңберді әр түрлі түске бояу.

Паскаль тілінде программалау Тақырып 8 . Функциялардың графигі

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

Тақырып 8 . Функциялардың графигі

Функция графиктерін құру Есеп: 0 мен 2 π  интервалы арасындағы y = 3  sin(x) функциясының графигін құру . Анализ: x  =  π /2  болғанда  максималды мән  y max  =  3 x  = 3 π /2  болғанда  минималды мән   y min  =  -3 x  =  π /2  болғанда  максималды мән  y max  =  3 x  = 3 π /2  болғанда  минималды мән   y min  =  -3 Мәселе: функция координалардың математикалық жүйесінде көрсетілген, ал графикті координаталарын пиксельдермен көрсете отырып компьютер экранында шығару керек .

Функция графиктерін құру

Есеп: 0 мен 2 π интервалы арасындағы y = 3 sin(x) функциясының графигін құру .

Анализ:

x = π /2 болғанда максималды мән y max = 3

x = 3 π /2 болғанда минималды мән y min = -3

  • x = π /2 болғанда максималды мән y max = 3 x = 3 π /2 болғанда минималды мән y min = -3

Мәселе: функция координалардың математикалық жүйесінде көрсетілген, ал графикті координаталарын пиксельдермен көрсете отырып компьютер экранында шығару керек .

Координаталардың түрленуі Координаталардың математикалық жүйесі Координаталардың экрандық жүйесі (пиксельдер) Y a ( 0 , 0 ) x y э ( x , y ) b x э y ( x э , y э ) X ( 0 , 0 ) k – масштаб (экрандағы жекелеген кесінді кескінінің ұзындығы) x э  =  a  +  kx y э  =  b  -  ky

Координаталардың түрленуі

Координаталардың математикалық

жүйесі

Координаталардың экрандық жүйесі (пиксельдер)

Y

a

( 0 , 0 )

x

y э

( x , y )

b

x э

y

( x э , y э )

X

( 0 , 0 )

k – масштаб (экрандағы жекелеген кесінді кескінінің ұзындығы)

x э = a + kx

y э = b - ky

Программа program qq; const a = 50; b = 200; k = 50;  xmin = 0; xmax = 6.2832; var x, y, h: real;  xe, ye, w: integer; begin   w := round((xmax - xmin)*k);  Line( a -10, b, a+w, b);  Line(a, 0, a, 2*b);  x := xmin;  h := 0.05;  while x  y := 3*sin(x);  xe := a + round(k*x);  ye := b - round(k*y);  Point  (xe, ye);  x := x + h;  end;  end. 2 π h – x - тің өзгеру қадамы экранда w – ОХ осінің ұзындығы(пиксельдер саны) координаталар осі графиктің құрылу циклі ?  Кемшілігі ? 102

Программа

program qq;

const a = 50; b = 200; k = 50;

xmin = 0; xmax = 6.2832;

var x, y, h: real;

xe, ye, w: integer;

begin

w := round((xmax - xmin)*k);

Line( a -10, b, a+w, b);

Line(a, 0, a, 2*b);

x := xmin; h := 0.05;

while x

y := 3*sin(x);

xe := a + round(k*x);

ye := b - round(k*y);

Point (xe, ye);

x := x + h;

end;

end.

2 π

h – x - тің өзгеру қадамы

экранда

w – ОХ осінің ұзындығы(пиксельдер саны)

координаталар осі

графиктің құрылу циклі

?

Кемшілігі ?

102

102 Нүктелерді қалай біріктіруге болады? Алгоритм: Программа: логикалық айнымалы Егер бірінші нүкте болса  ( x э , y э ) нүктесіне өту әйтпесе  ( x э , y э )  нүктесіне кесінді var first: boolean;  ... begin  ...  first := True;   while x  ...  if first then begin  MoveTo(xe, ye);  first := False;  end  else LineTo(xe, ye);  ...   end;  end. бастапқы мән әрекеттердің нұсқасын таңдау 102

102

Нүктелерді қалай біріктіруге болады?

Алгоритм:

Программа:

логикалық айнымалы

Егер бірінші нүкте болса

( x э , y э ) нүктесіне өту

әйтпесе

( x э , y э ) нүктесіне кесінді

var first: boolean;

...

begin

...

first := True;

while x

...

if first then begin

MoveTo(xe, ye);

first := False;

end

else LineTo(xe, ye);

...

end;

end.

бастапқы мән

әрекеттердің нұсқасын таңдау

102

102 Тапсырмалар

102

Тапсырмалар

"4": [-3,3] интервалы арасында y = x 2 функциясының графигін құру .

"5": Функция графигін құру ( эллипс)

102

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

102

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

Тақырып 9. Процедуралар

Процедуралар Есеп: Мына фигураны құру: Ерекшелігі: Үш ұқсас фигура. жалпы :  өлшемдері, айналу бұрышы айырмашылықтары: координаталары, түстері  жалпы :  өлшемдері, айналу бұрышы айырмашылықтары: координаталары, түстері  ?  Белгілі әдістермен шешуге бола ма ? ?  Неше координата белгілеу керек ? 106

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

Есеп: Мына фигураны құру:

Ерекшелігі: Үш ұқсас фигура.

жалпы : өлшемдері, айналу бұрышы

айырмашылықтары: координаталары, түстері

  • жалпы : өлшемдері, айналу бұрышы айырмашылықтары: координаталары, түстері

?

Белгілі әдістермен шешуге бола ма ?

?

Неше координата белгілеу керек ?

106

106 Процедуралар Процедура – кейбір әрекеттерді орындау үшін қолданылатын көмекші. Қолданылуы: программаның әр жерінде орналасқан бірдей әрекеттерді орындау программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу  программаның әр жерінде орналасқан бірдей әрекеттерді орындау программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу  Негізгі есеп Көмекші есеп3 Көмекші есеп 2 Көмекші есеп1 3 .3 3 .1 2 .3 2 .2 2 .1 1.3 1.2 1.1 3 .2 107

106

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

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

Қолданылуы:

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

Негізгі есеп

Көмекші есеп3

Көмекші есеп 2

Көмекші есеп1

3 .3

3 .1

2 .3

2 .2

2 .1

1.3

1.2

1.1

3 .2

107

107 Процедуралар Есепті орындау тәртібі: бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура) олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура) олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады параметрлер тақырыбы ( x , y -60) procedure Tr( x, y, r, g, b: integer); begin  MoveTo(x, y);  LineTo(x, y-60);  LineTo(x+100, y);  LineTo(x, y);  Brush(1, r, g, b);  Fill(x+20, y-20); end; 60 ( x +100, y ) түс MoveTo(x, y); LineTo(x, y-60); LineTo(x+100, y); LineTo(x, y); Brush(1, r, g, b); Fill(x+20, y-20); 100 ( x , y ) координаталар процедура тұлғасы 108

107

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

Есепті орындау тәртібі:

  • бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура) олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады
  • бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура)
  • олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу
  • айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады

параметрлер

тақырыбы

( x , y -60)

procedure Tr( x, y, r, g, b: integer);

begin

MoveTo(x, y);

LineTo(x, y-60);

LineTo(x+100, y);

LineTo(x, y);

Brush(1, r, g, b);

Fill(x+20, y-20);

end;

60

( x +100, y )

түс

MoveTo(x, y);

LineTo(x, y-60);

LineTo(x+100, y);

LineTo(x, y);

Brush(1, r, g, b);

Fill(x+20, y-20);

100

( x , y )

координаталар

процедура тұлғасы

108

108 Программа формальды параметрлер 60 program qq; begin  Pen(1, 255, 0, 255);  Tr(100, 100, 0, 0, 255);  Tr(200, 100, 0, 255, 0);  Tr(200, 160, 255, 0, 0); end. procedure Tr( x, y, r, g, b: integer); begin  ... end; ( 100 , 100 ) 100 процедураны шақырулар процедура нақтылы параметрлер 109

108

Программа

формальды параметрлер

60

program qq;

begin

Pen(1, 255, 0, 255);

Tr(100, 100, 0, 0, 255);

Tr(200, 100, 0, 255, 0);

Tr(200, 160, 255, 0, 0);

end.

procedure Tr( x, y, r, g, b: integer);

begin

...

end;

( 100 , 100 )

100

процедураны шақырулар

процедура

нақтылы параметрлер

109

109 Процедуралар Ерекшеліктері: барлық процедуралар негізгі программаның үстінде орналасқан процедураның тақырыбында формальды  параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі барлық процедуралар негізгі программаның үстінде орналасқан процедураның тақырыбында формальды  параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі procedure Tr( x, y, r, g, b: integer); Tr  (200, 100, 0, 255, 0); x y r g b 109

109

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

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

  • барлық процедуралар негізгі программаның үстінде орналасқан процедураның тақырыбында формальды параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі
  • барлық процедуралар негізгі программаның үстінде орналасқан
  • процедураның тақырыбында формальды параметрлер жазылады, олар кейде өзгеріп отыратындықтан атаулармен белгіленеді
  • процедураны шақыру кезінде жақша ішінде нақтылы параметрлер(сандар немесе арифметикалық өрнектер) көрсетіледі

procedure Tr( x, y, r, g, b: integer);

Tr (200, 100, 0, 255, 0);

x

y

r

g

b

109

109 Процедуралар Ерекшеліктері: әрбір формалды параметрдің қос нүктеден кейін типі көрсетілуі қажет егер типтері бірдей параметрлер бірінен кейін бірі орналасса, олардың арасы үтірмен ажыратылады процедураның ішіндегі параметрлер айнымалылар секілді қолданылады әрбір формалды параметрдің қос нүктеден кейін типі көрсетілуі қажет егер типтері бірдей параметрлер бірінен кейін бірі орналасса, олардың арасы үтірмен ажыратылады процедураның ішіндегі параметрлер айнымалылар секілді қолданылады procedure A (x: real; y: integer; z: real); procedure A (x, z: real; y, k, l: integer); 109

109

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

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

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

procedure A (x: real; y: integer; z: real);

procedure A (x, z: real; y, k, l: integer);

109

109 Процедуралар Ерекшеліктері: процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды program qq;  procedure A (x, y: integer);  var a, b: real;  begin  a := (x + y)/6;  ...  end; begin  ... end.  procedure A (x, y: integer);  var a, b: real;  begin  a := (x + y)/6;  ...  end; локальді айнымалылар var a, b: real; 109

109

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

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

  • процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды
  • процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды

program qq;

procedure A (x, y: integer);

var a, b: real;

begin

a := (x + y)/6;

...

end;

begin

...

end.

procedure A (x, y: integer);

var a, b: real;

begin

a := (x + y)/6;

...

end;

локальді айнымалылар

var a, b: real;

109

109 Параметр-айнымалылар Есеп: екі айнымалы мәндерінің орындарын ауыстыратын процедураны құру. Ерекшеліктері: Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет. Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет. program qq; var x, y: integer; begin  x := 1; y := 2;  Exchange ( x, y );  writeln ( ’x = ’, x, ’ y = ’, y ); end; procedure Exchange (  a, b: integer ); var c: integer; begin  c := a; a := b; b := c; end; мына процедура параметрлердің көшірмесімен жұмыс істейді x = 1 y = 2 109

109

Параметр-айнымалылар

Есеп: екі айнымалы мәндерінің орындарын ауыстыратын процедураны құру.

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

Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет.

  • Процедурада жасалған өзгертулер шақырушы программаға белгілі болуы қажет.

program qq;

var x, y: integer;

begin

x := 1; y := 2;

Exchange ( x, y );

writeln ( ’x = ’, x, ’ y = ’, y );

end;

procedure Exchange ( a, b: integer );

var c: integer;

begin

c := a; a := b; b := c;

end;

мына процедура параметрлердің көшірмесімен жұмыс істейді

x = 1 y = 2

109

109 Параметр-айнымалылар параметрлер өзгере алады procedure Exchange ( a, b: integer ); var c: integer; begin  c := a; a := b; b := c; end; var Қолданылуы:  процедура(және функция) осындай әдіс арқылы бірнеше мән бере алады. Шақыртудың тыйым салынған нұсқалары Exchange ( 2, 3 );   { сандар } Exchange ( x + z, y+2 );  { өрнектер } Exchange ( 2, 3 );   { сандар } Exchange ( x + z, y+2 );  { өрнектер } 109

109

Параметр-айнымалылар

параметрлер өзгере алады

procedure Exchange ( a, b: integer );

var c: integer;

begin

c := a; a := b; b := c;

end;

var

Қолданылуы: процедура(және функция) осындай әдіс арқылы бірнеше мән бере алады.

Шақыртудың тыйым салынған нұсқалары

Exchange ( 2, 3 ); { сандар }

Exchange ( x + z, y+2 ); { өрнектер }

  • Exchange ( 2, 3 ); { сандар } Exchange ( x + z, y+2 ); { өрнектер }

109

109 Тапсырмалар

109

Тапсырмалар

"4": Процедураларды пайдалана отырып, мына фигураны құрастыру .

"5": Процедураларды пайдалана отырып, мына фигураны құрастыру.

Тең қабырғалы үшбұрыш

a

a

0,866 ∙ a

a

115

115 Паскаль тілінде программалау Тақырып 10 . Рекурсия

115

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

Тақырып 10 . Рекурсия

Рекурсивті объектілер Мысалдар: Рекурсияланған сурет: Факториал: егер егер Рекурсивті объект деп - бір объект немесе дәл осындай бірнеше объект арқылы анықталатын объектіні айтады. 117

Рекурсивті объектілер

Мысалдар:

Рекурсияланған сурет:

Факториал:

егер

егер

Рекурсивті объект деп - бір объект немесе дәл осындай бірнеше объект арқылы анықталатын объектіні айтады.

117

117 Пифагор ағашы N деңгейлі Пифагор ағашы  – бұл ағаштың діңгегі мен осы діңгектен симметриялы  түрде өсіп шыққан N- деңгейлі екі Пифагор ағашы , бұл ағаштардың бағанының ұзындығы 2 есе кем және олардың арасындағы бұрыш 90 o -қа тең . 6 деңгей: ?  Бұның рекурсивті фигура екенін қалай дәлелдеуге болады ? 118

117

Пифагор ағашы

N деңгейлі Пифагор ағашы – бұл ағаштың діңгегі мен осы діңгектен симметриялы түрде өсіп шыққан N- деңгейлі екі Пифагор ағашы , бұл ағаштардың бағанының ұзындығы 2 есе кем және олардың арасындағы бұрыш 90 o -қа тең .

6 деңгей:

?

Бұның рекурсивті фигура екенін қалай дәлелдеуге болады ?

118

118 Пифагор ағашы Ерекшеліктері: қашан тоқтау керек? ағаштардың иілу бұрышы әр түрлі қашан тоқтау керек? ағаштардың иілу бұрышы әр түрлі Қалған деңгейлердің саны нөлге тең болғанда! x 1  = x 0 + L · cos ( α ) y 1  = y 0 – L · sin( α ) α +45 o α - 45 o ( x 1 , y 1 ) L Еншілес ағаштардың иілу бұрышы α α + π /4 α  – π /4 ( x 0 , y 0 ) 118

118

Пифагор ағашы

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

  • қашан тоқтау керек? ағаштардың иілу бұрышы әр түрлі
  • қашан тоқтау керек?
  • ағаштардың иілу бұрышы әр түрлі

Қалған деңгейлердің саны нөлге тең болғанда!

x 1 = x 0 + L · cos ( α )

y 1 = y 0 – L · sin( α )

α +45 o

α - 45 o

( x 1 , y 1 )

L

Еншілес ағаштардың иілу бұрышы

α

α + π /4

α – π /4

( x 0 , y 0 )

118

0 then begin x1 := x0 + L*cos(a); y1 := y0 - L*sin(a); Line (round(x0), round(y0), round(x1), round(y1)); Pifagor (x1, y1, a + pi/4, L*k, N-1); Pifagor (x1, y1, a - pi/4, L*k, N-1); end; end; егер N=0 болса, аяқтау рекурсивті шақырулар Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады 118" width="640"

118

Процедура

α бұрышы

баған ұзындығы

procedure Pifagor(x0, y0, a, L: real;

N: integer);

const k = 0.6; { ұзындықтың өзгеруі }

var x1, y1: real; { жергілікті айнымалылар }

begin

if N 0 then begin

x1 := x0 + L*cos(a);

y1 := y0 - L*sin(a);

Line (round(x0), round(y0),

round(x1), round(y1));

Pifagor (x1, y1, a + pi/4, L*k, N-1);

Pifagor (x1, y1, a - pi/4, L*k, N-1);

end;

end;

егер N=0 болса, аяқтау

рекурсивті шақырулар

Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады

118

118 Программа program qq;  procedure Pifagor(x0,  y0,  a,  L: real;    N: integer);  ...  end; begin  Pifagor (250, 400, pi/2, 150, 8); end; баған ұзындығы α бұрышы x 0 деңгейлер саны y 0 ?  Ағашты 30 o оңға қалай еңкейтуге болады ?  Pifagor (250, 400, 2* pi/ 3 , 150, 8); 121

118

Программа

program qq;

procedure Pifagor(x0, y0, a, L: real;

N: integer);

...

end;

begin

Pifagor (250, 400, pi/2, 150, 8);

end;

баған ұзындығы

α бұрышы

x 0

деңгейлер саны

y 0

?

Ағашты 30 o оңға қалай еңкейтуге болады ?

Pifagor (250, 400, 2* pi/ 3 , 150, 8);

121

121 Задания

121

Задания

"4": Рекурсивті процедураны қолдана отырып , мына фигураны құрастыру:

"5": Рекурсивті процедураны қолдана отырып , мына фигураларды құрастыру:

121

121 Паскаль тілінде программалау Тақырып 1 1. Анимация

121

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

Тақырып 1 1. Анимация

Анимация Анимация (ағылш. animation )  – экрандағы кескінге жан бітіру. Есеп : 400х400 пиксельді көк квадраттың ішімен 20х20 пиксельді сары квадрат солдан оңға қарай жылжып келеді. Программа өз жұмысын Esc пернесін басқанда немесе сары квадрат көк квадраттың оң жақ жетіне жеткен кезде тоқтатады . Проблема : объектінің экранда қозғалуын қалай кескіндеуге болады? Қосымша: объектінің қозғалысы ( x,y)  координаталарымен белгіленеді Анимация қағидасы: объектіні ( x,y)  нүктесінде саламыз бірнеше миллисекундқа кідіру объектіні өшіреміз ( x,y ) координаталарын өзгертеміз  1-қадамға көшеміз объектіні ( x,y)  нүктесінде саламыз бірнеше миллисекундқа кідіру объектіні өшіреміз ( x,y ) координаталарын өзгертеміз  1-қадамға көшеміз 124

Анимация

Анимация (ағылш. animation ) – экрандағы кескінге жан бітіру.

Есеп : 400х400 пиксельді көк квадраттың ішімен 20х20 пиксельді сары квадрат солдан оңға қарай жылжып келеді. Программа өз жұмысын Esc пернесін басқанда немесе сары квадрат көк квадраттың оң жақ жетіне жеткен кезде тоқтатады .

Проблема : объектінің экранда қозғалуын қалай кескіндеуге болады?

Қосымша: объектінің қозғалысы ( x,y) координаталарымен белгіленеді

Анимация қағидасы:

  • объектіні ( x,y) нүктесінде саламыз бірнеше миллисекундқа кідіру объектіні өшіреміз ( x,y ) координаталарын өзгертеміз 1-қадамға көшеміз
  • объектіні ( x,y) нүктесінде саламыз
  • бірнеше миллисекундқа кідіру
  • объектіні өшіреміз
  • ( x,y ) координаталарын өзгертеміз
  • 1-қадамға көшеміз

124

124 «Пернелерді шертуді» қалай іске асыруға болады? Оқиға  деп қандай да бір объектінің қалпында өзгерістің болуын немесе пайдаланушының әрекетін айтады. (пернені басу, тышқанды шерту). IsEvent – қолданушы тарапынан қандай да бір әрекеттің болған-болмағандығын анықтайтын логикалық функция . Event – нақты қандай оқиғаның болғандығын анықтайтын процедура. if IsEvent then begin  Event (k, x, y);  if k = 1 then  writeln(‘ Коды бар перне  ' , x)  else { k = 2 }  writeln(‘ Тышқан : x=' , x, ' y=', y); end; var k, x, y: integer; 124

124

«Пернелерді шертуді» қалай іске асыруға болады?

Оқиға деп қандай да бір объектінің қалпында өзгерістің болуын немесе пайдаланушының әрекетін айтады. (пернені басу, тышқанды шерту).

IsEvent – қолданушы тарапынан қандай да бір әрекеттің болған-болмағандығын анықтайтын логикалық функция .

Event – нақты қандай оқиғаның болғандығын анықтайтын процедура.

if IsEvent then begin

Event (k, x, y);

if k = 1 then

writeln(‘ Коды бар перне ' , x)

else { k = 2 }

writeln(‘ Тышқан : x=' , x, ' y=', y);

end;

var k, x, y: integer;

124

124 Esc пернесін басып циклдан қалай шығуға болады ? егер тоқтау қажет болса,  True program qq; var stop: boolean;  k,code,i: integer;  begin  stop := False;  repeat  if IsEvent then begin  Event(k, code, i);  if (k = 1) and (code = 27) then  stop := True;  end;  ...  until stop; end; циклді іске қосу егер бір нәрсе бола қалса... қандай оқиға болды? е гер коды 27  ( Esc ) болатын перне басылса, онда стоп 124

124

Esc пернесін басып циклдан қалай шығуға болады ?

егер тоқтау қажет болса, True

program qq;

var stop: boolean;

k,code,i: integer;

begin

stop := False;

repeat

if IsEvent then begin

Event(k, code, i);

if (k = 1) and (code = 27) then

stop := True;

end;

...

until stop;

end;

циклді іске қосу

егер бір нәрсе бола қалса...

қандай оқиға болды?

е гер коды 27 ( Esc ) болатын перне басылса, онда стоп

124

124 Процедура (сурет салу және өшіру) Идеялар бір процедура суретті салады және өшіреді өшіру = фонның түсімен бояу квадраттың шекарасын өшіріп тастау (негізгі программада) бір процедура суретті салады және өшіреді өшіру = фонның түсімен бояу квадраттың шекарасын өшіріп тастау (негізгі программада) ( x , y ) ( x +20, y +20) сурет салу ( True ) немесе салмау ( False ) ? procedure Draw(x, y: integer; flag: boolean); begin  if flag  then  Brush(1, 255, 255, 0)  else  Brush(1, 0, 0, 255);  Rectangle(x, y, x+20, y+20); end; сурет саламыз: қылқаламның түсі – сары суретті өшіреміз: қылқаламның түсі – көк тек қана құю! 124

124

Процедура (сурет салу және өшіру)

Идеялар

  • бір процедура суретті салады және өшіреді өшіру = фонның түсімен бояу квадраттың шекарасын өшіріп тастау (негізгі программада)
  • бір процедура суретті салады және өшіреді
  • өшіру = фонның түсімен бояу
  • квадраттың шекарасын өшіріп тастау (негізгі программада)

( x , y )

( x +20, y +20)

сурет салу ( True ) немесе салмау ( False ) ?

procedure Draw(x, y: integer; flag: boolean);

begin

if flag then

Brush(1, 255, 255, 0)

else

Brush(1, 0, 0, 255);

Rectangle(x, y, x+20, y+20);

end;

сурет саламыз: қылқаламның түсі – сары

суретті өшіреміз: қылқаламның түсі – көк

тек қана құю!

124

= 400-20 then stop := true; until stop; end. процедура көк фон шекараны өшіріп тастау бастапқы жағдайлары Esc пернесімен шығу 10 мс күтеміз шекараға тақалған кезде шығу 124" width="640"

124

Толық программасы

program qq;

var x, y, k, code, i: integer;

stop: boolean;

procedure Draw(x,y: integer; flag: Boolean);

begin

...

end;

begin

Brush(1, 0, 0, 255);

Rectangle(10, 10, 400, 400);

Pen(0, 0, 0, 255);

x := 10; y := 200; stop := false;

repeat

if IsEvent then begin

...

end;

Draw(x, y, True);

Delay(10);

Draw(x, y, False);

x := x + 1;

if x = 400-20 then stop := true;

until stop;

end.

процедура

көк фон

шекараны өшіріп тастау

бастапқы жағдайлары

Esc пернесімен шығу

10 мс күтеміз

шекараға тақалған кезде шығу

124

124 Тапсырмалар

124

Тапсырмалар

"4": Екі квадрат бір біріне қарама-қарсы бағытта қозғалады:

"5": Екі квадрат бір біріне қарама-қарсы бағытта қозғалады және көк квадраттың қабырғасына соқтығысып кері бағытта жылжиды:

124

124 Пернелермен басқару Есеп : көк квадраттың ішінде орналасқан сары квадрат бағыттаушы пернелермен басқарылатындай болуы керек. Пернелердің коды:    солға – 37   жоғары – 38   Esc – 27    оңға – 39  төмен – 40   Проблема : қозғалыс бағытын қалай өзгертуге болады? Шығарылуы : егер перне басылған болса, … if  { оқиға болды }  then begin  if  { перне басулы }  then begin   { перненің кодын алу - code}   if code = 37 then x := x – 1;   if code = 38 then y := y – 1;   if code = 39 then x := x + 1;   if code = 40 then y := y + 1;   if code = 27 then stop := True;  end; end; IsEvent Event ( k, code, i); if k = 1 then begin case code of  37: x := x – 1; 38: y := y – 1;  39: x := x + 1; 40: y := y + 1;  27: stop := True; end; 124

124

Пернелермен басқару

Есеп : көк квадраттың ішінде орналасқан сары квадрат бағыттаушы пернелермен басқарылатындай болуы керек. Пернелердің коды:

солға – 37 жоғары – 38 Esc – 27

оңға – 39 төмен – 40

Проблема : қозғалыс бағытын қалай өзгертуге болады?

Шығарылуы :

егер перне басылған болса, …

if { оқиға болды } then begin

if { перне басулы } then begin

{ перненің кодын алу - code}

if code = 37 then x := x – 1;

if code = 38 then y := y – 1;

if code = 39 then x := x + 1;

if code = 40 then y := y + 1;

if code = 27 then stop := True;

end;

end;

IsEvent

Event ( k, code, i);

if k = 1 then begin

case code of

37: x := x – 1; 38: y := y – 1;

39: x := x + 1; 40: y := y + 1;

27: stop := True;

end;

124

124 Программасы program qq; var x, y, k, code, i: integer;   stop: boolean; begin  ...  repeat   Draw(x, y, True);  Delay(20);  Draw(x, y, False);  until stop; end. процедура procedure Draw(x,y: integer; flag: Boolean); begin  ... end; негізгі цикл оқиғаларды өңдеу if IsEvent then begin  ... end; ?  Кемшілігі ? 131

124

Программасы

program qq;

var x, y, k, code, i: integer;

stop: boolean;

begin

...

repeat

Draw(x, y, True);

Delay(20);

Draw(x, y, False);

until stop;

end.

процедура

procedure Draw(x,y: integer; flag: Boolean);

begin

...

end;

негізгі цикл

оқиғаларды өңдеу

if IsEvent then begin

...

end;

?

Кемшілігі ?

131

131 Жыпылықтауды қалай кетіруге болады? Проблема : ешбір перне басылмағанның өзінде де квадрат әр 20 мс сайын басқа түске боялып тұрады(жыпылықтау!) Бізге қажеттісі: ешқандай оқиға болмаса квадратты басқа түстерге боямау (жыпылықтатпау) Шығарылуы : квадратты бояп тастап, оқиғаны күту Жаңа проблема : оқиғаны қалай күтеміз ? Жаңа проблеманың шығарылуы : бос цикл « оқиға болмайынша ештеме істеме

131

Жыпылықтауды қалай кетіруге болады?

Проблема : ешбір перне басылмағанның өзінде де квадрат әр 20 мс сайын басқа түске боялып тұрады(жыпылықтау!)

Бізге қажеттісі: ешқандай оқиға болмаса квадратты басқа түстерге боямау (жыпылықтатпау)

Шығарылуы : квадратты бояп тастап, оқиғаны күту

Жаңа проблема : оқиғаны қалай күтеміз ?

Жаңа проблеманың шығарылуы : бос цикл « оқиға болмайынша ештеме істеме ":

while not IsEvent do;

131

131 Программасы program qq; var x, y, k, code, i: integer;   stop: boolean; begin  ...  repeat   Draw(x, y, True);  while not IsEvent do;  until stop; end. процедура procedure Draw(x,y: integer; flag: Boolean); begin  ... end; квадраттың суретін саламыз оқиғаны күтеміз while not IsEvent do; енді өшіруге болады Draw(x, y, False); Event(k, code, i); ... ?  Нені жақсартуға болады ? 133

131

Программасы

program qq;

var x, y, k, code, i: integer;

stop: boolean;

begin

...

repeat

Draw(x, y, True);

while not IsEvent do;

until stop;

end.

процедура

procedure Draw(x,y: integer; flag: Boolean);

begin

...

end;

квадраттың суретін саламыз

оқиғаны күтеміз

while not IsEvent do;

енді өшіруге болады

Draw(x, y, False);

Event(k, code, i);

...

?

Нені жақсартуға болады ?

133

133 Тапсырмалар

133

Тапсырмалар

"4": Квадрат бағыттауыш пернелерді басқан бағытта жылжып отырады, алайда көк квадраттың шекарасынан асып кете алмайды:

"5": Квадрат үздіксіз қозғалып отырады, бағыттауыш пернелер басылған кезде өз бағытын өзгертеді және көк квадраттың қабырғаларына соқтығысып кері жылжып отырады:

134

134 Айналу Есеп : Жердің Күнді айналу моделін бейнелеу. Проблема : шеңбер бойымен айналу, координаталарды қалай өзгертіп отыруға болады? Шығарылуы : тәуелсіз айнымалы ретінде α –ның айналу бұрышын қолдану (циклде өзгерту) ( x , y ) L x  = x 0 + L · cos ( α ) y  = y 0 – L · sin( α ) α ( x 0 , y 0 ) 134

134

Айналу

Есеп : Жердің Күнді айналу моделін бейнелеу.

Проблема : шеңбер бойымен айналу, координаталарды қалай өзгертіп отыруға болады?

Шығарылуы : тәуелсіз айнымалы ретінде α –ның айналу бұрышын қолдану (циклде өзгерту)

( x , y )

L

x = x 0 + L · cos ( α )

y = y 0 – L · sin( α )

α

( x 0 , y 0 )

134

134 Процедура сурет салу ( True ) немесе салмау ( False ) ? procedure Draw(x, y: integer; flag: boolean); const r = 10; begin  if flag  then  Brush(1, 100, 100, 255)  else  Brush(1, 0, 0, 0);  Ellipse(x - r, y-r, x+r, y+r); end; Жердің радиусы суретін саламыз: қылқалам түсі – көгілдір суретті өшіреміз: қылқалам түсі – қара тек қана құю! ( x - r , y-r ) ( x , y ) ( x+r , y+r ) 134

134

Процедура

сурет салу ( True ) немесе салмау ( False ) ?

procedure Draw(x, y: integer; flag: boolean);

const r = 10;

begin

if flag then

Brush(1, 100, 100, 255)

else

Brush(1, 0, 0, 0);

Ellipse(x - r, y-r, x+r, y+r);

end;

Жердің радиусы

суретін саламыз: қылқалам түсі – көгілдір

суретті өшіреміз: қылқалам түсі – қара

тек қана құю!

( x - r , y-r )

( x , y )

( x+r , y+r )

134

134 Тұрақтылар мен айнымалылар program qq; const rSun = 60; { Күннің радиусы }  L  = 150;   { Жер орбитасының радиусы }  x0 = 200;   { Күн центрінің координаталары }  y0 = 200;  var x, y,   { Жердің координаталары }  k, code, i: integer;  { Event үшін  }   a , ha: real;  { айналу бұрышы , қадам  }  stop: boolean;  { программаны тоқтату белгісі } begin  ... end. procedure Draw(x,  y: integer; flag: Boolean); begin  ... end; 134

134

Тұрақтылар мен айнымалылар

program qq;

const rSun = 60; { Күннің радиусы }

L = 150; { Жер орбитасының радиусы }

x0 = 200; { Күн центрінің координаталары }

y0 = 200;

var x, y, { Жердің координаталары }

k, code, i: integer; { Event үшін }

a , ha: real; { айналу бұрышы , қадам }

stop: boolean; { программаны тоқтату белгісі }

begin

...

end.

procedure Draw(x, y: integer; flag: Boolean);

begin

...

end;

134

134 Негізгі программа program qq; ... begin  Brush(1, 0, 0, 0);  Fill(1,1);  Brush(1, 255, 255, 0);  Ellipse(x0-rSun, y0-rSun, x0+rSun, y0+rSun);  a := 0; ha := 1*pi/180; { бастапқы бұрыш , 100 мс-та 1 o  қадам }  stop := false;  Pen(0,0,0,0);  { контурларды өшіріп тастаймыз }   repeat   x := round(x0 + L*cos(a));   y := round(y0 - L*sin(a));   Draw(x, y, True);   Delay(100);   Draw(x, y, False);   a := a + ha;  until stop; end. фонды қара түске бояу Күннің суретін саламыз жаңа координаталар 100 мс күтеміз if IsEvent then begin   Event(k, code, i);  if (k = 1) and (code = 27) then stop := true; end; ha бұрышына бұрылу 134

134

Негізгі программа

program qq;

...

begin

Brush(1, 0, 0, 0); Fill(1,1);

Brush(1, 255, 255, 0);

Ellipse(x0-rSun, y0-rSun, x0+rSun, y0+rSun);

a := 0; ha := 1*pi/180; { бастапқы бұрыш , 100 мс-та 1 o қадам }

stop := false;

Pen(0,0,0,0); { контурларды өшіріп тастаймыз }

repeat

x := round(x0 + L*cos(a));

y := round(y0 - L*sin(a));

Draw(x, y, True);

Delay(100);

Draw(x, y, False);

a := a + ha;

until stop;

end.

фонды қара түске бояу

Күннің суретін саламыз

жаңа координаталар

100 мс күтеміз

if IsEvent then begin

Event(k, code, i);

if (k = 1) and (code = 27) then stop := true;

end;

ha бұрышына бұрылу

134

134 Тапсырмалар

134

Тапсырмалар

"4": Күнді айналып жүрген екі планетаның моделін бейнелеу, планеталар бір-біріне қарама-қарсы бағытта қозғалатын болсын:

"5": Күн-Жер-Ай жүйесінің моделін бейнелеу:

139

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

139

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

Тақырып 1 2. Кездейсоқ сандар

Кездейсоқ сандар Кездейсоқ көріністер : барлық жерде… тиынды лақтыру (

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

Кездейсоқ көріністер : барлық жерде…

  • тиынды лақтыру ("орел" немесе "решка") қардың түсуі броундық қозғалыс телефон байланысында болатын ақаулар радиоэфирдің шуы
  • тиынды лақтыру ("орел" немесе "решка")
  • қардың түсуі
  • броундық қозғалыс
  • телефон байланысында болатын ақаулар
  • радиоэфирдің шуы

Кездейсоқ сандар – бұған дейінгі сандардың ретін біліп отырсақ та, келесі санның қандай екені белгісіз болатын сандардың тізбегін айтады.

Проблема : компьютерде осыны қалай алуға болады?

Мүмкін болатын шешімдері :

  • шу ақауларының сыртқы көздерін пайдалану
  • математикалық түрлендірулерді пайдалану

Жалған кездейсоқ сандар Жалған кездейсоқ сандар – бойында кездейсоқ сандардың қасиеті бар, бірақ әрбір келесі сан алдын ала берілген формула бойынша есептелетін сандардың тізбегін айтады. Мысалдар : Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс) Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс) Кездейсоқ нақты сандар [0,1] Кездейсоқ нақты сандар [0,1] a, c, m - бүтін сандар 2 30 -1 жай сан мысал,  k  =  5 санның бөлшек бөлігі

Жалған кездейсоқ сандар

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

Мысалдар :

  • Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс)
  • Кездейсоқ бүтін сандар [0,m) (сызықты конгруэнтті әдіс)
  • Кездейсоқ нақты сандар [0,1]
  • Кездейсоқ нақты сандар [0,1]

a, c, m - бүтін сандар

2 30 -1

жай сан

мысал, k = 5

санның бөлшек бөлігі

Кездейсоқ сандардың орналасуы Модель : қар бұршақтары [a,b] кесіндісінің аралығына түседі орналасуы бірқалыпты бірқалыпты емес a a b b ?  Әр түрлі орналастырулардың саны қанша болуы мүмкін ? 143

Кездейсоқ сандардың орналасуы

Модель : қар бұршақтары [a,b] кесіндісінің аралығына түседі

орналасуы

бірқалыпты

бірқалыпты емес

a

a

b

b

?

Әр түрлі орналастырулардың саны қанша болуы мүмкін ?

143

143 Кездейсоқ сандардың орналасуы Ерекшеліктері : орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы бірқалыпсыздардың саны – көп кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады. орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы бірқалыпсыздардың саны – көп кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады. a a b b бірқалыпты орналасу бірқалыпсыз орналасу 143

143

Кездейсоқ сандардың орналасуы

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

  • орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы бірқалыпсыздардың саны – көп кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады.
  • орналасу – бұл бір ғана санның емес бүкіл тізбектің сипаттамасы
  • бірқалыпсыздардың саны – көп
  • кез келген бірқалыпсыз орналасуды бірқалыпты орналасудың көмегімен алуға болады.

a

a

b

b

бірқалыпты орналасу

бірқалыпсыз орналасу

143

143 Паскальдегі кездейсоқ сандардың генераторы  [0,N] интервалындағы бүтін сандар:  var x: integer;  ...  x := random ( 100 ); { интервал [0,99] }  [0,1] интервалындағы бүтін сандар:  var x: real;  ...  x := random; { интервал [0,1] } 143

143

Паскальдегі кездейсоқ сандардың генераторы

[0,N] интервалындағы бүтін сандар:

var x: integer;

...

x := random ( 100 ); { интервал [0,99] }

[0,1] интервалындағы бүтін сандар:

var x: real;

...

x := random; { интервал [0,1] }

143

143 Кездейсоқ сандар Есеп : 400х300 пиксельді тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен бірқалыпты етіп толтыру. Нүктенің кездейсоқ координаталарын қалай алуға болады? x := random ( 400 ); y := random ( 300 ); x := random ( 400 ); y := random ( 300 ); Бірқалыптылықты қалай алуға болады?   random  функциясы қолданылса автоматты түрде қамтамасыз етіледі Кездейсоқ түстерді қалай алуға болады? Pen (1, random(256), random(256), random(256)); Point ( x, y ); Pen (1, random(256), random(256), random(256)); Point ( x, y ); 143

143

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

Есеп : 400х300 пиксельді тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен бірқалыпты етіп толтыру.

Нүктенің кездейсоқ координаталарын қалай алуға болады?

x := random ( 400 );

y := random ( 300 );

  • x := random ( 400 ); y := random ( 300 );

Бірқалыптылықты қалай алуға болады? random функциясы қолданылса автоматты түрде қамтамасыз етіледі

Кездейсоқ түстерді қалай алуға болады?

Pen (1, random(256), random(256), random(256));

Point ( x, y );

  • Pen (1, random(256), random(256), random(256)); Point ( x, y );

143

143 Программа program qq; var x, y, k, code, i: integer;  stop: boolean; begin  stop := False;  repeat  x := random(400);  y := random(300);  Pen(1, random(25 6 ), random(25 6 ), random(25 6 ));  Point(x, y );  if IsEvent then begin  Event(k, code, i);  if (k = 1) and (code = 27) then stop := True;  end;  until stop; end. кездейсоқ координаталар кездейсоқ түс Esc пернесін басып шығып кету 143

143

Программа

program qq;

var x, y, k, code, i: integer;

stop: boolean;

begin

stop := False;

repeat

x := random(400);

y := random(300);

Pen(1, random(25 6 ), random(25 6 ), random(25 6 ));

Point(x, y );

if IsEvent then begin

Event(k, code, i);

if (k = 1) and (code = 27) then stop := True;

end;

until stop;

end.

кездейсоқ координаталар

кездейсоқ түс

Esc пернесін басып шығып кету

143

143 Тапсырмалар

143

Тапсырмалар

"4": Пернетақтадан тіктөртбұрыш бұрыштарының координаталарын енгізіп, тіктөртбұрыштың ішін түстері кездейсоқ нүктелермен толтыру керек.

"5": Үшбұрыштың ішін түстері кездейсоқ болатын нүктелермен толтыру. (бірқалыпты немесе бірқалыпты емес).

Қосымша көмек : бұрышы 45 о болатын теңбүйірлі үшбұрышты алу керек .

(100,100)

(300,200)

143

143 Паскаль тілінде программалау Тақырып 13 . Функциялар

143

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

Тақырып 13 . Функциялар

Функциялар Функция –  нәтижесі қандай да бір мәнге ие болатын көмекші алгоритм (қосалқы программа). Мысалдар :   , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?)   , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?) Неліктен?  программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін функциялардың жалпыға бірдей кітапханаларын құру үшін программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін функциялардың жалпыға бірдей кітапханаларын құру үшін ?  Процедурадан айырмашылығы неде ? 150

Функциялар

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

Мысалдар :

  • , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?)
  • , , есептеу
  • өрнектерді күрделі формулалармен есептеу
  • сұраққа жауап (жай сан ба, әлде жай сан емес пе?)

Неліктен?

  • программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін функциялардың жалпыға бірдей кітапханаларын құру үшін
  • программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін
  • функциялардың жалпыға бірдей кітапханаларын құру үшін

?

Процедурадан айырмашылығы неде ?

150

b then Max := a else Max := b; end. бұл функцияны нәтижесі 150" width="640"

150

Функциялар

Есеп: екі санның үлкенін анықтайтын функция құру және оны қолдануға мысал келтіру

Функция:

формальды параметрлер

function Max (a, b: integer): integer;

begin

if a b then Max := a

else Max := b;

end.

бұл функцияны нәтижесі

150

150 Функциялар Ерекшеліктері: тақырыбы function  сөзімен басталады функцияда формальды параметрлер процедурадағыдай сипатталады айнымалы параметрлерді пайдалануға болады тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі функциялар негізгі программадан ЖОҒАРЫ орналасады тақырыбы function  сөзімен басталады функцияда формальды параметрлер процедурадағыдай сипатталады айнымалы параметрлерді пайдалануға болады тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі функциялар негізгі программадан ЖОҒАРЫ орналасады  Max (a, b: integer): integer; function function qq( a, b: integer; x: real ): real; a, b: integer; x: real function Max ( a, b: integer): integer; var function Max (a, b: integer): ; integer 152

150

Функциялар

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

  • тақырыбы function сөзімен басталады функцияда формальды параметрлер процедурадағыдай сипатталады айнымалы параметрлерді пайдалануға болады тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі функциялар негізгі программадан ЖОҒАРЫ орналасады
  • тақырыбы function сөзімен басталады
  • функцияда формальды параметрлер процедурадағыдай сипатталады
  • айнымалы параметрлерді пайдалануға болады
  • тақырыптың соңында қоснүктеден кейін нәтиженің типі көрсетіледі
  • функциялар негізгі программадан ЖОҒАРЫ орналасады

Max (a, b: integer): integer;

function

function qq( a, b: integer; x: real ): real;

a, b: integer; x: real

function Max ( a, b: integer): integer;

var

function Max (a, b: integer): ;

integer

152

152 Функциялар Ерекшеліктері: жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ : жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ : function qq (a, b: integer): float; begin  ... end; var x, y: float; function Max (a, b: integer): integer; begin  ... end; ! Max := a;  Delphi -де : Result  :=  a; 153

152

Функциялар

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

  • жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ :
  • жергілікті айнымалыларды жариялауға және пайдалануға болады
  • нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ :

function qq (a, b: integer): float;

begin

...

end;

var x, y: float;

function Max (a, b: integer): integer;

begin

...

end;

!

Max := a;

Delphi -де :

Result := a;

153

153 Программа program qq; var a, b, max: integer; begin  writeln(‘ Екі сан енгіз ');  read(a, b);  max := Max ( a, b );  writeln(‘ Санның үлкені  ' , max ); end. c function Max (a, b: integer): integer; begin  ... end; нақты параметрлер функцияны шақыру c c !  Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек! 154

153

Программа

program qq;

var a, b, max: integer;

begin

writeln(‘ Екі сан енгіз ');

read(a, b);

max := Max ( a, b );

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

end.

c

function Max (a, b: integer): integer;

begin

...

end;

нақты параметрлер

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

c

c

!

Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек!

154

154 Логикалық функциялар Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру. Ерекшеліктері: жауабы – логикалық мән ( True  немесе False ) функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады жауабы – логикалық мән ( True  немесе False ) функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады Алгоритм:  2-ден N-1 -ге дейінгі аралықтағы бөлгіштердің санын есептейміз , егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.  Алгоритм:  2-ден N-1 -ге дейінгі аралықтағы бөлгіштердің санын есептейміз , егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.  count := 0; for i  :=  2 to N-1 do  if N mod i = 0 then  count := count + 1; if count = 0 then  {  N саны – жай сан } else {  N саны – құрама сан } for i  :=  2 to N-1 do  if N mod i = 0 then  count := count + 1; ?  Қалай жақсартуға болады ? 155

154

Логикалық функциялар

Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру.

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

  • жауабы – логикалық мән ( True немесе False ) функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады
  • жауабы – логикалық мән ( True немесе False )
  • функцияның нәтижесін if, while шарттарында логикалық шама ретінде қолдануға болады

Алгоритм: 2-ден N-1 -ге дейінгі аралықтағы бөлгіштердің санын есептейміз , егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.

  • Алгоритм: 2-ден N-1 -ге дейінгі аралықтағы бөлгіштердің санын есептейміз , егер олардың саны нөлге тең болмаса енгізілген санның - құрама сан болғаны.

count := 0;

for i := 2 to N-1 do

if N mod i = 0 then

count := count + 1;

if count = 0 then

{ N саны – жай сан }

else { N саны – құрама сан }

for i := 2 to N-1 do

if N mod i = 0 then

count := count + 1;

?

Қалай жақсартуға болады ?

155

155 Логикалық функциялар program qq; var N: integer; begin  writeln(‘ Бүтін сан енгіз ');  read(N);  if Prime(N) then  writeln(N, ' – жай сан ')  else writeln(N, ' – құрама сан '); end. нәтижесі – логикалық мән function Prime (N: integer): boolean; var count, i: integer; begin  i := 2; count := 0;  while i*i  if N mod i = 0 then count := count + 1;  i := i + 1;  end;  Prime := (count = 0); end; таңдап алу тек -ге дейін шарт дегеніміз – логикалық мән функцияны шақыру 155

155

Логикалық функциялар

program qq;

var N: integer;

begin

writeln(‘ Бүтін сан енгіз ');

read(N);

if Prime(N) then

writeln(N, ' – жай сан ')

else writeln(N, ' – құрама сан ');

end.

нәтижесі – логикалық мән

function Prime (N: integer): boolean;

var count, i: integer;

begin

i := 2; count := 0;

while i*i

if N mod i = 0 then count := count + 1;

i := i + 1;

end;

Prime := (count = 0);

end;

таңдап алу тек -ге дейін

шарт дегеніміз – логикалық мән

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

155

155 Тапсырмалар

155

Тапсырмалар

"4": 1-ден N -ге дейінгі сандардың қосындысын анықтайтын функция құру және оны қолдануға мысал келтіру .

Мысал:

Сан енгіз:

1 00

қосынды = 5050

"5": Шахматты ойлап шығарған адамның N -ші торға неше бидайдың қоюын сұрағанын анықтайтын функция құру. ( 1-шісіне – 1 дән, 2-шісіне – 2 дән, 3-шісіне – 4 бидай дәнін, …)

Мысал:

Тордың нөмірін енгіз:

28

28-шісі торда 134217728 бидай дәні.

155

155 Тапсырмалар (2-нұсқа)

155

Тапсырмалар (2-нұсқа)

"4": Екі натурал санның ең үлкен ортақ бөлгішін анықтайтын функция құру және оны қолдануға мысал келтіру.

Мысал:

Екі сан енгіз:

14 21

ЕҮОБ(14,21)=7

"5": Синус функциясын қатардың қосындысы секілді есептейтін функция құру. (0.001 дәлдікпен)

Мысал:

Градус түріндегі бұрышты енгіз:

45

sin(45) = 0.707

x радиан түрінде!

155

155 Фильмнің соңы 155

155

Фильмнің соңы

155


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: 9 класс

Скачать
Паскаль программалау тілі

Автор: Алибекова Умут Ораскуловна

Дата: 27.02.2015

Номер свидетельства: 179561

Похожие файлы

object(ArrayObject)#853 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(49) "Паскаль-программалау тілі "
    ["seo_title"] => string(27) "paskal-proghrammalau-tili-2"
    ["file_id"] => string(6) "174993"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1424196145"
  }
}
object(ArrayObject)#875 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(49) "Паскаль программалау тілі."
    ["seo_title"] => string(25) "paskal_proghrammalau_tili"
    ["file_id"] => string(6) "395105"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1487912345"
  }
}
object(ArrayObject)#853 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(83) "Паскаль – программалау тілі. Тілді? алфавиті."
    ["seo_title"] => string(41) "paskal-proghrammalau-tili-tildin-alfaviti"
    ["file_id"] => string(6) "295800"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1455877228"
  }
}
object(ArrayObject)#875 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(51) ""Паскаль- программалау тілі""
    ["seo_title"] => string(23) "paskalproghrammalautili"
    ["file_id"] => string(6) "302918"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1457346304"
  }
}
object(ArrayObject)#853 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(97) ""Паскаль программалау тілі" тақырыбындағы ашық сабақ"
    ["seo_title"] => string(53) "paskal_proghrammalau_tili_tak_yrybyndag_y_ashyk_sabak"
    ["file_id"] => string(6) "397704"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1488627566"
  }
}




ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства