Разделы презентаций


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

Содержание

АлгоритмСвойства алгоритмадискретность: состоит из отдельных шагов (команд)понятность: должен включать только команды, известные исполнителю (входящие в СКИ)определенность: при одинаковых исходных данных всегда выдает один и тот же результатконечность: заканчивается за конечное число

Слайды и текст этой презентации

Слайд 1Программирование на языке Паскаль
Тема 1. Введение
© К.Ю. Поляков

Программирование  на языке ПаскальТема 1. Введение© К.Ю. Поляков

Слайд 2Алгоритм
Свойства алгоритма
дискретность: состоит из отдельных шагов (команд)
понятность: должен включать только

команды, известные исполнителю (входящие в СКИ)
определенность: при одинаковых исходных данных

всегда выдает один и тот же результат
конечность: заканчивается за конечное число шагов
массовость: может применяться многократно при различных исходных данных
корректность: дает верное решение при любых допустимых исходных данных

Алгоритм – это четко определенный план действий для исполнителя.

АлгоритмСвойства алгоритмадискретность: состоит из отдельных шагов (команд)понятность: должен включать только команды, известные исполнителю (входящие в СКИ)определенность: при

Слайд 3Программа
Программа – это
алгоритм, записанный на каком-либо языке программирования
набор команд

для компьютера
Команда – это описание действий, которые должен выполнить компьютер.

откуда взять исходные данные?
что нужно с ними сделать?

1970 – язык Паскаль (Н. Вирт)

Оператор – это команда языка программирования высокого уровня.

ПрограммаПрограмма – это алгоритм, записанный на каком-либо языке программированиянабор команд для компьютераКоманда – это описание действий, которые

Слайд 4Простейшая программа
program qq;
begin { начало программы }
end. { конец программы

}
комментарии в фигурных скобках не обрабатываются
название программы

Простейшая программаprogram qq;begin { начало программы }end. { конец программы }комментарии в фигурных скобках не обрабатываютсяназвание программы

Слайд 5Вывод текста на экран
program qq;
begin
write('2+'); { без перехода

}
writeln('2=?'); { на новую строку}
writeln('Ответ: 4');
end.
Протокол:
2+2=?

Ответ: 4
Вывод текста на экранprogram qq;begin write('2+');  { без перехода } writeln('2=?'); { на новую строку} writeln('Ответ:

Слайд 6Задания
«4»: Вывести на экран текст "лесенкой"
Вася

пошел
гулять
«5»:

Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
Задания«4»: Вывести на экран текст

Слайд 7Переменные
Задача. Ввести с клавиатуры два числа и найти их сумму.
Протокол:

Введите два целых числа
25 30
25+30=55
компьютер
пользователь
компьютер считает сам!

ПеременныеЗадача. Ввести с клавиатуры два числа и найти их сумму.Протокол: Введите два целых числа 25 30 25+30=55компьютерпользователькомпьютер

Слайд 8Программа
program qq;
begin
{ ввести два числа }
{ вычислить их

сумму }
{ вывести сумму на экран }
end.
Псевдокод:

алгоритм на русском языке с элементами Паскаля.
Программаprogram qq;begin { ввести два числа } { вычислить их сумму } { вывести сумму на экран

Слайд 9Переменные
Переменная – это величина, имеющая имя, тип и значение. Значение

переменной можно изменять во время работы программы.
a
Значение
Имя
Другой тип данных

ПеременныеПеременная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.aЗначениеИмяДругой

Слайд 10Имена переменных
В именах МОЖНО использовать
латинские буквы (A-Z)


цифры


знак подчеркивания _
заглавные и

строчные буквы не различаются
В именах НЕЛЬЗЯ использовать
русские буквы
пробелы
скобки, знаки +,

=, !, ? и др.

имя не может начинаться с цифры

Какие имена правильные??
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Имена переменныхВ именах МОЖНО использоватьлатинские буквы (A-Z)цифрызнак подчеркивания _заглавные и строчные буквы не различаютсяВ именах НЕЛЬЗЯ использоватьрусские

Слайд 11Переменные
Типы переменных:
integer { целая }
real { вещественная }
и другие…
Объявление переменных:
var a, b,

c: integer;
Выделение места в памяти
variable – переменная
тип – целые


список имен переменных

ПеременныеТипы переменных:integer		{ целая }real		{ вещественная }и другие…Объявление переменных:var 	a, b, c: integer;Выделение места в памятиvariable – переменная

Слайд 12Как записать значение в переменную?
a := 5;
Оператор присваивания
5
Оператор – это

команда языка программирова-ния (инструкция).
Оператор присваивания – это команда для записи

нового значения в переменную.

a

Как записать значение в переменную?a := 5;Оператор присваивания5Оператор – это команда языка программирова-ния (инструкция).Оператор присваивания – это

Слайд 13Блок-схема линейного алгоритма
начало
конец
c := a + b;
ввод a, b
вывод c
блок

«начало»
блок «ввод»
блок «процесс»
блок «вывод»
блок «конец»

Блок-схема линейного алгоритманачалоконецc := a + b;ввод a, bвывод cблок «начало»блок «ввод»блок «процесс»блок «вывод»блок «конец»

Слайд 14Как ввести значение с клавиатуры
read ( a );
Оператор ввода
5
a

Как ввести значение с клавиатурыread ( a );Оператор ввода5a

Слайд 15Ввод значений двух переменных
через пробел:
25 30
через Enter:
25
30
read ( a,

b );
Ввод значений двух переменных (через пробел или Enter).

Ввод значений двух переменныхчерез пробел:	25 30через Enter:	25 	30read ( a, b );Ввод значений двух переменных (через пробел

Слайд 16Оператор вывода
{ вывод значения переменной a}
{ вывод значения переменной a

и переход на новую строчку}
{ вывод текста }
{вывод текста и

значения переменной c}

write( a );

writeln( a );

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

writeln( 'Ответ: ', c );

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

Оператор вывода{ вывод значения переменной a}{ вывод значения переменной a и переход на новую строчку}{ вывод текста

Слайд 17Сложение двух чисел
Задача. Ввести два целых числа и вывести на

экран их сумму.
Простейшее решение:
program qq;
var a, b, c: integer;
begin

read ( a, b );
c := a + b;
writeln ( c );
end.
Сложение двух чиселЗадача. Ввести два целых числа и вывести на экран их сумму.Простейшее решение:	program qq;	var a, b,

Слайд 18Полное решение
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

компьютер

пользователь

Полное решение	program qq;	var a, b, c: integer;	begin  writeln('Введите два целых числа');  read ( a, b

Слайд 19Как изменить значение переменной?
program qq;
var a, b: integer;
begin
a :=

5;
b := a + 2;
a := (a +

2)*(b – 3);
b := b + 1;
end.

a

?

5

5

b

?

5+2

7

a

5

7*4

28

Пример:

b

7

7+1

8

Как изменить значение переменной?	program qq;	var a, b: integer;	begin	 a := 5;	 b := a + 2;	 a

Слайд 20Арифметические операции
+ сложение – вычитание
* умножение / деление
div деление нацело

(остаток отбрасывается)
mod остаток от деления
var a, b: integer;
begin
a :=

7*3 - 4; { 17 }
a := a * 5; { 85 }
b := a div 10; { 8 }
a := a mod 10; { 5 }
end.
Арифметические операции+ сложение		– вычитание * умножение		/ деление div деление нацело (остаток отбрасывается)mod остаток от деленияvar a, b:

Слайд 21 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.

Какие операторы неправильные?

имя переменной должно быть слева от знака :=

целая и дробная часть отделяются точкой

нельзя записывать вещественное значение в целую переменную

program qq;	var a, b: integer;		 x, y: real; 	begin	 a := 5;   10 := x;

Слайд 22Порядок выполнения операций
вычисление выражений в скобках
умножение, деление, div, mod слева

направо
сложение и вычитание слева направо
z := (5*a+c)/a*(b-c)/ b;
x:=(5*c*c-d*(a+b))/((c+d)*(d-2*a));
1 2

4 5 3 6

2 3 5 4 1 10 6 9 8 7

Порядок выполнения операцийвычисление выражений в скобкахумножение, деление, div, mod слева направосложение и вычитание слева направоz := (5*a+c)/a*(b-c)/

Слайд 23Ручная прокрутка программы
program qq;
var a, b: integer;
begin
a := 5;

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

– 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.
Ручная прокрутка программыprogram qq;var 	a, b: integer;begin a := 5; b := a + 2; a :=

Слайд 24Вывод целых чисел
program qq;
var a, b: integer;
begin
a := 15;

b := 45;
writeln ( a, b );
writeln

( a:4, b:4 );
end.

15 45

1545

Вывод целых чиселprogram qq;var a, b: integer;begin a := 15; b := 45;  writeln ( a,

Слайд 25Вывод вещественных чисел
program qq;
var x: real;
begin
x := 12.345678;
writeln

( x );
writeln ( x:10 );
writeln ( x:7:2

);
end.

12.35

всего символов

всего символов

в дробной части

1.23E+001

1.234568E+001

1,234568∙101

Вывод вещественных чиселprogram qq;var x: real;begin x := 12.345678; writeln ( x ); writeln ( x:10 );

Слайд 26Задания
«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
Задания«4»: Ввести три числа, найти их сумму и произведение.  Пример:	 Введите три числа:	 4  5

Слайд 27Программирование на языке Паскаль
Тема 2. Ветвления
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 2. Ветвления© К.Ю. Поляков, 2006-2010

Слайд 28Разветвляющиеся алгоритмы
Задача. Ввести два целых числа и вывести на экран

наибольшее из них.
Идея решения: надо вывести на экран первое число,

если оно больше второго, или второе, если оно больше первого.
Особенность: действия исполнителя зависят от некоторых условий (если … иначе …).

Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.

Разветвляющиеся алгоритмыЗадача. Ввести два целых числа и вывести на экран наибольшее из них.Идея решения: надо вывести на

Слайд 29Вариант 1. Блок-схема
полная форма ветвления
блок «решение»

Вариант 1. Блок-схемаполная форма ветвленияблок «решение»

Слайд 30Вариант 1. Программа

max := a;
max := b;
полная форма условного оператора
program

qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');

read ( a, b );
if a > b then begin

end
else begin

end;
writeln ('Наибольшее число ', max);
end.
Вариант 1. Программа	max := a;max := b;полная форма условного оператора	program qq;	var a, b, max: integer;	begin  writeln('Введите

Слайд 31Условный оператор
if then begin
{что делать, если условие

верно}
end
else begin
{что делать,

если условие неверно}
end;

Особенности:
перед else НЕ ставится точка с запятой
вторая часть (else …) может отсутствовать (неполная форма)
если в блоке один оператор, можно убрать слова begin и end

Условный оператор	if then begin  {что делать, если условие верно}    end else begin

Слайд 32Что неправильно?
if a > b then begin
a :=

b;
end
else
b := a;

end;

if a > b then begin
a := b;
else begin
b := a;
end;

if a > b then begin
a := b;
end;
else begin
b := a;
end;

if a > b then begin
a := b;
end
else b > a begin
b := a;
end;

begin

end

begin

end

Что неправильно?	if a > b then begin  a := b;  end else  b :=

Слайд 33Вариант 2. Блок-схема
неполная форма ветвления

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

Слайд 34Вариант 2. Программа

program qq;
var a, b, max: integer;
begin
writeln('Введите

два целых числа');
read ( a, b );

max := a;
if b > a then
max := b;
writeln ('Наибольшее число ', max);
end.

неполная форма условного оператора

Вариант 2. Программа		program qq;	var a, b, max: integer;	begin  writeln('Введите два целых числа');  read ( a,

Слайд 35Вариант 2Б. Программа
program qq;
var a, b, max: integer;
begin
writeln('Введите

два целых числа');
read ( a, b );

max := b;
if ??? then
???
writeln ('Наибольшее число ', max);
end.

max := a;

a > b

Вариант 2Б. Программа	program qq;	var a, b, max: integer;	begin  writeln('Введите два целых числа');  read ( a,

Слайд 36Что неправильно?
if a > b then begin
a

:= b;
else b := a;
if a

> b then begin
a := b;
end;
else b := a;

if a > b then
else begin
b := a;
end;

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

a := b

end

a := b


if b >= a then
b := a;

Что неправильно?	if a > b then begin   a := b;  else b := a;

Слайд 37Задания
«4»: Ввести три числа и найти наибольшее из них.

Пример:
Введите три числа:
4 15 9
Наибольшее число 15
«5»: Ввести

пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Задания«4»: Ввести три числа и найти наибольшее из них.  Пример:		Введите три числа:		4  15  9		Наибольшее

Слайд 38Программирование на языке Паскаль
Тема 3. Сложные условия
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 3. Сложные условия© К.Ю. Поляков, 2006-2010

Слайд 39Сложные условия
Задача. Фирма набирает сотрудников от 25 до 40 лет

включительно. Ввести возраст человека и определить, подходит ли он фирме

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

Слайд 40Вариант 1. Алгоритм
начало
ввод x
'подходит'
конец
да
нет
x >= 25?
да
нет
x

Вариант 1. Алгоритмначаловвод x'подходит'конецданетx >= 25?данетx

Слайд 41Вариант 1. Программа

program qq;
var x: integer;
begin
writeln('Введите возраст');

read ( x );
if x >= 25 then

if x <= 40 then
writeln ('Подходит')
else writeln ('Не подходит')
else
writeln ('Не подходит');
end.
Вариант 1. Программа		program qq;	var x: integer;	begin  writeln('Введите возраст');  read ( x );  if x

Слайд 42Вариант 2. Алгоритм
начало
ввод x
'подходит'
да
нет
x >= 25 и
x

Вариант 2. Алгоритмначаловвод x'подходит'данетx >= 25  иx

Слайд 43Вариант 2. Программа
сложное условие
program qq;
var x: integer;
begin
writeln('Введите возраст');

read ( x );
if (x >= 25)

and (x <= 40) then
writeln ('Подходит')
else writeln ('Не подходит')
end.
Вариант 2. Программасложное условие	program qq;	var x: integer;	begin  writeln('Введите возраст');  read ( x );  if

Слайд 44Сложные условия
Простые условия (отношения)
<

>= =
Сложное условие – это условие,

состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:
not – НЕ (отрицание, инверсия)
and – И (одновременное выполнение условий)
or – ИЛИ (выполнение хотя бы одного из условий)

равно

не равно

Сложные условияПростые условия (отношения)  <    >=  =  Сложное условие – это

Слайд 45Сложные условия
Порядок выполнения (приоритет = старшинство)
выражения в скобках
not
and
or

>=, =,
Особенность – каждое из простых условий обязательно заключать

в скобки.
Пример

4 1 6 2 5 3

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

Сложные условияПорядок выполнения (приоритет = старшинство)выражения в скобкахnotandor=, =, Особенность – каждое из простых условий обязательно заключать

Слайд 46Истинно или ложно при a := 2; b := 3;

c := 4;
not (a > b)
(a < b) and (b

< c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) and (b > c)
Для каких значений x истинны условия:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)

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

True

True

FALSE

(-; 6)


(6; 10)

(10; )

(-; 10)

(-; 6)  (10;)

(-; )

(6; )

x < 6

x > 10

x < 10

x > 6

True

True

Истинно или ложно при a := 2; b := 3; c := 4;not (a > b)(a <

Слайд 47Задания
«4»: Ввести номер месяца и вывести название времени года.

Пример:
Введите номер месяца:
4
весна
«5»: Ввести возраст человека (от 1 до 150

лет) и вывести его вместе с последующим словом «год», «года» или «лет».
Пример:
Введите возраст: Введите возраст:
24 57
Вам 24 года Вам 57 лет
Задания«4»: Ввести номер месяца и вывести название времени года.  Пример:		Введите номер месяца:		4		весна«5»: Ввести возраст человека (от

Слайд 48Программирование на языке Паскаль
Тема 4. Циклы
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 4. Циклы© К.Ю. Поляков, 2006-2010

Слайд 49Циклы
Цикл – это многократное выполнение одинаковой последовательности действий.
цикл с известным

числом шагов
цикл с неизвестным числом шагов (цикл с условием)
Задача. Вывести

на экран 5 раз слово «Привет».
Особенность: одинаковые действия выполняются 5 раз.
ЦиклыЦикл – это многократное выполнение одинаковой последовательности действий.цикл с известным числом шаговцикл с неизвестным числом шагов (цикл

Слайд 50Циклы
program qq;
begin
writeln('Привет');
writeln('Привет');
writeln('Привет');
writeln('Привет');

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

Циклыprogram qq;begin writeln('Привет');  writeln('Привет');  writeln('Привет');  writeln('Привет');  writeln('Привет'); end.

Слайд 51Циклы
program qq;
begin
{ сделай 5 раз }
writeln('Привет');
end.
i

:= i + 1;

Циклыprogram qq;begin { сделай 5 раз }  writeln('Привет'); end.i := i + 1;

Слайд 52Алгоритм
начало
Привет!
конец
да
нет
i = 5?
i := 0;
i := i + 1;
еще не

сделали ни одного раза
проверить, все ли сделали
вывод на экран
считаем очередной

шаг
АлгоритмначалоПривет!конецданетi = 5?i := 0;i := i + 1;еще не сделали ни одного разапроверить, все ли сделаливывод

Слайд 53Циклы
program qq;
var i: integer;
begin
for i:=1 to 5 do

writeln('Привет');
end.
«Для всех i от 1 до 5
делай …»
for

i:=1 to 5 do

Если в цикле более одного оператора:

for i:=1 to 5 do begin
write('Привет');
writeln(', Вася!');
end;

begin

end;

Циклыprogram qq;var i: integer;begin for i:=1 to 5 do  writeln('Привет'); end.«Для всех i от 1 до

Слайд 54Циклы
Задача. Вывести на экран квадраты и кубы целых чисел от

1 до 8 (от a до b).
Особенность: одинаковые действия выполняются

8 раз.

i := 1; { очередное число }
i2 := i*i; { его квадрат }
i3 := i2*i; { куб }
writeln(i:4, i2:4, i3:4);
i := 2;
...

ЦиклыЗадача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a до b).Особенность:

Слайд 55Алгоритм
начало
i, i2, i3
конец
нет
да
i

1;
i2 := i * i;
i3 := i2 * i;
задать начальное

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

проверить, все ли сделали

вычисляем квадрат и куб

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

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

Алгоритмначалоi, i2, i3конецнетдаi

Слайд 56Алгоритм (с блоком «цикл»)
начало
i, i2, i3
конец
i2 := i * i;
i3

:= i2 * i;
i := 1,8
блок «цикл»
тело цикла

Алгоритм (с блоком «цикл»)началоi, i2, i3конецi2 := i * i;i3 := i2 * i;i := 1,8блок «цикл»тело

Слайд 57Программа
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;

Слайд 58Цикл с уменьшением переменной
Задача. Вывести на экран квадраты и кубы

целых чисел от 8 до 1 (в обратном порядке).
Особенность: переменная

цикла должна уменьшаться.
Решение:

for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

downto

Цикл с уменьшением переменнойЗадача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в

Слайд 59Цикл с переменной
for := to

do begin
{тело цикла}

end;

Увеличение переменной на 1:

for <переменная> := <начальное значение> downto
<конечное значение> do begin
{тело цикла}
end;

Уменьшение переменной на 1:

Цикл с переменной	for := to   do begin  {тело цикла}    end;Увеличение переменной

Слайд 60Цикл с переменной
Особенности:
переменная цикла может быть только целой (integer)
шаг изменения

переменной цикла всегда равен 1 (to) или -1 (downto)
если в

теле цикла только один оператор, слова begin и end можно не писать:
если конечное значение меньше начального, цикл (to) не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)

for i:=1 to 8 do
writeln('Привет');

Цикл с переменнойОсобенности:переменная цикла может быть только целой (integer)шаг изменения переменной цикла всегда равен 1 (to) или

Слайд 61Цикл с переменной
Особенности:
в теле цикла не разрешается изменять переменную цикла

(почему?)
при изменении начального и конечного значения внутри цикла количество шагов

не изменится:

n := 8;
for i:=1 to n do begin
writeln('Привет');
n := n + 1;
end;

нет зацикливания

Цикл с переменнойОсобенности:в теле цикла не разрешается изменять переменную цикла (почему?)при изменении начального и конечного значения внутри

Слайд 62Цикл с переменной
Особенности:
после выполнения цикла во многих системах устанавливается первое

значение переменной цикла, при котором нарушено условие:
for i:=1 to 8

do
writeln('Привет');
writeln('i=', i);

for i:=8 downto 1 do
writeln('Привет');
writeln('i=', i);

i=9

i=0

Цикл с переменнойОсобенности:после выполнения цикла во многих системах устанавливается первое значение переменной цикла, при котором нарушено условие:for

Слайд 63Сколько раз выполняется цикл?
a := 1;
for i:=1 to 3 do

a := a+1;
a = 4
a := 1;
for i:=3 to 1

do a := a+1;

a = 1

a := 1;
for i:=1 downto 3 do a := a+1;

a = 1

a := 1;
for i:=3 downto 1 do a := a+1;

a = 4

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

Слайд 64for i:=1 to 9 do begin
if

??? then begin
i2 :=

i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;

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

Задача. Вывести на экран квадраты и кубы нечётных целых чисел от 1 до 9.
Особенность: переменная цикла должна увеличиваться на 2.
Проблема: в Паскале шаг может быть 1 или -1.
Решение:

i mod 2 = 1

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

выполняется только для нечетных i

for i:=1 to 9 do begin  if   ???   then begin

Слайд 65Как изменить шаг? – II
Идея: Надо вывести всего 5 чисел,

переменная k изменяется от 1 до 5. Начальное значение i

равно 1, с каждым шагом цикла i увеличивается на 2.
Решение:

???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;

i := i + 2;

i := 1;

Как изменить шаг? – IIИдея: Надо вывести всего 5 чисел, переменная k изменяется от 1 до 5.

Слайд 66Как изменить шаг? – III
Идея: Надо вывести всего 5 чисел,

переменная k изменяется от 1 до 5. Зная k, надо

рассчитать i.


Решение:

i = 2k-1

for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;

i := 2*k – 1;

Как изменить шаг? – IIIИдея: Надо вывести всего 5 чисел, переменная k изменяется от 1 до 5.

Слайд 67Задания
«4»: Ввести a и b и вывести квадраты и кубы

чисел от a до b.
Пример:
Введите границы интервала:
4 6

4 16 64
5 25 125
6 36 216
«5»: Вывести квадраты и кубы 10 чисел следующей последовательности: 1, 2, 4, 7, 11, 16, …
Пример:
1 1 1
2 4 8
4 16 64
...
46 2116 97336

Задания«4»: Ввести a и b и вывести квадраты и кубы чисел от a до b.  Пример:		Введите

Слайд 68Программирование на языке Паскаль
Тема 5. Циклы с условием
© К.Ю. Поляков,

2006-2010

Программирование  на языке ПаскальТема 5. Циклы с условием© К.Ю. Поляков, 2006-2010

Слайд 69Цикл с неизвестным числом шагов
Пример: Отпилить полено от бревна. Сколько

раз надо сделать движения пилой?
Задача: Ввести целое число (

определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.




Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать «пока n <> 0».
Цикл с неизвестным числом шаговПример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?Задача: Ввести целое

Слайд 70Алгоритм
начало
count
конец
нет
да
n 0?
count := 0;
count := count + 1;

n := n div 10;
обнулить счетчик цифр
ввод n
выполнять «пока n

<> 0»
Алгоритмначалоcountконецнетдаn 0?count := 0;count := count + 1;  n := n div 10;обнулить счетчик цифрввод nвыполнять

Слайд 71Программа
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('В числе ', n, ' нашли ',
count, ' цифр');
end.

while n <> 0 do begin
count := count + 1;
n := n div 10;
end;

, n1: integer;

n1 := n;

n1,

выполнять «пока n <> 0»

Программаprogram qq;var n, count: integer;begin writeln('Введите целое число'); read(n); count := 0; while n 0 do begin

Слайд 72Цикл с условием
while do begin
{тело цикла}


end;
Особенности:
можно использовать сложные условия:
если в теле цикла только

один оператор, слова begin и end можно не писать:

while (a < b) and (b < c) do begin
{тело цикла}
end;

while a < b do
a := a + 1;

Цикл с условием	while do begin  {тело цикла}    end;Особенности:можно использовать сложные условия:если в теле

Слайд 73Цикл с условием
Особенности:
условие пересчитывается каждый раз при входе в цикл
если

условие на входе в цикл ложно, цикл не выполняется ни

разу
если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6;
while a > b do
a := a – b;

a := 4; b := 6;
while a < b do
d := a + b;

Цикл с условиемОсобенности:условие пересчитывается каждый раз при входе в циклесли условие на входе в цикл ложно, цикл

Слайд 74Сколько раз выполняется цикл?
a := 4; b := 6;
while a

< b do a := a + 1;
2 раза
a =

6

a := 4; b := 6;
while a < b do a := a + b;

1 раз
a = 10

a := 4; b := 6;
while a > b do a := a + 1;

0 раз
a = 4

a := 4; b := 6;
while a < b do b := a - b;

1 раз
b = -2

a := 4; b := 6;
while a < b do a := a - 1;

зацикливание

Сколько раз выполняется цикл?a := 4; b := 6;while a < b do a := a +

Слайд 75Замена for на while и наоборот
for i:=1 to 10 do

begin
{тело цикла}
end;
i := 1;
while i

{тело цикла}
i := i + 1;
end;

for i:=a downto b do
begin
{тело цикла}
end;

i := a;
while i >= b do begin
{тело цикла}
i := i - 1;
end;

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

Замена цикла for на while возможна всегда.

Замена for на while и наоборотfor i:=1 to 10 do begin {тело цикла}end;i := 1;while i =

Слайд 76Задания
«4»: Ввести целое число и найти сумму его цифр.

Пример:
Введите целое число:
1234
Сумма цифр числа 1234 равна 10.
«5»: Ввести целое

число и определить, верно ли, что в его записи есть две одинаковые цифры.
Пример:
Введите целое число: Введите целое число:
1234 1224
Нет. Да.
Задания«4»: Ввести целое число и найти сумму его цифр.  Пример:		Введите целое число:		1234		Сумма цифр числа 1234 равна

Слайд 77Цикл с постусловием
Задача: Ввести целое положительное число (

число цифр в нем.
Проблема: Как не дать ввести отрицательное

число или ноль?
Решение: Если вводится неверное число, вернуться назад к вводу данных (цикл!).
Особенность: Один раз тело цикла надо сделать в любом случае => проверку условия цикла надо делать в конце цикла (цикл с постусловием).

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.

Цикл с постусловиемЗадача: Ввести целое положительное число ( проверку условия цикла надо делать в конце цикла (цикл

Слайд 78Цикл с постусловием: алгоритм
начало
конец
да
нет
n > 0?
тело цикла
условие ВЫХОДА
блок «типовой

процесс»
ввод n
основной алгоритм

Цикл с постусловием: алгоритм началоконецданетn > 0?тело циклаусловие ВЫХОДАблок «типовой процесс»ввод nосновной  алгоритм

Слайд 79Программа
program qq;
var n: integer;
begin
repeat
writeln('Введите положительное

число');
read(n);
until n > 0;

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

repeat
writeln('Введите положительное число');
read(n);
until n > 0;

until n > 0;

условие ВЫХОДА

Особенности:
тело цикла всегда выполняется хотя бы один раз
после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла

Программаprogram qq;var n: integer;begin  repeat   writeln('Введите положительное число');   read(n);  until n

Слайд 80Сколько раз выполняется цикл?
a := 4; b := 6;
repeat a

:= a + 1; until a > b;
3 раза
a =

7

a := 4; b := 6;
repeat a := a + b; until a > b;

1 раз
a = 10

a := 4; b := 6;
repeat a := a + b; until a < b;

зацикливание

a := 4; b := 6;
repeat b := a - b; until a < b;

2 раза
b = 6

a := 4; b := 6;
repeat a := a + 2; until a < b;

зацикливание

Сколько раз выполняется цикл?a := 4; b := 6;repeat a := a + 1; until a >

Слайд 81Задания (с защитой от неверного ввода)
«4»: Ввести натуральное число и

определить, верно ли, что сумма его цифр равна 10.
Пример:

Введите число >= 0: Введите число >= 0:
-234 1233
Нужно положительное число. Нет
Введите число >= 0:
1234
Да
«5»: Ввести натуральное число и определить, какие цифры встречаются несколько раз.
Пример:
Введите число >= 0: Введите число >= 0:
2323 1234
Повторяются: 2, 3 Нет повторов.
Задания (с защитой от неверного ввода)«4»: Ввести натуральное число и определить, верно ли, что сумма его цифр

Слайд 82Программирование на языке Паскаль
Тема 6. Графика
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 6. Графика© К.Ю. Поляков, 2006-2010

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

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

Слайд 84Управление цветом
Цвет и толщина линий, цвет точек:
Pen

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

Brush ( 1, 0, 255, 0 );
Цвет текста:
TextColor ( 0, 0, 255 );

толщина линии

R(red)
0..255

G(green)
0..255

B(blue)
0..255

0 – выключить
1 - включить

R

G

B

R

G

B

Управление цветомЦвет и толщина линий, цвет точек:   Pen ( 1, 255, 0, 0 );Цвет и

Слайд 85Точки, отрезки и ломаные
Pen (1, 0, 255, 0); Line (x1,

y1, x2, y2);
Pen (1, 0, 0, 255);
Point (x, y);
Pen (1,

255, 0, 0); MoveTo (x1, y1); LineTo (x2, y2);
LineTo (x3, y3);
LineTo (x4, y4);
LineTo (x5, y5);
Точки, отрезки и ломаныеPen (1, 0, 255, 0); Line (x1, y1, x2, y2);Pen (1, 0, 0, 255);Point

Слайд 86Фигуры с заливкой
Pen (1, 0, 0, 255);
Brush (1, 255, 255,

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

0, 255, 0);
Ellipse (x1, y1, x2, y2);

Brush (1, 100, 200, 255);
Fill (x, y);

Фигуры с заливкойPen (1, 0, 0, 255);Brush (1, 255, 255, 0);Rectangle (x1, y1, x2, y2);Pen (1, 255,

Слайд 87Текст
TextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30,

600);
MoveTo (x, y);
writeln ('Привет!');
Привет!
(x, y)
размер
10 пикселей
угол
поворота
насыщенность:
400 – нормальный
600

– жирный

30о

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

Слайд 88Пример
(200, 50)
(100, 100)
(300, 200)
program qq;
begin
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)program qq;begin  Pen(2, 255, 0, 255);  Brush(1, 0, 0, 255);  Rectangle(100,

Слайд 89Задания
«4»: «Лягушка»







«5»: «Корона»

Задания«4»: «Лягушка» «5»: «Корона»

Слайд 90Штриховка
(x1, y1)
(x2, y2)
N линий (N=5)
h
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);
...

Rectangle (x1, y1, x2, y2);
h := (x2 – x1) / (N + 1);
x := x1 + h;
for i:=1 to N do begin
Line( round(x), y1, round(x), y2);
x := x + h;
end;

var x, h: real;

x

округление до ближайшего целого

x

Штриховка(x1, y1)(x2, y2)N линий (N=5)hRectangle (x1, y1, x2, y2);Line( x1+h,  y1, x1+h,  y2);Line( x1+2*h, y1,

Слайд 91Штриховка (программа)
(x1, y1)
(x2, y2)
h
program qq;
var i, x1, x2, y1, y2,

N: integer;
h, x: real;
begin
x1 :=

100; y1 := 100;
x2 := 300; y2 := 200;
N := 10;
Rectangle (x1, y1, x2, y2);
h := (x2 - x1) / (N + 1);
x := x1 + h;
for i:=1 to N do begin
Line(round(x), y1, round(x), y2);
x := x + h;
end;
end.

N

Штриховка (программа)(x1, y1)(x2, y2)hprogram qq;var i, x1, x2, y1, y2, N: integer;  h, x: real;begin

Слайд 92Штриховка
(x1, y1)
(x2, y2)
(x3, y2)
a
h
(x3+a, y1)
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);
...
h :=

(x3 – x2) / (N + 1);
a := x1 – x2;
x := x1 + h;
for i:=1 to N do begin
Line(round(x), y1, round(x-a), y2);
x := x + h;
end;

x

x-a

Штриховка(x1, y1)(x2, y2)(x3, y2)ah(x3+a, y1)Line( x1+h,  y1, x1+h-a,  y2);Line( x1+2*h, y1, x1+2*h-a, y2);Line( x1+3*h, y1,

Слайд 93Штриховка
(x1, y1)
(x2, y2)
hx
hy
y
x
y
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);
...
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;
Штриховка(x1, y1)(x2, y2)hxhyyxyLine( 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,

Слайд 94Задания
«4»: Ввести с клавиатуры число линий и построить фигуру:







«5»:

Ввести с клавиатуры число линий и построить фигуру:
или

Задания«4»: Ввести с клавиатуры число линий и построить фигуру: «5»: Ввести с клавиатуры число линий и построить

Слайд 95Как менять цвет?
(x1, y1)
(x2, y2)
Brush ( 1, c, c, c

);
Fill ( ???, ??? );
серый: R = G = B
Шаг

изменения c:

x

(x-2, y1+2)

hc := 255 div N;
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)-2, y1+2);
x := x + h; c := c + hc;
end;

var c, hc: integer;

Как менять цвет?(x1, y1)(x2, y2)Brush ( 1, c, c, c );Fill ( ???, ??? );серый: R =

Слайд 96Задания
«4»: Ввести с клавиатуры число линий штриховки и построить фигуру,

залив все области разным цветом.







«5»: Ввести с клавиатуры

число окружностей и построить фигуру, залив все области разным цветом.

или

или

Задания«4»: Ввести с клавиатуры число линий штриховки и построить фигуру, залив все области разным цветом. «5»: Ввести

Слайд 97Программирование на языке Паскаль
Тема 7. Процедуры
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 7. Процедуры© К.Ю. Поляков, 2006-2010

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

координаты, цвет

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

Слайд 99Процедуры
Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых

действий.
Применение:
выполнение одинаковых действий в разных местах программы
разбивка программы (или другой

процедуры) на подзадачи для лучшего восприятия
ПроцедурыПроцедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий.Применение:выполнение одинаковых действий в разных местах программыразбивка

Слайд 100Процедуры
Порядок разработки:
выделить одинаковые или похожие действия (три фигуры)
найти в них

общее (размеры, форма, угол поворота) и отличия (координаты, цвет)
отличия

записать в виде неизвестных переменных, они будут параметрами процедуры

(x+100, y)

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

заголовок

MoveTo(x, y);
LineTo(x, y-60);
LineTo(x+100, y);
LineTo(x, y);
Brush(1, r, g, b);
Fill(x+20, y-20);

тело процедуры

координаты

цвет

параметры

ПроцедурыПорядок разработки:выделить одинаковые или похожие действия (три фигуры)найти в них общее (размеры, форма, угол поворота) и отличия

Слайд 101Программа
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.

(100,100)

100

60

фактические параметры

вызовы процедуры

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

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

процедура

Программаprogram qq;begin  Pen(1, 255, 0, 255);  Tr(100, 100, 0, 0, 255);  Tr(200, 100, 0,

Слайд 102Процедуры
Особенности:
все процедуры расположены выше основной программы
в заголовке процедуры перечисляются формальные

параметры, они обозначаются именами, поскольку могут меняться
при вызове процедуры в

скобках указывают фактические параметры (числа или арифметические выражения) в том же порядке

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

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

x

y

r

g

b

ПроцедурыОсобенности:все процедуры расположены выше основной программыв заголовке процедуры перечисляются формальные параметры, они обозначаются именами, поскольку могут менятьсяпри

Слайд 103Процедуры
Особенности:
для каждого формального параметра после двоеточия указывают его тип
если однотипные

параметры стоят рядом, их перечисляют через запятую
внутри процедуры параметры используются

так же, как и переменные

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

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

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

Слайд 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;

ПроцедурыОсобенности:в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступаprogram qq; procedure A(x,

Слайд 105Задания
«4»: Используя одну процедуру, построить фигуру.







«5»: Используя одну

процедуру, построить фигуру.
равносторонний треугольник

Задания«4»: Используя одну процедуру, построить фигуру. «5»: Используя одну процедуру, построить фигуру. равносторонний треугольник

Слайд 106Программирование на языке Паскаль
Тема 8. Анимация
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 8. Анимация© К.Ю. Поляков, 2006-2010

Слайд 107Анимация
Анимация (англ. animation) – оживление изображения на экране.
Задача: внутри синего

квадрата 400 на 400 пикселей слева направо двигается желтый квадрат

20 на 20 пикселей. Программа останавливается, если нажата клавиша Esc или квадрат дошел до границы синей области.

Проблема: как изобразить перемещение объекта на экране?
Привязка: состояние объекта задается координатами (x,y)
Принцип анимации:
рисуем объект в точке (x,y)
задержка на несколько миллисекунд
стираем объект
изменяем координаты (x,y)
переходим к шагу 1

АнимацияАнимация (англ. animation) – оживление изображения на экране.Задача: внутри синего квадрата 400 на 400 пикселей слева направо

Слайд 108Как "поймать" нажатие клавиши?
Событие – это изменение в состоянии какого-либо

объекта или действие пользователя (нажатие на клавишу, щелчок мышкой).
IsEvent –

логическая функция, которая определяет, было ли какое-то действие пользователя.
Event – процедура, которая определяет, какое именно событие случилось.

if IsEvent then begin
Event(k, x, y);
if k = 1 then
writeln('Клавиша с кодом ', x)
else { k = 2 }
writeln('Мышь: x=', x, ' y=', y);
end;

var k, x, y: integer;

Слайд 124Задания
«4»: Составить функцию, которая определяет наибоольшее из трех чисел и

привести пример ее использования.
Пример:

Введите три числа:
28 15 10
Наибольшее число – 28.
«5»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования.
Пример:
Введите число:
100
сумма = 5050
Задания«4»: Составить функцию, которая определяет наибоольшее из трех чисел и привести пример ее использования.  Пример:

Слайд 125Логические функции
Задача: составить функцию, которая определяет, верно ли, что заданное

число – четное.
Особенности:
ответ – логическое значение (True или False)
результат функции

можно использовать как логическую величину в условиях (if, while)
Алгоритм: если число делится на 2, оно четное.

if N mod 2 = 0 then
{ число N четное}
else { число N составное }

Логические функцииЗадача: составить функцию, которая определяет, верно ли, что заданное число – четное.Особенности:ответ – логическое значение (True

Слайд 126Логические функции
program qq;
var N: integer;






begin
writeln('Введите целое число');
read(N);
if

Chet(N) then
writeln(N, ' – четное

число')
else writeln(N, ' – нечетное число');
end.

function Chet(N: integer): boolean;
begin
if N mod 2 = 0 then
Chet := True
else Chet := False;
end;

вызов функции

результат – логическое значение

или
Chet:=(N mod 2)= 0;

Логические функцииprogram qq;var N: integer;begin writeln('Введите целое число'); read(N); if Chet(N) then    writeln(N, '

Слайд 127Задания
«4»: Составить функцию, которая определяет, верно ли, что в числе

вторая цифра с конца больше 6.
Пример:
Введите число:

178
Верно.
«5»: Составить функцию, которая определяет, верно ли, что переданное ей число – простое (делится только на само себя и на единицу).
Пример:
Введите число:
29
Простое число.

Введите число:
28
Составное число.

Введите число:
237
Неверно.

Задания«4»: Составить функцию, которая определяет, верно ли, что в числе вторая цифра с конца больше 6.

Слайд 128Программирование на языке Паскаль
Тема 10. Случайные числа
© К.Ю. Поляков, 2006-2010

Программирование  на языке ПаскальТема 10. Случайные числа© К.Ю. Поляков, 2006-2010

Слайд 129Случайные числа
Случайные явления: везде…
бросание монеты («орел» или «решка»)
падение снега
броуновское движение
помехи

при телефонной связи
шум радиоэфира
Случайные числа – это такая последовательность чисел,

для которой невозможно предсказать следующее даже зная все предыдущие.
Проблема: как получить на компьютере?
Возможные решения:
использовать внешний источник шумовых помех
с помощью математических преобразований
Случайные числаСлучайные явления: везде…бросание монеты («орел» или «решка»)падение снегаброуновское движениепомехи при телефонной связишум радиоэфираСлучайные числа – это

Слайд 130Распределение случайных чисел
Модель: снежинки падают на отрезок [a,b]
распределение
равномерное
неравномерное

Распределение случайных чиселМодель: снежинки падают на отрезок [a,b]распределениеравномерноенеравномерное

Слайд 131Распределение случайных чисел
Особенности:
распределение – это характеристика всей последовательности, а

не одного числа
равномерное распределение одно, компьютерные датчики случайных чисел дают

равномерное распределение
неравномерных – много
любое неравномерное можно получить с помощью равномерного

a

b

a

b

равномерное распределение

неравномерное распределение

Распределение случайных чиселОсобенности: распределение – это характеристика всей последовательности, а не одного числаравномерное распределение одно, компьютерные датчики

Слайд 132Генератор случайных чисел в Паскале
Целые числа в интервале [0,N):

var x: integer;
...
x := random ( 100 );

{ интервал [0,99] }
Вещественные числа в интервале [0,1)
var x: real;
...
x := random; { интервал [0,1) }

Генератор случайных чисел в ПаскалеЦелые числа в интервале [0,N):  var x: integer; ... x := random

Слайд 133Случайные числа
Задача: заполнить прямоугольник 400 на 300 пикселей равномерно точками

случайного цвета
Как получить случайные координаты точки?
x := random ( 400

);
y := random ( 300 );
Как добиться равномерности?
обеспечивается автоматически при использовании функции random
Как получить случайный цвет?
Pen (1, random(256), random(256), random(256));
Point ( x, y );
Случайные числаЗадача: заполнить прямоугольник  400 на 300 пикселей равномерно  точками случайного цветаКак получить случайные координаты

Слайд 134Программа
program qq;
var x, y, k, code, i: integer;
stop:

boolean;
begin
stop := False;
repeat
x := random(400);

y := random(300);
Pen(1, random(256), random(256), random(256));
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

Программаprogram qq;var x, y, k, code, i: integer;  stop: boolean;begin stop := False; repeat

Слайд 135«4»: Заполнить область точками случайного цвета:






«5»: Заполнить область точками

случайного цвета:
Задания

«4»: Заполнить область точками случайного цвета: «5»: Заполнить область точками случайного цвета:Задания

Слайд 136«4»: Ввести с клавиатуры координаты углов прямоугольника и заполнить его

точками случайного цвета.




«5»: Заполнить треугольник точками случайного цвета (равномерно

или неравномерно).
Подсказка: возьмите равнобедренный треугольник с углом 45о.

Задания

(100,100)

(300,200)

«4»: Ввести с клавиатуры координаты углов прямоугольника и заполнить его точками случайного цвета. «5»: Заполнить треугольник точками

Слайд 137Конец фильма

Конец фильма

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика