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


Презентация на тему Паскаль_Основы.ppt

Презентация на тему Паскаль_Основы.ppt из раздела Разное. Доклад-презентацию можно скачать по ссылке внизу страницы. Эта презентация для класса содержит 173 слайдов. Для просмотра воспользуйтесь удобным проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций TheSlide.ru в закладки!

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

Слайд 1
Программирование  на языке Паскаль (7 класс)© К.Ю. Поляков, 2006-2009ВведениеВетвленияСложные условияЦиклыЦиклы с условиемОператор выбораГрафикаГрафики функцийПроцедурыРекурсияАнимацияФункцииСлучайные числа
Текст слайда:

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

© К.Ю. Поляков, 2006-2009

Введение
Ветвления
Сложные условия
Циклы
Циклы с условием
Оператор выбора

Графика
Графики функций
Процедуры
Рекурсия
Анимация
Функции
Случайные числа


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

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

Тема 1. Введение

© К.Ю. Поляков, 2006-2009


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


Алгоритм

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

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


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


Программа

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

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

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

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


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


Простейшая программа

program qq;
begin { начало программы }
end. { конец программы }

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

название программы


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


Вывод текста на экран

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

Протокол:
2+2=?
Ответ: 4







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


Задания

«4»: Вывести на экран текст "лесенкой"
Вася
пошел
гулять
«5»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ


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


Переменные

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

Протокол:
Введите два целых числа
25 30
25+30=55

компьютер

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

компьютер считает сам!


Слайд 9
Программаprogram qq;begin { ввести два числа } { вычислить их сумму } { вывести сумму на экран
Текст слайда:


Программа

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

Псевдокод: алгоритм на русском языке с элементами Паскаля.


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


Переменные

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



a

Значение

Имя


Другой тип данных


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


Имена переменных

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


цифры


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

заглавные и строчные буквы не различаются

В именах НЕЛЬЗЯ использовать
русские буквы
пробелы
скобки, знаки +, =, !, ? и др.

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

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


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


Переменные

Типы переменных:
integer { целая }
real { вещественная }
и другие…

Объявление переменных:

var a, b, c: integer;

Выделение места в памяти

variable – переменная

тип – целые


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


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


Как записать значение в переменную?

a := 5;

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


5


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


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


Блок-схема линейного алгоритма

начало

конец

c := a + b;

ввод a, b

вывод c

блок «начало»

блок «ввод»

блок «процесс»

блок «вывод»

блок «конец»


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


Как ввести значение с клавиатуры

read ( a );


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


5


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


Ввод значений двух переменных

через пробел:
25 30
через Enter:
25
30

read ( a, b );

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


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


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

{ вывод значения переменной a}

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

{ вывод текста }

{вывод текста и значения переменной c}

write( a );

writeln( a );

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

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

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


Слайд 18
Сложение двух чиселЗадача. Ввести два целых числа и вывести на экран их сумму.Простейшее решение:	program qq;	var a, b,
Текст слайда:


Сложение двух чисел

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

Простейшее решение:

program qq;
var a, b, c: integer;
begin
read ( a, b );
c := a + b;
writeln ( c );
end.


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


Полное решение

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

компьютер

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


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


Как изменить значение переменной?

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


Слайд 21
Арифметические операции+ сложение		– вычитание * умножение		/ деление div деление нацело (остаток отбрасывается)mod остаток от деленияvar a, b:
Текст слайда:


Арифметические операции

+ сложение – вычитание
* умножение / деление
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.






Слайд 22
program qq;	var a, b: integer;		 x, y: real; 	begin	 a := 5;   10 := x;
Текст слайда:

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.


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

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

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

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



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


Порядок выполнения операций

вычисление выражений в скобках
умножение, деление, 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


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


Ручная прокрутка программы

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.










Слайд 25
Вывод целых чиселprogram qq;var a, b: integer;begin a := 15; b := 45;  writeln ( a,
Текст слайда:


Вывод целых чисел

program qq;
var a, b: integer;
begin
a := 15;
b := 45;
writeln ( a, b );
writeln ( a:4, b:4 );
end.

15 45

1545


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


Вывод вещественных чисел

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


Слайд 27
Задания«4»: Ввести три числа, найти их сумму и произведение.  Пример:	 Введите три числа:	 4  5
Текст слайда:


Задания

«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


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

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

Тема 2. Ветвления

© К.Ю. Поляков, 2006-2009


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


Разветвляющиеся алгоритмы

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

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


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


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


полная форма ветвления

блок «решение»


Слайд 31
Вариант 1. Программа	max := a;max := b;полная форма условного оператора	program qq;	var a, b, max: integer;	begin  writeln('Введите
Текст слайда:


Вариант 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.


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


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

if <условие> then begin
{что делать, если условие верно}
end
else begin
{что делать, если условие неверно}
end;

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


Слайд 33
Что неправильно?	if a > b then begin  a := b;  end else  b :=
Текст слайда:


Что неправильно?

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


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


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


неполная форма ветвления


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


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



program qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
max := a;
if b > a then
max := b;
writeln ('Наибольшее число ', max);
end.

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


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


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



program qq;
var a, b, max: integer;
begin
writeln('Введите два целых числа');
read ( a, b );
max := b;
if ??? then
???
writeln ('Наибольшее число ', max);
end.

max := a;

a > b


Слайд 37
Что неправильно?	if a > b then begin   a := b;  else b := a;
Текст слайда:


Что неправильно?

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;



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


Задания

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


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

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

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

© К.Ю. Поляков, 2006-2009


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


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

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


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


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

начало

ввод x

'подходит'

конец





да

нет

x >= 25?



да

нет

x <= 40?

'не подходит'

'не подходит'




Слайд 42
Вариант 1. Программа		program qq;	var x: integer;	begin  writeln('Введите возраст');  read ( x );  if x
Текст слайда:


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




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


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

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

начало

ввод x

'подходит'



да

нет

x >= 25 и
x <= 40?

'не подходит'



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


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



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

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


Слайд 45
Сложные условияПростые условия (отношения)  <    >=  =  Сложное условие – это
Текст слайда:


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

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

равно

не равно


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


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

Порядок выполнения (приоритет = старшинство)
выражения в скобках
not
and
or, xor
<, <=, >, >=, =, <>
Особенность – каждое из простых условий обязательно заключать в скобки.
Пример

4 1 6 2 5 3

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


Слайд 47
Истинно или ложно при a := 2; b := 3; c := 4;not (a > b)(a <
Текст слайда:

Истинно или ложно при a := 2; b := 3; c := 4;
not (a > b)
(a < b) and (b < c)
not (a >= b) or (c = d)
(a < c) or (b < c) and (b < a)
(a < b) xor not (b > c)
Для каких значений x истинны условия:
(x < 6) and (x < 10)
(x < 6) and (x > 10)
(x > 6) and (x < 10)
(x > 6) and (x > 10)
(x < 6) or (x < 10)
(x < 6) or (x > 10)
(x > 6) or (x < 10)
(x > 6) or (x > 10)


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

True

True

FALSE

(-∞; 6)


(6; 10)

(10; ∞)

(-∞; 10)

(-∞; 6) ∪ (10;∞)

(-∞; ∞)

(6; ∞)

x < 6

x > 10

x < 10

x > 6

True

True


Слайд 48
Задания«4»: Ввести номер месяца и вывести название времени года.  Пример:		Введите номер месяца:		4		весна«5»: Ввести возраст человека (от
Текст слайда:


Задания

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


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

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

Тема 4. Циклы

© К.Ю. Поляков, 2006-2009


Слайд 50
ЦиклыЦикл – это многократное выполнение одинаковой последовательности действий.цикл с известным числом шаговцикл с неизвестным числом шагов (цикл
Текст слайда:


Циклы

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


Слайд 51
Циклыprogram qq;begin writeln('Привет');  writeln('Привет');  writeln('Привет');  writeln('Привет');  writeln('Привет'); end.
Текст слайда:


Циклы

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


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


Циклы

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






i := i + 1;


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


Алгоритм


начало

Привет!

конец

да

нет

i = 5?


i := 0;

i := i + 1;


еще не сделали ни одного раза

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

вывод на экран

считаем очередной шаг


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


Циклы

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;


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


Циклы

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

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


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


Алгоритм


начало

i, i2, i3

конец

нет

да

i <= 8?


i := 1;

i := i + 1;


i2 := i * i;
i3 := i2 * i;

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

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

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

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

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


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


Алгоритм (с блоком «цикл»)


начало

i, i2, i3

конец


i2 := i * i;
i3 := i2 * i;

i := 1,8

блок «цикл»

тело цикла


Слайд 58
Программаprogram qq;var i, i2, i3: integer;begin  for i:=1 to 8 do begin  i2 := i*i;
Текст слайда:


Программа



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.

переменная
цикла

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

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


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


Цикл с уменьшением переменной

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

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

downto


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


Цикл с переменной

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

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

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

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


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


Цикл с переменной

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

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


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


Цикл с переменной

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

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

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


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


Цикл с переменной

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

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

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

i=9

i=0

НЕ ДОКУМЕНТИРОВАНО


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


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

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


Слайд 65
for i:=1 to 9 do begin  if   ???   then begin
Текст слайда:

for i:=1 to 9 do begin
if ??? then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;


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

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

i mod 2 = 1

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

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


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


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


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


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


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


Задания

«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


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

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

Тема 5. Циклы с условием

© К.Ю. Поляков, 2006-2009


Слайд 70
Цикл с неизвестным числом шаговПример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?Задача: Ввести целое
Текст слайда:


Цикл с неизвестным числом шагов

Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?
Задача: Ввести целое число (<2000000) и определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.




Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать «пока n <> 0».


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



Алгоритм


начало

count

конец

нет

да

n <> 0?


count := 0;


count := count + 1;
n := n div 10;

обнулить счетчик цифр

ввод n


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


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

Программа

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»


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


Цикл с условием

while <условие> do begin
{тело цикла}
end;

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

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

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


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


Цикл с условием

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

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

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


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


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

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;

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


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


Замена for на while и наоборот

for i:=1 to 10 do begin
{тело цикла}
end;

i := 1;
while i <= 10 do begin
{тело цикла}
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 возможна всегда.


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


Задания

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


Слайд 78
ПоследовательностиПримеры:1, 2, 3, 4, 5, …1, 2, 4, 7, 11, 16, …1, 2, 4, 8, 16, 32,
Текст слайда:


Последовательности

Примеры:
1, 2, 3, 4, 5, …
1, 2, 4, 7, 11, 16, …
1, 2, 4, 8, 16, 32, …

an = n

a1 = 1, an+1 = an+1

a1 = 1, an+1 = an + n

an = 2n-1

a1 = 1, an+1 = 2an

b1 = 1, bn+1 = bn+1

c1 = 2, cn+1 = 2cn


Слайд 79
ПоследовательностиЗадача: найти сумму всех элементов последовательности,  которые по модулю больше 0,001: Элемент последовательности (начиная с №2):b
Текст слайда:


Последовательности

Задача: найти сумму всех элементов последовательности,
которые по модулю больше 0,001:

Элемент последовательности (начиная с №2):

b := b+1;

c := 2*c;

z := -z;


Слайд 80
АлгоритмначалоSконецнетда|a| > 0.001?S := S + a;S := 0; b := 1;  c := 2; z
Текст слайда:


Алгоритм


начало

S

конец

нет

да

|a| > 0.001?



S := S + a;


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

начальные значения

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

первый элемент

a := 1;

S := 0;

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

изменение


Слайд 81
Программаprogram qq;var b, c, z: integer;  S, a: real;begin  S := 0; z := -1;
Текст слайда:


Программа

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.

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

переход к следующему слагаемому

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

начальные значения

увеличение суммы

расчет элемента последовательности


Слайд 82
Задания«4»: Найти сумму элементов последовательности с точностью 0,001:  Ответ:		S = 1.157«5»: Найти сумму элементов последовательности с
Текст слайда:


Задания

«4»: Найти сумму элементов последовательности с точностью 0,001:


Ответ:
S = 1.157
«5»: Найти сумму элементов последовательности с точностью 0,001:
Ответ:
S = 1.220


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


Цикл с постусловием

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

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


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


Цикл с постусловием: алгоритм


начало

конец

да

нет

n > 0?



тело цикла

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

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

ввод n

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


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


Программа

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 ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла


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


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

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;

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


Слайд 87
Задания (с защитой от неверного ввода)«4»: Ввести натуральное число и определить, верно ли, что сумма его цифр
Текст слайда:


Задания (с защитой от неверного ввода)

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


Слайд 88
Программирование  на языке ПаскальТема 6. Оператор выбора© К.Ю. Поляков, 2006-2009
Текст слайда:

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

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

© К.Ю. Поляков, 2006-2009


Слайд 89
Оператор выбораЗадача: Ввести номер месяца и вывести количество
Текст слайда:


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

Задача: Ввести номер месяца и вывести количество дней в этом месяце.
Решение: Число дней по месяцам:
28 дней – 2 (февраль)
30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)
31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)
Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.


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

Алгоритм

начало

конец


выбор

ни один вариант не подошел

ввод M


да

нет

M = 1?

D := 31;

нет

M = 2?

D := 28;

да

нет

M = 12?

D := 31;

да

вывод D

ошибка





Слайд 91
Программаprogram qq;var M, D: integer;begin  writeln('Введите номер месяца:');  read ( M );  case M
Текст слайда:


Программа

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;

ни один вариант не подошел


Слайд 92
Оператор выбораОсобенности:после case может быть имя переменной или арифметическое выражение целого типа (integer)  или символьного типа
Текст слайда:


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

Особенности:
после case может быть имя переменной или арифметическое выражение целого типа (integer)
или символьного типа (char)

case i+3 of
1: begin a := b; end;
2: begin a := c; end;
end;

var c: char;
...
case c of
'а': writeln('Антилопа');
'б': writeln('Барсук');
else writeln('Не знаю');
end;


Слайд 93
Оператор выбораОсобенности:если нужно выполнить только один оператор, слова begin и end можно не писатьнельзя ставить два одинаковых
Текст слайда:


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

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

case i+3 of
1: a := b;
1: a := c;
end;

case i+3 of
1: a := b;
2: a := c;
end;


Слайд 94
Оператор выбораОсобенности:значения, при которых выполняются одинаковые действия, можно группироватьcase i of 1:
Текст слайда:


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

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

case i of
1: a := b;
2,4,6: a := c;
10..15: a := d;
20,21,25..30: a := e;
else writeln('Ошибка');
end;

перечисление

диапазон

смесь


Слайд 95
Что неправильно?case a of 2: begin a := b; 4: a := c;end;case a of 2: a
Текст слайда:


Что неправильно?

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:

case a+c/2 of
2: a := b;
4: a := c;
end;

case a of
2: a := b; d := 0;
4: a := c;
end;

begin

end;



Слайд 96
Задания (с защитой от неверного ввода)«4»: Ввести номер месяца и вывести количество дней в нем, а также
Текст слайда:


Задания (с защитой от неверного ввода)

«4»: Ввести номер месяца и вывести количество дней в нем, а также число ошибок при вводе.
Пример:
Введите номер месяца: Введите номер месяца:
-2 2
Введите номер месяца: В этом месяце 28 дней.
11 Вы вводили неверно 0 раз.
В этом месяце 30 дней.
Вы вводили неверно 1 раз.
«5»: Ввести номер месяца и номер дня, вывести число дней, оставшихся до Нового года.
Пример:
Введите номер месяца:
12
Введите день:
25
До Нового года осталось 6 дней.


Слайд 97
Программирование  на языке ПаскальТема 7. Графика© К.Ю. Поляков, 2006-2009
Текст слайда:

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

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

© К.Ю. Поляков, 2006-2009


Слайд 98
Система координат(0,0)(x,y)XYxy
Текст слайда:


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


(0,0)

(x,y)

X

Y


x

y


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


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

Цвет и толщина линий, цвет точек:
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


Слайд 100
Точки, отрезки и ломаныеPen (1, 0, 255, 0); Line (x1, y1, x2, y2);Pen (1, 0, 0, 255);Point
Текст слайда:


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

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


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


Фигуры с заливкой

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


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


Текст

TextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30, 600);
MoveTo (x, y);
writeln ('Привет!');

Привет!

(x, y)


размер
10 пикселей

угол
поворота

насыщенность:
400 – нормальный
600 – жирный


30о


Слайд 103
Пример(200, 50)(100, 100)(300, 200)program qq;begin  Pen(2, 255, 0, 255);  Brush(1, 0, 0, 255);  Rectangle(100,
Текст слайда:


Пример



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



Слайд 104
Задания«4»: «Лягушка» «5»: «Корона»
Текст слайда:


Задания

«4»: «Лягушка»







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








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


Штриховка

(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


Слайд 106
Штриховка (программа)(x1, y1)(x2, y2)hprogram qq;var i, x1, x2, y1, y2, N: integer;  h, x: real;begin
Текст слайда:


Штриховка (программа)

(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


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



Как менять цвет?

(x1, y1)

(x2, y2)



Brush ( 1, c, c, c );
Fill ( ???, ??? );

серый: R = G = B

Шаг изменения c:

x

(x-1, y1+1)





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

var c, hc: integer;


Слайд 108
Штриховка(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,
Текст слайда:


Штриховка

(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


Слайд 109
Штриховка(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,
Текст слайда:


Штриховка


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


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


Задания

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







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


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


Задания

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







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


Слайд 112
Программирование  на языке ПаскальТема 8. Графики функций© К.Ю. Поляков, 2006-2009
Текст слайда:

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

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

© К.Ю. Поляков, 2006-2009


Слайд 113
Построение графиков функцийЗадача: построить график функции y = 3 sin(x) на интервале от 0 до 2π.Анализ: максимальное
Текст слайда:


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

Задача: построить график функции y = 3 sin(x) на интервале от 0 до 2π.
Анализ:
максимальное значение ymax = 3 при x = π/2
минимальное значение ymin = -3 при x = 3π/2
Проблема: функция задана в математической системе координат, строить надо на экране, указывая координаты в пикселях.


Слайд 114
Преобразование координат(x,y)XYxyМатематическая система координатЭкранная система координат (пиксели)(xэ,yэ)xэyэ(0,0)(0,0)abk – масштаб (длина изображения единичного отрезка на экране)xэ = a
Текст слайда:


Преобразование координат

(x,y)


X

Y

x

y

Математическая
система координат

Экранная система координат (пиксели)


(xэ,yэ)




(0,0)

(0,0)

a

b

k – масштаб (длина изображения единичного отрезка на экране)

xэ = a + kx
yэ = b - ky


Слайд 115
Программа2πh – шаг изменения xw – длина оси ОХ  в пикселяхна экранеоси координатцикл построения графикаprogram qq;const
Текст слайда:


Программа



h – шаг изменения x

w – длина оси ОХ в пикселях

на экране

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

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



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 <= xmax do begin
y := 3*sin(x);
xe := a + round(k*x);
ye := b - round(k*y);
Point (xe, ye);
x := x + h;
end;
end.


Слайд 116
Как соединить точки?Алгоритм:Если первая точка перейти в точку (xэ,yэ)иначе  отрезок в точку (xэ,yэ)Программа:начальное значениевыбор варианта действийлогическая
Текст слайда:


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

Алгоритм:

Если первая точка
перейти в точку (xэ,yэ)
иначе
отрезок в точку (xэ,yэ)

Программа:



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

выбор варианта действий


логическая переменная

var first: boolean;
...
begin
...
first := True;
while x <= xmax do begin
...
if first then begin
MoveTo(xe, ye);
first := False;
end
else LineTo(xe, ye);
...
end;
end.


Слайд 117
Задания«4»: Построить график функции y = x2 на интервале [-3,3]. «5»: Построить график  функции (эллипс)
Текст слайда:


Задания

«4»: Построить график функции y = x2 на интервале [-3,3].







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



Слайд 118
Программирование  на языке ПаскальТема 9. Процедуры© К.Ю. Поляков, 2006-2009
Текст слайда:

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

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

© К.Ю. Поляков, 2006-2009


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


Процедуры

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


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


Процедуры

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


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


Процедуры

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

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

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

координаты

цвет

параметры


Слайд 122
Программаprogram qq;begin  Pen(1, 255, 0, 255);  Tr(100, 100, 0, 0, 255);  Tr(200, 100, 0,
Текст слайда:

Программа

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;

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

процедура


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


Процедуры

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

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

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

x

y

r

g

b


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


Процедуры

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

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

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


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


Процедуры

Особенности:
в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа


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;


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

Параметры-переменные

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

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


Слайд 127
Параметры-переменныеПрименение:  таким образом процедура (и функция) может возвращать несколько значений,Запрещенные варианты вызоваExchange ( 2, 3 );
Текст слайда:

Параметры-переменные

Применение: таким образом процедура (и функция) может возвращать несколько значений,
Запрещенные варианты вызова
Exchange ( 2, 3 ); { числа }
Exchange ( x+z, y+2 ); { выражения }

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;

var

параметры могут изменяться






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


Задания

«4»: Используя процедуры, построить фигуру.







«5»: Используя процедуры, построить фигуру.

равносторонний треугольник


Слайд 129
Программирование  на языке ПаскальТема 10. Рекурсия© К.Ю. Поляков, 2006-2009
Текст слайда:

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

Тема 10. Рекурсия

© К.Ю. Поляков, 2006-2009


Слайд 130
Рекурсивные объектыРекурсивный объект – это объект, определяемый через один или несколько таких же объектов. У попа была
Текст слайда:


Рекурсивные объекты

Рекурсивный объект – это объект, определяемый через один или несколько таких же объектов.

У попа была собака, он ее любил.
Она съела кусок мяса, он ее убил.
В ямку закопал, надпись написал:

Сказка о попе и собаке

Примеры:

Сказка о попе и собаке:

Факториал:


если

если

Рисунок с рекурсией:


Слайд 131
Дерево ПифагораДерево Пифагора из N уровней – это ствол и отходящие от него симметрично два дерева Пифагора
Текст слайда:


Дерево Пифагора

Дерево Пифагора из N уровней – это ствол и отходящие от него симметрично два дерева Пифагора из N-1 уровней, такие что длина их стволов в 2 раза меньше и угол между ними равен 90o.


6 уровней:




Слайд 132
Дерево ПифагораОсобенности:когда остановиться?деревья имеют различный наклонкогда число оставшихся уровней станет равно нулю!(x1, y1)(x0, y0)αα+45oα-45oLx1 = x0 +
Текст слайда:


Дерево Пифагора

Особенности:
когда остановиться?
деревья имеют различный наклон

когда число оставшихся уровней станет равно нулю!


(x1, y1)

(x0, y0)






α

α+45o


α-45o

L

x1 = x0 + L·cos(α)
y1 = y0 – L·sin(α)

наклон «дочерних» деревьев

α + π/4
α – π/4


Слайд 133
Процедураугол αдлина стволаprocedure Pifagor(x0, y0, a, L: real;
Текст слайда:

Процедура


угол α

длина ствола


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

Рекурсивной называется процедура, вызывающая сама себя.


Слайд 134
Программаprogram qq; procedure Pifagor(x0, y0, a, L: real;
Текст слайда:


Программа


program qq;
procedure Pifagor(x0, y0, a, L: real;
N: integer);
...
end;
begin
Pifagor (250, 400, pi/2, 150, 8);
end.

угол α

длина ствола

число уровней

x0

y0

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


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

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







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


Задания


Слайд 136
Программирование  на языке ПаскальТема 11. Анимация© К.Ю. Поляков, 2006-2009
Текст слайда:

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

Тема 11. Анимация

© К.Ю. Поляков, 2006-2009


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


Анимация

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

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


Слайд 139
Как выйти из цикла при нажатии Esc?program qq;var stop: boolean;   k,code,i: integer; 	begin stop :=
Текст слайда:



Как выйти из цикла при нажатии Esc?


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), то стоп

True, если надо остановиться

запуск цикла


Слайд 140
Процедура (рисование и стирание)procedure Draw(x, y: integer; flag: boolean);begin if flag then  Brush(1, 255, 255, 0)
Текст слайда:



Процедура (рисование и стирание)

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;


(x, y)



(x+20, y+20)

Идеи
одна процедура рисует и стирает
стереть = нарисовать цветом фона
границу квадрата отключить (в основной программе)

рисовать (True) или нет (False)?

рисуем: цвет кисти – желтый

стираем: цвет кисти – синий

только заливка!


Слайд 141
Полная программаprogram qq;var x, y, k, code, i: integer;  stop: boolean; procedure Draw(x,y: integer; flag: Boolean);
Текст слайда:



Полная программа




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 мс

отключить границу



Слайд 142
«4»: Два квадрата двигаются в противоположном направлении: «5»: Два квадрата двигаются в противоположном направлении и отталкиваются от
Текст слайда:

«4»: Два квадрата двигаются в противоположном направлении:






«5»: Два квадрата двигаются в противоположном направлении и отталкиваются от стенок синего квадрата:

Задания














Слайд 143
Управление клавишамиЗадача: жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш:			влево – 37		вверх – 38		Esc – 27			вправо
Текст слайда:


Управление клавишами

Задача: жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш:
влево – 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;

если было нажатие на клавишу, …


Слайд 144
Программаprogram qq;var x, y, k, code, i: integer;  stop: boolean;begin ... repeat  Draw(x, y, True);
Текст слайда:

Программа

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;

процедура

основной цикл

обработка событий


Слайд 145
Как убрать мигание?Проблема: даже если не нажата никакая клавиша, квадрат перерисовывается через каждые 20 мс (мигание!)Что хочется:
Текст слайда:

Как убрать мигание?

Проблема: даже если не нажата никакая клавиша, квадрат перерисовывается через каждые 20 мс (мигание!)
Что хочется: не перерисовать квадрат, если не было никакого события
Решение: нарисовать квадрат и ждать события
Новая проблема: как ждать события?
Решение новой проблемы: пустой цикл "пока не случилось событие, ничего не делай":

while not IsEvent do;


Слайд 146
Программаprogram qq;var x, y, k, code, i: integer;  stop: boolean;begin ... repeat  Draw(x, y, True);
Текст слайда:

Программа

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;


Draw(x, y, False);
Event(k, code, i);
...

while not IsEvent do;

процедура

рисуем квадрат

ждем события

только теперь стираем


Слайд 147
«4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата: «5»: Квадрат непрерывно
Текст слайда:

«4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата:




«5»: Квадрат непрерывно двигается, при нажатии стрелок меняет направление и отталкивается от стенок синего квадрата:

Задания
















Слайд 148
ВращениеЗадача: изобразить модель вращения Земли вокруг Солнца.Проблема: движение по окружности, как изменять координаты?Решение: использовать в качестве независимой
Текст слайда:


Вращение

Задача: изобразить модель вращения Земли вокруг Солнца.
Проблема: движение по окружности, как изменять координаты?
Решение: использовать в качестве независимой переменной (менять в цикле) угол поворота α



(x0, y0)



α

L

(x, y)

x = x0 + L·cos(α)
y = y0 – L·sin(α)



Слайд 149
Процедураprocedure Draw(x, y: integer; flag: boolean);const r = 10;begin if flag then  Brush(1, 100, 100, 255)
Текст слайда:

Процедура

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;

рисовать (True) или нет (False)?

рисуем: цвет кисти – голубой

стираем: цвет кисти – черный

только заливка!

радиус Земли



(x-r, y-r)





(x,y)

(x+r, y+r)


Слайд 150
Константы и переменныеprogram qq;const rSun = 60;  { радиус Солнца}   L = 150;
Текст слайда:

Константы и переменные

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;


Слайд 151
Основная программа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
Текст слайда:

Основная программа

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; { начальный угол, шаг 1o за 100 мс}
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.


залить фон черным

рисуем Солнце

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

поворот на ha

ждем 100 мс

if IsEvent then begin
Event(k, code, i);
if (k = 1) and (code = 27) then stop := true;
end;


Слайд 152
«4»: Изобразить модель Солнца с двумя планетами, которые вращаются в противоположные стороны: «5»: Изобразить модель системы Солнце-Земля-Луна:
Текст слайда:

«4»: Изобразить модель Солнца с двумя планетами, которые вращаются в противоположные стороны:


«5»: Изобразить модель системы Солнце-Земля-Луна:

Задания










Слайд 153
Программирование  на языке ПаскальТема 12. Функции© К.Ю. Поляков, 2006-2009
Текст слайда:

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

Тема 12. Функции

© К.Ю. Поляков, 2006-2009


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

Функции

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


Слайд 155
ФункцииЗадача: составить функцию, которая вычисляет наибольшее из двух значений, и привести пример ее использованияФункция:формальные параметрыfunction Max (a,
Текст слайда:


Функции

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

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





function Max (a, b: integer): integer;
begin
if a > b then Max := a
else Max := b;
end;

это результат функции



Слайд 156
ФункцииОсобенности:заголовок начинается словом functionформальные параметры описываются так же, как и для процедурможно использовать параметры-переменныев конце заголовка через
Текст слайда:

Функции

Особенности:
заголовок начинается словом function
формальные параметры описываются так же, как и для процедур
можно использовать параметры-переменные
в конце заголовка через двоеточие указывается тип результата
функции располагаются ВЫШЕ основной программы


Слайд 157
ФункцииОсобенности:можно объявлять и использовать локальные переменныезначение, которое является результатом, записывается в переменную, имя которой совпадает с названием
Текст слайда:

Функции

Особенности:
можно объявлять и использовать локальные переменные
значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:


Слайд 158
Программаprogram qq;var a, b, max: integer;begin writeln('Введите два числа'); read(a, b); max := Max ( a, b
Текст слайда:

Программа

program qq;
var a, b, max: integer;




begin
writeln('Введите два числа');
read(a, b);
max := Max ( a, b );
writeln('Наибольшее число ', max );
end.

function Max (a, b: integer): integer;
begin
...
end;

c

c

c

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

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


Слайд 159
Задания«4»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования.
Текст слайда:


Задания

«4»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования.
Пример:
Введите число:
100
сумма = 5050
«5»: Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна, на 3-ю – 4 зерна, …)
Пример:
Введите номер клетки:
28
На 28-ой клетке 134217728 зерен.


Слайд 160
Задания (вариант 2)«4»: Составить функцию, которая определяет наибольший общий делитель двух натуральных и привести пример ее использования.
Текст слайда:


Задания (вариант 2)

«4»: Составить функцию, которая определяет наибольший общий делитель двух натуральных и привести пример ее использования.
Пример:
Введите два числа:
14 21
НОД(14,21)=7
«5»: Составить функцию, которая вычисляет функцию синус как сумму ряда (с точностью 0.001)

Пример:
Введите угол в градусах:
45
sin(45) = 0.707

x в радианах!


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

Логические функции

Задача: составить функцию, которая определяет, верно ли, что заданное число – простое.
Особенности:
ответ – логическое значение (True или False)
результат функции можно использовать как логическую величину в условиях (if, while)
Алгоритм: считаем число делителей в интервале от 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;


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

Логические функции

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 <= N do begin
if N mod i = 0 then count := count + 1;
i := i + 1;
end;
Prime := (count = 0);
end;


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

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

условие – это логическое значение


Слайд 163
Задания«4»: Составить функцию, которая определяет, верно ли, что сумма его цифр – четное число.  Пример:	 Введите
Текст слайда:


Задания

«4»: Составить функцию, которая определяет, верно ли, что сумма его цифр – четное число.
Пример:
Введите число:
136
Сумма цифр четная.
«5»: Составить функцию, которая определяет, верно ли, что в заданном числе все цифры стоят по возрастанию.
Пример:
Введите число:
258
Верно.

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

Введите число:
245
Сумма цифр нечетная.


Слайд 164
Программирование  на языке ПаскальТема 13. Случайные числа© К.Ю. Поляков, 2006-2009
Текст слайда:

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

Тема 13. Случайные числа

© К.Ю. Поляков, 2006-2009


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

Случайные числа

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


Слайд 166
Псевдослучайные числаПсевдослучайные числа – это такая последовательность чисел, которая обладает свойствами случайных чисел, но каждое следующее число
Текст слайда:

Псевдослучайные числа

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

Случайные вещественные числа [0,1]

Литература:
Д. Кнут, Искусство программирования для ЭВМ, т.2.

дробная часть числа

a, c, m - целые числа

простое число

230-1

например, k = 5


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

Распределение случайных чисел

Модель: снежинки падают на отрезок [a,b]

распределение

равномерное

неравномерное


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

Распределение случайных чисел

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


a

b

a

b

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

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


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

Генератор случайных чисел в Паскале

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


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

Случайные числа

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


Слайд 171
Программаprogram qq;var x, y, k, code, i: integer;  stop: boolean;begin stop := False; repeat
Текст слайда:

Программа

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


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

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




«5»: Заполнить треугольник точками случайного цвета (равномерно или неравномерно).
Подсказка: возьмите равнобедренный треугольник с углом 45о.

Задания


(100,100)

(300,200)


Слайд 173
Конец фильма
Текст слайда:


Конец фильма


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

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

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

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

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


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

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