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

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

Паскаль в 9 классах презентации

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

Памятка программиста

 

 

read(a); // команда для ввода данных в переменную а;

write(x); // команда вывода значения переменной х;

writeln(‘любой текст’); // мы можем выводить любой текст, приставка ln перенесет курсор после вывода на новую строчку;

m:=n*32; //переменной m  присваивается значение выражения n*32;

  кнопка для запуска программы

Помните! Ошибка в той области, где остановился курсор.

 

Просмотр содержимого документа
«Паскаль в 9 классах презентации »

Графика График функций Процедуры Рекурсия Анимация Случайные числа Функции Введение Разветвление Сложные условия Циклы Циклы с условием Операторы выбора
  • Графика
  • График функций
  • Процедуры
  • Рекурсия
  • Анимация
  • Случайные числа
  • Функции
  • Введение
  • Разветвление
  • Сложные условия
  • Циклы
  • Циклы с условием
  • Операторы выбора

Тема 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 .2 3 .3 3 .1 2 .3 2 .2 2 .1 1.3 1.2 1.1  6

Язык программирования Паскаль

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

  • для школьников и студентов
  • для школьников и студентов

данные(массив, функции и операторы)

  • данные(массив, функции и операторы)

задача

3

2

1

3 .2

3 .3

3 .1

2 .3

2 .2

2 .1

1.3

1.2

1.1

6

; const … ; { константы } var … ; { переменные } Begin { начало программы } … { основная программа } end. { конец программы } { процедуры и функции } В фигурных скобках пояснения не обрабатываются ПК. 6 6" width="640"

Из каких частей состоит программа?

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

6

:= выражение ; Состав арифметического выражения постоянные переменные обозначения постоянные переменные обозначения + - * / div mod + - * / div mod Вызов функций скобки ( ) Вызов функций скобки ( ) умножение Деление на число Целая часть от деления 5 div2=2 деление Целый Остаток от деления 5mod 2=1 6 6" width="640"

операторы присваивания

формат:

имя переменной := выражение ;

Состав арифметического выражения

  • постоянные переменные обозначения
  • постоянные
  • переменные
  • обозначения

+ - * / div mod

  • + - * / div mod
  • Вызов функций скобки ( )
  • Вызов функций
  • скобки ( )

умножение

Деление на число

Целая часть от деления

5 div2=2

деление

Целый Остаток от деления

5mod 2=1

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 6 17

операторы ввода

read ( a ); { а ввести значение переменной }

read ( a, b ); { а и b ввести значение переменных }

Как ввести два числа?

через пробел:

25 30

через Enter

25

30

a

25

b

30

a

25

b

30

6

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

17

', 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" width="640"

Форматы вывода

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

Задание

Задание

"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. Разветвление

17

Алгоритм развервляющийся Задача . Ввести два целых числа и вывести на экран максимальное число . Вывод: если первое число больше второго, вывести первое , а если меньше то на экран вывести второе число. Примечание: действие исполнителя зависит от условия (если …то … ). Разветвляющийся алгоритм - задача решается при каком-либо условии(на лево пойдешь- коня потеряешь, на право пойдешь – голову положишь). 17 17

Алгоритм развервляющийся

Задача . Ввести два целых числа и вывести на экран максимальное число .

Вывод: если первое число больше второго, вывести первое , а если меньше то на экран вывести второе число.

Примечание: действие исполнителя зависит от условия (если …то … ).

Разветвляющийся алгоритм - задача решается при каком-либо условии(на лево пойдешь- коня потеряешь, на право пойдешь – голову положишь).

17

17

Операторы и служебные слова Присваивания := Ввода  READ Вывода  WRITE Перехода COTO Управления  Begin end составной оператор Условный оператор  IF -если ,THEN -то ,ELSE -иначе CASE - оператор выбора Операторы повторения WHILE – пока DO -выполнить , REPEAT -повторять ,until - до FOR - для, ТО-до, With- присоединение Downto- обратно или вниз до Функции и процедуры Графические операторы Uses- ключевое слово Label -описание меток Const - постоянные Type - типы данных Var -переменные Procedure Function  17

Операторы и служебные слова

  • Присваивания :=
  • Ввода READ
  • Вывода WRITE
  • Перехода COTO
  • Управления Begin end составной оператор
  • Условный оператор IF -если ,THEN -то ,ELSE -иначе
  • CASE - оператор выбора
  • Операторы повторения WHILE – пока DO -выполнить , REPEAT -повторять ,until - до
  • FOR - для, ТО-до, With- присоединение
  • Downto- обратно или вниз до
  • Функции и процедуры
  • Графические операторы
  • Uses- ключевое слово
  • Label -описание меток
  • Const - постоянные
  • Type - типы данных
  • Var -переменные
  • Procedure
  • Function

17

b? max:= a; max:= b; вывод max конец ? если a = b? 17 26" width="640"

1 Вариант. Блок-схема

начало

«условие выбора» блок

ввести a,b

Полный вид вертвления

да

нет

a b?

max:= a;

max:= b;

вывод max

конец

?

если a = b?

17

26

b then begin end else begin end ; writeln (‘ большое из двух ', max); end. Полный вид условного оператора max := a ; max := b ; 26 26" width="640"

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 ;

26

26

then begin { что нужно делать ,если условие выполняется } end else begin { что нужно делать ,если условие не выполняется } end ; Особенности: else - ; не ставится Если в блоге только один оператор, begin и end можно и не писать else - ; не ставится Если в блоге только один оператор, begin и end можно и не писать 26 26" width="640"

Условный оператор

if условный then begin

{ что нужно делать ,если условие выполняется }

end

else begin

{ что нужно делать ,если условие не выполняется }

end ;

Особенности:

  • else - ; не ставится Если в блоге только один оператор, begin и end можно и не писать
  • else - ; не ставится
  • Если в блоге только один оператор, begin и end можно и не писать

26

26

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 26 26" width="640"

Найти ошибку?

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

26

26

a? max:= b; вывод max конец 26 30" width="640"

2 Вариант. Блок-схема

начало

ввести a,b

max:= a;

Неполный вид ветвления

да

нет

b a?

max:= b;

вывод max

конец

26

30

a then max := b; writeln (‘ БИД ', max); end. Неполный вид условного оператора 30 30" width="640"

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

program qq;

var a, b, max: integer;

begin

writeln(‘ ввести два целых числа ');

read ( a, b );

max := a;

if b a then

max := b;

writeln (‘ БИД ', max);

end.

Неполный вид условного оператора

30

30

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

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

program qq;

var a, b, max: integer;

begin

writeln(‘ ввести два числа ');

read ( a, b );

max := b;

if ??? then

???

writeln ( ‘ БИД ' , max);

end.

a b

max := a;

30

30

Задание

Задание

"4": Ввести три числа найти максимальное .

Пример :

ввести три числа :

4 15 9

максимальное 15

"5": Ввести пять чисел, найти максимальное .

Пример :

ввести пять чисел :

4 15 9 56 4

большое число 5 6

30

30

Тема 3. Сложные условия 30

Тема 3. Сложные условия

30

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 30 30" width="640"

Найти ошибку?

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

30

30

Сложные условия Задача. Фирма принимает на работу от 25 до 40 лет. Ввести возраст человека, вывести на экран сведения о приеме или неприеме на работу («принят» или «непринят» вывести на экран ) . Особенности :проверить оба условия 30 30

Сложные условия

Задача. Фирма принимает на работу от 25 до 40 лет. Ввести возраст человека, вывести на экран сведения о приеме или неприеме на работу («принят» или «непринят» вывести на экран ) .

Особенности :проверить оба условия

30

30

= 25? да нет x = 40? ‘ не принят ' ‘ принят ' ‘ не принят ' нет 30 30" width="640"

1 Вариант . Алгоритм

начало

ввести x

да

нет

x = 25?

да

нет

x = 40?

‘ не принят '

‘ принят '

‘ не принят '

нет

30

30

= 25 then if x writeln (‘ принят ') else writeln (‘ не принят ') else writeln (‘ не принят '); end. 30 30" width="640"

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

program qq;

var x: integer;

begin

writeln(‘ ввести возраст ');

read ( x );

if x = 25 then

if x

writeln (‘ принят ')

else writeln (‘ не принят ')

else

writeln (‘ не принят ');

end.

30

30

= 25 и x 40? нет да ‘ принят ' ‘ не принят ' конец 30 39" width="640"

2 Вариант . Алгоритм

начало

ввести x

x = 25 и

x 40?

нет

да

‘ принят '

‘ не принят '

конец

30

39

= 25) and (x writeln (‘ принят ') else writeln (‘ не принят ') end. Сложное условие 39 39" width="640"

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

program qq;

var x: integer;

begin

writeln(‘ ввести возраст ');

read ( x );

if (x = 25) and (x

writeln (‘ принят ')

else writeln (‘ не принят ')

end.

Сложное условие

39

39

= = = = равно Не равно 39 39" width="640"

Сложные условия

Сложное условие – состоит из несколькоих условий логических операций:

  • not – нет ( инверсия) and – и (логикалческое умножение, конъюнкция) or – или (логическое сложение, дизъюнкция) xor – арифметическое или
  • not – нет ( инверсия)
  • and – и (логикалческое умножение, конъюнкция)
  • or – или (логическое сложение, дизъюнкция)
  • xor – арифметическое или
  • Простые условия
  • Простые условия
  • = =
  • = =

равно

Не равно

39

39

=, =, 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 39 39" width="640"

Сложное условие

Правила выполнениея

  • Выражения в скобках
  • Выражения в скобках
  • 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

39

39

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  (6, 10) x 10 (10,  ) (-  , 10) x 10 (-  , 6)  (10,  ) (-  ,  ) x 6 (6,  ) 39" width="640"

Сложные условия

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

(6, 10)

x 10

(10, )

(- , 10)

x 10

(- , 6) (10, )

(- , )

x 6

(6, )

39

Задание

Задание

"4": ввести номер месяца, вывести время года .

пример :

ввести номер месяца:

4

весна

Тема 4. Циклы

Тема 4. Циклы

Цикл Цикл – определенная последовательность действий повторяющаяся несколько раз. определенный цикл количества шагов Неопределенный цикл количества шагов (условный цикл) определенный цикл количества шагов Неопределенный цикл количества шагов (условный цикл) Задача . Найти квадрат и куб целых чисел от 1до 8-ми (от a до  b ). Примечание : все действия повторяются 8 раз .

Цикл

Цикл – определенная последовательность действий повторяющаяся несколько раз.

  • определенный цикл количества шагов Неопределенный цикл количества шагов (условный цикл)
  • определенный цикл количества шагов
  • Неопределенный цикл количества шагов (условный цикл)

Задача . Найти квадрат и куб целых чисел от 1до 8-ми (от a до b ).

Примечание : все действия повторяются 8 раз .

Алгоритм начало Начальное значение переменной цикла i  :=  1; Проверка условия нет i    8? конец Нахождение Квадрата и куба да i2  :=  i  *  i; i3  :=  i2  *  i; Вывод результата i,  i2,  i3 Перейти к следующему i i  :=  i  +  1;

Алгоритм

начало

Начальное значение переменной цикла

i := 1;

Проверка условия

нет

i 8?

конец

Нахождение Квадрата и куба

да

i2 := i * i;

i3 := i2 * i;

Вывод результата

i, i2, i3

Перейти к следующему i

i := i + 1;

Алгоритм ( блок

Алгоритм ( блок "цикла" )

«цикл»блок

начало

i := 1,8

конец

i2 := i * i;

i3 := i2 * i;

тело цикла

i, i2, i3

Программа  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. Начальное значение Цикл повтора Последнее значение

Программа

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.

Начальное значение

Цикл повтора

Последнее значение

Цикл с убыванием задача. Найти квадрат и куб целых чисел От 8до 1 (расчет наоборот). Примечание : повторение цикла на уменьшение . решение: down to  for i:=8 1 do begin  i2 := i*i;  i3 := i2*i;  writeln(i:4, i2:4, i3:4);  end;

Цикл с убыванием

задача. Найти квадрат и куб целых чисел От 8до 1 (расчет наоборот).

Примечание : повторение цикла на уменьшение .

решение:

down to

for i:=8 1 do begin

i2 := i*i;

i3 := i2*i;

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

end;

:= начальное значение to конечное значение do begin { тело цикл } end; Переменная уменьшается на 1: for переменная := начальное значение downto конечное значение do begin { тело цикл } end;" width="640"

Цикл с повтором

Переменная возрастает на 1:

for переменная := начальное значение to

конечное значение do begin

{ тело цикл }

end;

Переменная уменьшается на 1:

for переменная := начальное значение downto

конечное значение do begin

{ тело цикл }

end;

Цикл с повтором примечание:  переменная цыкла должна быть целым числом ( integer ) Повтор цикла изменяется на 1 шаг ( to )  или равен на1 ( downto )  Если в теле цикла только один оператор , то begin  и end  можно опустить и не писать: Если конечное значение меньше начального значения, ( to ) циклы не повторяется ни разу ( условный цикл повторяется в начале,условие предварительно проверяет цикл)  переменная цыкла должна быть целым числом ( integer ) Повтор цикла изменяется на 1 шаг ( to )  или равен на1 ( downto )  Если в теле цикла только один оператор , то begin  и end  можно опустить и не писать: Если конечное значение меньше начального значения, ( to ) циклы не повторяется ни разу ( условный цикл повторяется в начале,условие предварительно проверяет цикл) for i:= 1  to 8 do  writeln( ' Привет ' );

Цикл с повтором

примечание:

  • переменная цыкла должна быть целым числом ( integer ) Повтор цикла изменяется на 1 шаг ( to ) или равен на1 ( downto ) Если в теле цикла только один оператор , то begin и end можно опустить и не писать: Если конечное значение меньше начального значения, ( to ) циклы не повторяется ни разу ( условный цикл повторяется в начале,условие предварительно проверяет цикл)
  • переменная цыкла должна быть целым числом ( integer )
  • Повтор цикла изменяется на 1 шаг ( to ) или равен на1 ( downto )
  • Если в теле цикла только один оператор , то begin и end можно опустить и не писать:
  • Если конечное значение меньше начального значения, ( to ) циклы не повторяется ни разу ( условный цикл повторяется в начале,условие предварительно проверяет цикл)

for i:= 1 to 8 do

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

Цикл с повтором Примечание : В теле цикла цикл с повтором нельзя изменять Начальное и конечное значение меняется , но количество шагов в цикле не изменяется: В теле цикла цикл с повтором нельзя изменять Начальное и конечное значение меняется , но количество шагов в цикле не изменяется: n := 8; for i:= 1  to n do begin  writeln( ‘ привет ' );  n := n + 1; end; Быстрый ответ

Цикл с повтором

Примечание :

  • В теле цикла цикл с повтором нельзя изменять Начальное и конечное значение меняется , но количество шагов в цикле не изменяется:
  • В теле цикла цикл с повтором нельзя изменять
  • Начальное и конечное значение меняется , но количество шагов в цикле не изменяется:

n := 8;

for i:= 1 to n do begin

writeln( привет ' );

n := n + 1;

end;

Быстрый ответ

Сколько раз повторяется цикл? a  :=  1; for i:= 1  to 3 do  a  :=  a+1; a  =  4 a  :=  1; for i:=3 to 1 do  a  :=  a+1; a  =  1 a  :=  1; for i:= 1 down to 3 do  a  :=  a+1; a  =  1 a  :=  1; for i:= 3 down to 1 do  a  :=  a+1; a  =  4

Сколько раз повторяется цикл?

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

Как изменить шаги? Задача . На экран вывести квадрат и куб нечетных чисел от 1- 9. примечание: повтор цикла возрастает в 2-раза.  Решение : Только с нечетными 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);

Как изменить шаги?

Задача . На экран вывести квадрат и куб нечетных чисел от 1- 9.

примечание: повтор цикла возрастает в 2-раза.

Решение :

Только с нечетными 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);

Как изменить шаги– 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;

Как изменить шаги– 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;

Как изменить шаги ? – III Идея: вывести только 5 цифр , переменная k изменяется от 1- 5. зная  k , вычислить i .  Решение i  =  2k-1 k 1 i 1 2 3 3 5 4 5 7 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;

Как изменить шаги ? – III

Идея: вывести только 5 цифр , переменная k изменяется от 1- 5. зная k , вычислить i .

Решение

i = 2k-1

k

1

i

1

2

3

3

5

4

5

7

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, …

пример :

1 1 1

2 4 8

4 16 64

...

46 2116 97336

Тема 5. Условные операторы IF CASE

Тема 5. Условные операторы

IF

CASE

Неопределенное количество шагов цикла Пример : разрезать ветку дерева . Сколько раз нужно двигать ручной пилой ? задача: (    Найти : определить сколько шагов нужно сделать . Решение : если n  =  0 то нужно остановиться , продолжаем до

Неопределенное количество шагов цикла

Пример : разрезать ветку дерева . Сколько раз нужно двигать ручной пилой ?

задача: (

Найти : определить сколько шагов нужно сделать .

Решение : если n = 0 то нужно остановиться , продолжаем до " n 0 ".

n

123

count

0

12

1

1

2

0

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(  ’ числа ’ , 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( числа , count, ’ найдена цифра );

end.

, n1: integer;

n1 := n;

" n 0 “ выполняется пока

while n 0 do begin

count := count + 1;

n := n div 10;

end;

n1,

do begin { тело цикла } end; особенности: Применяется в сложных условиях Если в теле цикла один оператор , begin и end не пишется: Применяется в сложных условиях Если в теле цикла один оператор , begin и end не пишется: while (a d o begin { тело ц икла } end; while a d o a := a + 1;" width="640"

Оператор повторения или цикл с предусловием

while условие повторения do begin

{ тело цикла }

end;

особенности:

  • Применяется в сложных условиях Если в теле цикла один оператор , begin и end не пишется:
  • Применяется в сложных условиях
  • Если в теле цикла один оператор , begin и end не пишется:

while (a d o begin

{ тело ц икла }

end;

while a d o

a := a + 1;

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

Операторы повторения

a := 4; b := 6;

while a b d o

a := a – b;

a := 4; b := 6;

while a d o

d := a + b;

b d o a := a + 1; 1 р b = -2 a := 4; b := 6; while a d o b := a - b; Программа не работает a := 4; b := 6; while a d o a := a - 1;" width="640"

Сколько раз повторяется Цикл ?

2 раза

a = 6

a := 4; b := 6;

while a d o a := a + 1;

1 р

a = 10

a := 4; b := 6;

while a d o a := a + b ;

0 р

a = 4

a := 4; b := 6;

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

1 р

b = -2

a := 4; b := 6;

while a d o b := a - b;

Программа не работает

a := 4; b := 6;

while a d o a := a - 1;

= 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 - цикл с предусловием

REPEAT – цикл с постусловием

i := 1;

while i d o begin

{ цикл }

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 1  =  1, a n +1  =  a n +1 a n  =  n 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 1 = 1, a n +1 = a n +1

a n = n

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? нет да S S := S + a; новый элемент конец a := z*b/c; b := b + 1; c := 2*c; z := -z; изменение" width="640"

Алгоритм

начало

Начальное значение

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

S := 0 ;

1-й элемент

a := 1;

|a| 0.001?

нет

да

S

S := S + a;

новый элемент

конец

a := z*b/c;

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

изменение

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; Учет элементов Перейти к следующему" width="640"

Программа

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;

Учет элементов

Перейти к следующему

Задание

Задание

"4": найти сумму элементов с точностью 0,001 :

ответ :

S = 1.157

"5":

ответ:

S = 1.220

0? нет Условие вывода да основной алгоритм Блок «типовой процесс» конец" width="640"

циклический алгоритм

начало

ввести n

Тело цикла

n 0?

нет

Условие вывода

да

основной алгоритм

Блок «типовой процесс»

конец

0; ... { основной алгоритм } end. repeat writeln(‘ ввести число '); read(n); until n 0; Условие вывода until n 0; особенности: Тело цикла должно повторится хотя бы 1 раз until («антил…до") после этого слова вывод условия Тело цикла должно повторится хотя бы 1 раз until («антил…до") после этого слова вывод условия" width="640"

Программа

program qq;

var n: integer;

begin

repeat

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

read(n);

until n 0;

... { основной алгоритм }

end.

repeat

writeln(‘ ввести число ');

read(n);

until n 0;

Условие вывода

until n 0;

особенности:

  • Тело цикла должно повторится хотя бы 1 раз until («антил…до") после этого слова вывод условия
  • Тело цикла должно повторится хотя бы 1 раз
  • until («антил…до") после этого слова вывод условия

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" width="640"

Сколько раз выполняется Цикл ?

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

Тема 6 . операторы выбора CASE

Тема 6 . операторы выбора CASE

операторы выбора при множнственном разветвлении задача: по вводу номеру месяца, вывести количество дней. Решение: Количество дней в месяце   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 (декабрь)

операторы выбора при множнственном разветвлении

задача: по вводу номеру месяца, вывести количество дней.

Решение: Количество дней в месяце

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 (декабрь)

Алгоритм начало ввести M да M  =  1?  операторы выбора D  :=  31; нет да M  =  2? D  :=  28; нет да M  =  12? D  :=  31; нет вывод D Не совпадает ни одно значение ошибка конец

Алгоритм

начало

ввести M

да

M = 1?

операторы выбора

D := 31;

нет

да

M = 2?

D := 28;

нет

да

M = 12?

D := 31;

нет

вывод 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; ешбір нұсқасы сәйкес келген жоқ" width="640"

Программа

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;

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

операторы выбора case особенности:  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(‘ 1111 ');  ' б ': writeln(‘ 2222 ');  else writeln(‘ не знаю '); end;

операторы выбора case

особенности:

  • 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(‘ 1111 ');

' б ': writeln(‘ 2222 ');

else writeln(‘ не знаю ');

end;

операторы выбора Если выполняется только один оператор , 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;

операторы выбора

  • Если выполняется только один оператор , 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;

Операторы выбора case case i  of  1: a := b;  2,4 ,6 : a := c;  10..15: a := d;  20,21,25..30: a := e;  else writeln(‘ Ошибка ');  end; Поочередной подсчет диапазон комбинированные

Операторы выбора case

case i of

1: a := b;

2,4 ,6 : a := c;

10..15: a := d;

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

else writeln(‘ Ошибка ');

end;

Поочередной подсчет

диапазон

комбинированные

Найдите ошибку. Где ошибка ? 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;

Найдите ошибку. Где ошибка ?

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;

Тема 7. Графика

Тема 7. Графика

Система к оординат X (0,0) y ( x , y ) x Y

Система к оординат

X

(0,0)

y

( x , y )

x

Y

Управление цветами Цвет и толщина линии  , цвет точек:  Pen ( 1, 255, 0, 0 );   Цвет и стил заливки:  Brush ( 1, 0, 255, 0 );  Pen ( 1, 255, 0, 0 );   Цвет и стил заливки:  Brush ( 1, 0, 255, 0 ); Цвет текста:  TextColor ( 0 , 0, 255 );  TextColor ( 0 , 0, 255 ); B ( blue ) 0..255 G ( green ) 0..255 R ( red ) 0..255 Толщина линии B R G 0 – удаленине 1 - сложение R G B

Управление цветами

Цвет и толщина линии , цвет точек:

Pen ( 1, 255, 0, 0 );

Цвет и стил заливки:

Brush ( 1, 0, 255, 0 );

  • Pen ( 1, 255, 0, 0 ); Цвет и стил заливки: Brush ( 1, 0, 255, 0 );

Цвет текста:

TextColor ( 0 , 0, 255 );

  • TextColor ( 0 , 0, 255 );

B ( blue )

0..255

G ( green )

0..255

R ( red )

0..255

Толщина линии

B

R

G

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 )  86

Точки , отрезкии кривые линии

( 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 )

86

Заливка Фигуры ( 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) ; 86 87

Заливка Фигуры

( 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) ;

86

87

Приветствую ! Текст TextColor  (0, 0, 255) ; Brush  (1, 255, 255, 0) ; Font  (20, 30 , 600 ) ; MoveTo  (x, y) ; writeln  (‘ приветствую ! ') ; ( x , y )  600 – толщина  измерение 10 пиксель Угол наклона 30 о 87 87

Приветствую !

Текст

TextColor (0, 0, 255) ;

Brush (1, 255, 255, 0) ;

Font (20, 30 , 600 ) ;

MoveTo (x, y) ;

writeln (‘ приветствую ! ') ;

( x , y )

600 – толщина

измерение

10 пиксель

Угол наклона

30 о

87

87

Пример 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) 87 87

Пример

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)

87

87

Задание

Задание

"4": « лягушка "

"5": « корона "

87

87

Штрихи 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 ; 87 87

Штрихи

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 ;

87

87

Как изменить фон ? ( 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; 87 87

Как изменить фон ?

( 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;

87

87

рисование - Штрихи 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; 87 87

рисование - Штрихи

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;

87

87

Рисование Штрихов ( 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 ) 87 87

Рисование Штрихов

( 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 )

87

87

Тема 8 . Графики функций 87

Тема 8 . Графики функций

87

Построение графика функций Задача : между интервалом 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 функция координат показана в математической системе , а график координат показан в пикселях на экране компьютера  87 87

Построение графика функций

Задача : между интервалом 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

функция координат показана в математической системе , а график координат показан в пикселях на экране компьютера

87

87

Изменение Координат Координаты в математической системе Координаты экранной системы (пиксель) Y a ( 0 , 0 ) x y э ( x , y ) b x э y ( x э , y э ) X ( 0 , 0 ) k – масштаб x э  =  a  +  kx y э  =  b  -  ky 87 87

Изменение Координат

Координаты в математической системе

Координаты экранной системы (пиксель)

Y

a

( 0 , 0 )

x

y э

( x , y )

b

x э

y

( x э , y э )

X

( 0 , 0 )

k – масштаб

x э = a + kx

y э = b - ky

87

87

Программа  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 – ОХ длина оси ( количествопиксель) ось координат цикл построения графика ?  недостатки ? 87 98

Программа

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 π

hx -шаги изменения

на экране

w – ОХ длина оси

( количествопиксель)

ось координат

цикл построения графика

?

недостатки ?

87

98

Как соединить точки? Алгоритм: Программа: Логические переменные  Если есть одна точка ( 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. Начальное значение Выбор действия 98 98

Как соединить точки?

Алгоритм:

Программа:

Логические переменные

Если есть одна точка ( 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.

Начальное значение

Выбор действия

98

98

Задание

Задание

"4": на интервале [-3,3]

построить график функции y = x2

"5": Построить график функции ( эллипс)

98

98

Тема 9. Процедуры 98

Тема 9. Процедуры

98

Процедуры Задача : Построить фигуру : Особенность : 3 фигуры похожи. Общее: размеры , углы поворота Отличия : координаты, цвета  Общее: размеры , углы поворота Отличия : координаты, цвета  98 98

Процедуры

Задача : Построить фигуру :

Особенность : 3 фигуры похожи.

Общее: размеры , углы поворота

Отличия : координаты, цвета

  • Общее: размеры , углы поворота Отличия : координаты, цвета

98

98

Процедуралар Процедура – вспомогательные операторы для выполнения некоторых действий. Применение: программаның әр жерінде орналасқан бірдей әрекеттерді орындау программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу  программаның әр жерінде орналасқан бірдей әрекеттерді орындау программаны түсіну оңай болу үшін оны бірнеше қосалқы бөліктерге бөлу  Негізгі есеп Көмекші есеп3 Көмекші есеп 2 Көмекші есеп1 3 .2 3 .3 3 .1 2 .3 2 .2 2 .1 1.3 1.2 1.1 98 103

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

Процедура – вспомогательные операторы для выполнения некоторых действий.

Применение:

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

Негізгі есеп

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

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

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

3 .2

3 .3

3 .1

2 .3

2 .2

2 .1

1.3

1.2

1.1

98

103

Процедуралар Есепті орындау тәртібі: бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура) олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады бірдей немесе ұқсас әрекеттерді ерекшелеп алу (үш фигура) олардың ұқсас жерлері (өлшемі, пішіні, айналу бұрышы) мен айырмашылықтарын (координаталары, түсі) табу айырмашықтарын белгісіз айнымалылар түрінде өрнектеу, осы айнымалылар процедураның параметрлері болады параметрлер тақырыбы ( 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 ) координаталар процедура тұлғасы 103 104

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

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

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

параметрлер

тақырыбы

( 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 )

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

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

103

104

Программа формальды параметрлер 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 процедураны шақырулар процедура нақтылы параметрлер 104 104

Программа

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

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

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

процедура

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

104

104

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

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

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

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

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

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

x

y

r

g

b

104

104

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

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

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

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

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

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

104

104

Процедуралар Ерекшеліктері: процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды процедурада қосымша айнымалы ретінде жергілікті (локальді) айнымалыларды пайдалануға болады, басқа процедуралар оған қатынай алмайды  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; 104 104

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

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

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

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;

104

104

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

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

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

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

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

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

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

104

104

Параметр-айнымалылар параметрлер өзгере алады 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 );  { өрнектер } 104 104

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

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

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 ); { өрнектер }

104

104

Тапсырмалар

Тапсырмалар

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

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

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

a

a

0,866 a

a

104

111

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

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

111

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

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

Мысалдар:

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

Факториал:

егер

егер

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

111

111

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

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

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

6 деңгей:

?

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

111

114

Пифагор ағашы Ерекшеліктері: қашан тоқтау керек? ағаштардың иілу бұрышы әр түрлі қашан тоқтау керек? ағаштардың иілу бұрышы әр түрлі Қалған деңгейлердің саны нөлге тең болғанда! 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 ) 114 114

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

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

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

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

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 )

114

114

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 болса, аяқтау рекурсивті шақырулар Рекурсивті процедура деп өзін өзі шақыратын процедураны айтады 114 114" width="640"

Процедура

α бұрышы

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

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 болса, аяқтау

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

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

114

114

Программа  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); 114 117

Программа

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);

114

117

Задания

Задания

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

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

117

117

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

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

117

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

Анимация

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

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

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

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

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

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

117

117

«Пернелерді шертуді» қалай іске асыруға болады? Оқиға  деп қандай да бір объектінің қалпында өзгерістің болуын немесе пайдаланушының әрекетін айтады. (пернені басу, тышқанды шерту). 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; 117 117

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

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

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;

117

117

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 ) болатын перне басылса, онда стоп 117 117

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 ) болатын перне басылса, онда стоп

117

117

Процедура (сурет салу және өшіру) Идеялар бір процедура суретті салады және өшіреді өшіру = фонның түсімен бояу квадраттың шекарасын өшіріп тастау (негізгі программада) бір процедура суретті салады және өшіреді өшіру = фонның түсімен бояу квадраттың шекарасын өшіріп тастау (негізгі программада) ( 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; сурет саламыз: қылқаламның түсі – сары суретті өшіреміз: қылқаламның түсі – көк тек қана құю! 117 117

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

Идеялар

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

( 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;

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

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

тек қана құю!

117

117

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

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

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 мс күтеміз

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

117

117

Тапсырмалар

Тапсырмалар

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

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

117

117

Пернелермен басқару Есеп : көк квадраттың ішінде орналасқан сары квадрат бағыттаушы пернелермен басқарылатындай болуы керек. Пернелердің коды:    солға – 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; 117 117

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

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

солға – 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;

117

117

Программасы 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; ?  Кемшілігі ? 117 127

Программасы

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;

?

Кемшілігі ?

117

127

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

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

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

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

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

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

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

while not IsEvent do;

127

127

Программасы 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); ... ?  Нені жақсартуға болады ? 127 129

Программасы

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);

...

?

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

127

129

Тапсырмалар

Тапсырмалар

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

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

129

129

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

Айналу

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

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

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

( x , y )

L

x = x 0 + L · cos ( α )

y = y 0 L · sin( α )

α

( x 0 , y 0 )

129

129

Процедура сурет салу ( 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 ) 129 129

Процедура

сурет салу ( 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 )

129

129

Тұрақтылар мен айнымалылар 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; 129 129

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

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;

129

129

Негізгі программа 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 бұрышына бұрылу 129 129

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

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 бұрышына бұрылу

129

129

Тапсырмалар

Тапсырмалар

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

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

129

129

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

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

129

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

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

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

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

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

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

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

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

129

129

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

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

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

Мысалдар :

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

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

2 30 -1

жай сан

мысал, k = 5

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

129

129

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

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

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

орналасуы

бірқалыпты

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

a

a

b

b

?

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

129

139

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

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

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

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

a

a

b

b

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

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

139

139

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

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

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

var x: integer;

...

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

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

var x: real;

...

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

139

139

Кездейсоқ сандар Есеп : 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 ); 139 139

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

Есеп : 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 );

139

139

Программа 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 пернесін басып шығып кету 139 139

Программа

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 пернесін басып шығып кету

139

139

Тапсырмалар

Тапсырмалар

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

"5": Үшбұрыштың ішін түстері кездейсоқ болатын нүктелермен толтыру. (бірқалыпты немесе бірқалыпты емес).

Қосымша көмек : бұрышы 45 о болатын теңбүйірлі үшбұрышты алу керек .

(100,100)

(300,200)

139

139

Тақырып 13 . Функциялар 139

Тақырып 13 . Функциялар

139

Функциялар Функция –  нәтижесі қандай да бір мәнге ие болатын көмекші алгоритм (қосалқы программа). Мысалдар :   , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?)   , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?) Неліктен?  программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін функциялардың жалпыға бірдей кітапханаларын құру үшін программаның әр жерінде орналасқан бірдей есептеулерді орындау үшін функциялардың жалпыға бірдей кітапханаларын құру үшін ?  Процедурадан айырмашылығы неде ? 139 146

Функциялар

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

Мысалдар :

  • , , есептеу өрнектерді күрделі формулалармен есептеу сұраққа жауап (жай сан ба, әлде жай сан емес пе?)
  • , , есептеу
  • өрнектерді күрделі формулалармен есептеу
  • сұраққа жауап (жай сан ба, әлде жай сан емес пе?)

Неліктен?

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

?

Процедурадан айырмашылығы неде ?

139

146

b then Max := a else Max := b; end. бұл функцияны нәтижесі 146 146" width="640"

Функциялар

Есеп: екі санның үлкенін анықтайтын функция құру және оны қолдануға мысал келтіру

Функция:

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

function Max (a, b: integer): integer;

begin

if a b then Max := a

else Max := b;

end.

бұл функцияны нәтижесі

146

146

Функциялар Ерекшеліктері: тақырыбы 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 146 148

Функциялар

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

  • тақырыбы 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

146

148

Функциялар Ерекшеліктері: жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ : жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ : 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; 148 149

Функциялар

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

  • жергілікті айнымалыларды жариялауға және пайдалануға болады нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ :
  • жергілікті айнымалыларды жариялауға және пайдалануға болады
  • нәтиже болатын мән - аты функцияның атымен сәйкес келетін айнымалыға жазылады; оны жариялаудың ҚАЖЕТІ ЖОҚ :

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;

148

149

Программа 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 !  Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек! 149 150

Программа

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

!

Айнымалылардың, функциялардың және процедуралардың аттары бірдей болмауы керек!

149

150

Логикалық функциялар Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру. Ерекшеліктері: жауабы – логикалық мән ( 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; ?  Қалай жақсартуға болады ? 150 151

Логикалық функциялар

Есеп: енгізілген санның - жай сан екендігін анықтайтын функция құру.

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

  • жауабы – логикалық мән ( 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;

?

Қалай жақсартуға болады ?

150

151

Логикалық функциялар 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; таңдап алу тек -ге дейін шарт дегеніміз – логикалық мән функцияны шақыру 151 151

Логикалық функциялар

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;

таңдап алу тек -ге дейін

шарт дегеніміз – логикалық мән

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

151

151

Тапсырмалар

Тапсырмалар

"4": 1-ден N -ге дейінгі сандардың қосындысын анықтайтын функция құру және оны қолдануға мысал келтіру .

Мысал:

Сан енгіз:

1 00

қосынды = 5050

"5": Шахматты ойлап шығарған адамның N -ші торға неше бидайдың қоюын сұрағанын анықтайтын функция құру. ( 1-шісіне – 1 дән, 2-шісіне – 2 дән, 3-шісіне – 4 бидай дәнін, …)

Мысал:

Тордың нөмірін енгіз:

28

28-шісі торда 134217728 бидай дәні.

151

151

Тапсырмалар (2-нұсқа)

Тапсырмалар (2-нұсқа)

"4": Екі натурал санның ең үлкен ортақ бөлгішін анықтайтын функция құру және оны қолдануға мысал келтіру.

Мысал:

Екі сан енгіз:

14 21

ЕҮОБ(14,21)=7

"5": Синус функциясын қатардың қосындысы секілді есептейтін функция құру. (0.001 дәлдікпен)

Мысал:

Градус түріндегі бұрышты енгіз:

45

sin(45) = 0.707

x радиан түрінде!

151

151

Фильмнің соңы 151 151

Фильмнің соңы

151

151


Получите в подарок сайт учителя

Предмет: Информатика

Категория: Презентации

Целевая аудитория: 9 класс

Скачать
Паскаль в 9 классах презентации

Автор: Жуманбаева Райхан Кашкинбековна

Дата: 13.11.2014

Номер свидетельства: 130341

Похожие файлы

object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(100) "Презентация по информатике "Паскаль программирование""
    ["seo_title"] => string(53) "priezientatsiiapoinformatikiepaskalproghrammirovaniie"
    ["file_id"] => string(6) "322598"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1461635105"
  }
}
object(ArrayObject)#874 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(56) "Использование строк в Паскаль "
    ["seo_title"] => string(29) "ispol-zovaniie-strok-v-paskal"
    ["file_id"] => string(6) "106085"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1402940001"
  }
}
object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(100) "Организация циклов в языке программирования Паскаль. "
    ["seo_title"] => string(58) "orghanizatsiia-tsiklov-v-iazykie-proghrammirovaniia-paskal"
    ["file_id"] => string(6) "117336"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1412769847"
  }
}
object(ArrayObject)#874 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(121) "Типовые задачи на обработку одномерных массивов данных в Паскале "
    ["seo_title"] => string(70) "tipovyie-zadachi-na-obrabotku-odnomiernykh-massivov-dannykh-v-paskalie"
    ["file_id"] => string(6) "107066"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1403162538"
  }
}
object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(170) "Конспект урока математики "Деление обыкновенных дробей 5 класс", с презентацией к урокуацией "
    ["seo_title"] => string(103) "konspiekt-uroka-matiematiki-dielieniie-obyknoviennykh-drobiei-5-klass-s-priezientatsiiei-k-urokuatsiiei"
    ["file_id"] => string(6) "205777"
    ["category_seo"] => string(10) "matematika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1430025922"
  }
}



ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства