Инфоурок Информатика ПрезентацииПрезентация по разделу Программирование на тему Паскаль

Презентация по разделу Программирование на тему Паскаль

Скачать материал

Выберите документ из архива для просмотра:

Выбранный для просмотра документ ПаскальОсновы.ppt

Скачать материал "Презентация по разделу Программирование на тему Паскаль"

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Директор по маркетингу (тур. агенства)

Описание презентации по отдельным слайдам:

  • 1Программирование на языке Паскаль© К.Ю. Поляков, 2006-2007Введение
Ветвлени...

    1 слайд

    1
    Программирование
    на языке Паскаль
    © К.Ю. Поляков, 2006-2007
    Введение
    Ветвления
    Сложные условия
    Циклы
    Циклы с условием
    Оператор выбора

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

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

    2 слайд

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

  • 3АлгоритмСвойства алгоритма
дискретность: состоит из отдельных шагов (команд)...

    3 слайд

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

  • 4ПрограммаПрограмма – это 
алгоритм, записанный на каком-либо языке программи...

    4 слайд

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

  • 5Языки программированияМашинно-ориентированные (низкого уровня) - каждая кома...

    5 слайд

    5
    Языки программирования
    Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер)
    Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера
    для обучения: Бейсик, ЛОГО, Паскаль
    профессиональные: Си, Фортран, Паскаль
    для задач искусственного интеллекта: Пролог, ЛИСП
    для Интернета: JavaScript, Java, Perl, PHP, ASP

  • 6Язык Паскаль1970 – Никлаус Вирт (Швейцария)
 язык для обучения студентов
 ра...

    6 слайд

    6
    Язык Паскаль
    1970 – Никлаус Вирт (Швейцария)
    язык для обучения студентов
    разработка программ «сверху вниз»





    разнообразные структуры данных (массивы, структуры, множества)
    Подзадача1
    Подзадача2
    Подзадача3
    1.1
    1.2
    1.3
    2.1
    2.2
    2.3
    3.1
    3.2
    3.3
    Задача

  • 7Из чего состоит программа?program ;
const …;{константы}
var …; {переменные}...

    7 слайд

    7
    Из чего состоит программа?
    program <имя программы>;
    const …;{константы}
    var …; {переменные}

    begin
    … {основная программа}
    end.
    { процедуры и функции }
    комментарии в фигурных скобках не обрабатываются

  • 8Из чего состоит программа?Константа – постоянная величина, имеющая имя.
Пере...

    8 слайд

    8
    Из чего состоит программа?
    Константа – постоянная величина, имеющая имя.
    Переменная – изменяющаяся величина, имеющая имя (ячейка памяти).
    Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности).
    Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).

  • 9Имена программы, констант, переменныхИмена могут включать
латинские буквы (A...

    9 слайд

    9
    Имена программы, констант, переменных
    Имена могут включать
    латинские буквы (A-Z)


    цифры


    знак подчеркивания _
    заглавные и строчные буквы не различаются
    Имена НЕ могут включать
    русские буквы
    пробелы
    скобки, знаки +, =, !, ? и др.
    имя не может начинаться с цифры
    Какие имена правильные??
    AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

  • 10Константыconst 	
   	i2 = 45; { целое число }
	pi = 3.14; { вещественное  ч...

    10 слайд

    10
    Константы
    const
    i2 = 45; { целое число }
    pi = 3.14; { вещественное число }

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

    L = True; { логическая величина }
    целая и дробная часть отделяются точкой
    можно использовать русские буквы!
    может принимать два значения:
    True (истина, «да»)
    False (ложь, «нет»)

  • 11ПеременныеПеременная – это величина, имеющая имя, тип и значение. Значение...

    11 слайд

    11
    Переменные
    Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.
    Типы переменных:
    integer{ целая }
    real{ вещественная }
    char{ один символ }
    string{ символьная строка }
    boolean { логическая }
    Объявление переменных (выделение памяти):
    var a, b: integer;
    Q: real;
    s1, s2: string;

  • 12Как изменить значение переменной?Оператор – это команда языка программирова...

    12 слайд

    12
    Как изменить значение переменной?
    Оператор – это команда языка программирования высокого уровня.
    Оператор присваивания служит для изменения значения переменной.
    program qq;
    var a, b: integer;
    begin
    a := 5;
    b := a + 2;
    a := (a + 2)*(b – 3);
    end.
    a
    ?
    5
    5
    b
    ?
    5+2
    7
    a
    5
    7*4
    28
    Пример:

  • 13Оператор присваиванияОбщая структура:Арифметическое выражение может включат...

    13 слайд

    13
    Оператор присваивания
    Общая структура:
    Арифметическое выражение может включать
    константы
    имена переменных
    знаки арифметических операций:
    + - * / div mod

    вызовы функций
    круглые скобки ( )
    умножение
    деление
    деление нацело
    остаток от деления
    <имя переменной> := <выражение>;

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

    14 слайд

    14
    program qq;
    var a, b: integer;
    x, y: real;
    begin
    a := 5;
    10 := x;
    y := 7,8;
    b := 2.5;
    x := 2*(a + y);
    a := b + x;
    end.
    Какие операторы неправильные?
    имя переменной должно быть слева от знака :=
    целая и дробная часть отделяются точкой
    нельзя записывать вещественное значение в целую переменную

  • 15Ручная прокрутка программыprogram qq;
var 	a, b: integer;
begin
  a := 5;...

    15 слайд

    15
    Ручная прокрутка программы
    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.

  • 16Порядок выполнения операцийвычисление выражений в скобках
умножение, делени...

    16 слайд

    16
    Порядок выполнения операций
    вычисление выражений в скобках
    умножение, деление, div, mod слева направо
    сложение и вычитание слева направо
    z := (5*a*c+3*(c-d))/a*(b-c)/ b;
    x:=(a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));
    2 3 5 4 1 7 8 6 9
    2 6 3 4 7 5 1 12 8 11 10 9

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

    17 слайд

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

  • 18Оператор вводаread ( a );    { ввод значения переменной a}read ( a, b ); {...

    18 слайд

    18
    Оператор ввода
    read ( a ); { ввод значения переменной a}
    read ( a, b ); { ввод значений переменных a и b}
    Как вводить два числа?
    через пробел:
    25 30
    через Enter:
    25
    30
    a
    25
    b
    30
    a
    25
    b
    30

  • 19Оператор выводаwrite ( a );   { вывод значения переменной a}writeln ( a );...

    19 слайд

    19
    Оператор вывода
    write ( a ); { вывод значения переменной a}
    writeln ( a ); { вывод значения переменной a и переход на новую строчку}
    writeln ( 'Привет!' ); { вывод текста}
    writeln ( 'Ответ: ', c ); { вывод текста и значения переменной c}
    writeln ( a, '+', b, '=', c );

  • 20Форматы выводаprogram qq;
var i: integer;
    x: real;
begin
  i := 15;
  w...

    20 слайд

    20
    Форматы вывода
    program qq;
    var i: integer;
    x: real;
    begin
    i := 15;
    writeln ( '>', i, '<' );
    writeln ( '>', i:5, '<' );
    x := 12.345678;
    writeln ( '>', x, '<' );
    writeln ( '>', x:10, '<' );
    writeln ( '>', x:7:2, '<' );
    end.
    >15<
    > 15<

    >1.234568E+001<
    > 1.23E+001<
    > 12.35<
    всего символов
    всего символов
    в дробной части

  • 21Полное решение	program qq;
	var a, b, c: integer;
	begin
   writeln(&#039;Введит...

    21 слайд

    21
    Полное решение
    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
    это выводит компьютер
    это вводит пользователь

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

    22 слайд

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

  • 23Задания&quot;4&quot;: Ввести три числа, найти их сумму и произведение.
    Пример:...

    23 слайд

    23
    Задания
    "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

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

    24 слайд

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

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

    25 слайд

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

  • 26Вариант 1. Блок-схеманачалоmax:= a;ввод a,bвывод maxa &gt; b?max:= b;конецдане...

    26 слайд

    26
    Вариант 1. Блок-схема
    начало
    max:= a;
    ввод a,b
    вывод max
    a > b?
    max:= b;
    конец
    да
    нет
    полная форма ветвления
    блок "решение"
    Если a = b?
    ?

  • 27Вариант 1. Программа	max := a;max := b;полная форма условного оператора	pro...

    27 слайд

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

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

    28 слайд

    28
    Условный оператор
    if <условие> then begin
    {что делать, если условие верно}
    end
    else begin
    {что делать, если условие неверно}
    end;
    Особенности:
    перед else НЕ ставится точка с запятой
    вторая часть (else …) может отсутствовать (неполная форма)
    если в блоке один оператор, можно убрать слова begin и end

  • 29Что неправильно?	if a &gt; b then begin
   a := b;   
 end
 else
   b := a;...

    29 слайд

    29
    Что неправильно?
    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

  • 30Вариант 2. Блок-схеманеполная форма ветвленияначалоmax:= a;ввод a,bвывод ma...

    30 слайд

    30
    Вариант 2. Блок-схема
    неполная форма ветвления
    начало
    max:= a;
    ввод a,b
    вывод max
    max:= b;
    конец
    да
    нет
    b > a?

  • 31Вариант 2. Программа		program qq;
	var a, b, max: integer;
	begin
   writel...

    31 слайд

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

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

  • 32Вариант 2Б. Программа	program qq;
	var a, b, max: integer;
	begin
   writel...

    32 слайд

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

  • 33Что неправильно?	if a &gt; b then begin
      a := b;   
 else b := a; 	if a &gt;...

    33 слайд

    33
    Что неправильно?
    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;

  • 34Задания&quot;4&quot;: Ввести три числа и найти наибольшее из них.
    Пример:
		Введи...

    34 слайд

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

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

    35 слайд

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

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

    36 слайд

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

  • 37Вариант 1. Алгоритмначаловвод x&#039;подходит&#039;конецданетx &gt;= 25?данетx

    37 слайд

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

  • 38Вариант 1. Программа		program qq;
	var x: integer;
	begin
   writeln(&#039;Введи...

    38 слайд

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

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

  • 39Вариант 2. Алгоритмначаловвод x&#039;подходит&#039;данетx &gt;= 25 и
x

    39 слайд

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

  • 40Вариант 2. Программасложное условие	program qq;
	var x: integer;
	begin...

    40 слайд

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

  • 41Сложные условияСложное условие – это условие, состоящее из нескольких прост...

    41 слайд

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

  • 42Сложные условияПорядок выполнения
выражения в скобках
not
and
or, xor
=, =,...

    42 слайд

    42
    Сложные условия
    Порядок выполнения
    выражения в скобках
    not
    and
    or, xor
    <, <=, >, >=, =, <>
    Особенность – каждое из простых условий обязательно заключать в скобки.
    Пример
    4 1 6 2 5 3
    if not (a > b) or (c <> d) and (b <> a)
    then begin
    ...
    end

  • 43Истинно или ложно при a := 2; b := 3; c := 4;
not (a &gt; b)
(a &lt; b) and (b &lt;...

    43 слайд

    43
    Истинно или ложно при 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

  • 44Задания&quot;4&quot;: Ввести номер месяца и вывести название времени года.
    Пример...

    44 слайд

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

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

    45 слайд

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

  • 46ЦиклыЦикл – это многократное выполнение одинаковой последовательности дейст...

    46 слайд

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

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

    47 слайд

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

  • 48Алгоритм (с блоком &quot;цикл&quot;)началоi, i2, i3конецi2 := i * i;
i3 := i2 * i;i :...

    48 слайд

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

  • 49Программаprogram qq;
var i, i2, i3: integer;
begin
  

  for i:=1 to 8 do b...

    49 слайд

    49
    Программа
    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.
    переменная цикла
    начальное значение
    конечное значение

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

    50 слайд

    50
    Цикл с уменьшением переменной
    Задача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в обратном порядке).
    Особенность: переменная цикла должна уменьшаться.
    Решение:
    for i:=8 1 do begin
    i2 := i*i;
    i3 := i2*i;
    writeln(i:4, i2:4, i3:4);
    end;
    downto

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

    51 слайд

    51
    Цикл с переменной
    for <переменная> := <начальное значение> to
    <конечное значение> do begin
    {тело цикла}
    end;
    Увеличение переменной на 1:
    for <переменная> := <начальное значение>
    downto
    <конечное значение> do begin
    {тело цикла}
    end;
    Уменьшение переменной на 1:

  • 52Цикл с переменнойОсобенности:
переменная цикла может быть только целой (int...

    52 слайд

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

  • 53Цикл с переменнойОсобенности:
в теле цикла не разрешается изменять переменн...

    53 слайд

    53
    Цикл с переменной
    Особенности:
    в теле цикла не разрешается изменять переменную цикла (почему?)
    при изменении начального и конечного значения внутри цикла количество шагов не изменится:
    n := 8;
    for i:=1 to n do begin
    writeln('Привет');
    n := n + 1;
    end;
    нет зацикливания

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

    54 слайд

    54
    Цикл с переменной
    Особенности:
    после выполнения цикла во многих системах устанавливается первое значение переменной цикла, при котором нарушено условие:
    for i:=1 to 8 do
    writeln('Привет');
    writeln('i=', i);
    for i:=8 downto 1 do
    writeln('Привет');
    writeln('i=', i);
    i=9
    i=0
    НЕ ДОКУМЕНТИРОВАНО

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

    55 слайд

    55
    Сколько раз выполняется цикл?
    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

  • 56for i:=1 to 9 do begin
    if     ???      then begin 
      i2 := i*i;...

    56 слайд

    56
    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
    Что плохо?
    ?

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

    57 слайд

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

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

    58 слайд

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

  • 59Задания&quot;4&quot;: Ввести a и b и вывести квадраты и кубы чисел от a до b.
    При...

    59 слайд

    59
    Задания
    "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

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

    60 слайд

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

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

    61 слайд

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




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

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

    62 слайд

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

  • 63Программаprogram qq;
var n, count: integer;
begin
  writeln(&#039;Введите целое...

    63 слайд

    63
    Программа
    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"
    Что плохо?
    ?

  • 64Цикл с условием	while  do begin
   {тело цикла}      
 end;Особенности:
мож...

    64 слайд

    64
    Цикл с условием
    while <условие> do begin
    {тело цикла}
    end;
    Особенности:
    можно использовать сложные условия:
    если в теле цикла только один оператор, слова begin и end можно не писать:
    while (a<b) and (b<c) do begin
    {тело цикла}
    end;
    while a < b do
    a := a + 1;

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

    65 слайд

    65
    Цикл с условием
    Особенности:
    условие пересчитывается каждый раз при входе в цикл
    если условие на входе в цикл ложно, цикл не выполняется ни разу
    если условие никогда не станет ложным, программа зацикливается
    a := 4; b := 6;
    while a > b do
    a := a – b;
    a := 4; b := 6;
    while a < b do
    d := a + b;

  • 66Сколько раз выполняется цикл?a := 4; b := 6;
while a &lt; b do a := a + 1;2 ра...

    66 слайд

    66
    Сколько раз выполняется цикл?
    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;
    зацикливание

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

    67 слайд

    67
    Замена 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 возможна всегда.

  • 68Задания&quot;4&quot;: Ввести целое число и найти сумму его цифр.
    Пример:
		Введит...

    68 слайд

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

  • 69ПоследовательностиПримеры:
1, 2, 3, 4, 5, …
1, 2, 4, 7, 11, 16, …
1, 2, 4,...

    69 слайд

    69
    Последовательности
    Примеры:
    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

  • 70ПоследовательностиЗадача: найти сумму всех элементов последовательности,...

    70 слайд

    70
    Последовательности
    Задача: найти сумму всех элементов последовательности,
    которые по модулю больше 0,001:
    Элемент последовательности (начиная с №2):
    b := b+1;
    c := 2*c;
    z := -z;

  • 71АлгоритмначалоSконецнетда|a| &gt; 0.001?S := S + a;S := 0; b := 1; c := 2; z...

    71 слайд

    71
    Алгоритм
    начало
    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;
    новый элемент
    изменение
    Перестановка?
    ?

  • 72Программаprogram qq;
var b, c, z: integer;
    S, a: real;
begin
   S := 0;...

    72 слайд

    72
    Программа
    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;
    начальные значения
    увеличение суммы
    расчет элемента последовательности

  • 73Задания&quot;4&quot;: Найти сумму элементов последовательности с точностью 0,001:...

    73 слайд

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


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

    Ответ:
    S = 1.220

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

    74 слайд

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

  • 75Цикл с постусловием: алгоритм началоконецданетn &gt; 0?тело циклаусловие ВЫХОД...

    75 слайд

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

  • 76Программаprogram qq;
var n: integer;
begin
   repeat
     writeln(&#039;Введите...

    76 слайд

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

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

    77 слайд

    77
    Сколько раз выполняется цикл?
    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;
    зацикливание

  • 78Задания (с защитой от неверного ввода)&quot;4&quot;: Ввести натуральное число и опред...

    78 слайд

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

  • 79Программирование на языке ПаскальТема 6. Оператор выбора© К.Ю. Поляков, 20...

    79 слайд

    79
    Программирование
    на языке Паскаль
    Тема 6. Оператор выбора
    © К.Ю. Поляков, 2006-2007

  • 80Оператор выбораЗадача: Ввести номер месяца и вывести количество...

    80 слайд

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

  • 81Алгоритмначалоконецоператор выборани один вариант не подошелввод MданетM =...

    81 слайд

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

  • 82Программаprogram qq;
var M, D: integer;
begin
   writeln(&#039;Введите номер мес...

    82 слайд

    82
    Программа
    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;
    ни один вариант не подошел

  • 83Оператор выбораОсобенности:
после case может быть имя переменной или арифме...

    83 слайд

    83
    Оператор выбора
    Особенности:
    после 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;

  • 84Оператор выбораОсобенности:
если нужно выполнить только один оператор, слов...

    84 слайд

    84
    Оператор выбора
    Особенности:
    если нужно выполнить только один оператор, слова begin и end можно не писать
    нельзя ставить два одинаковых значения
    case i+3 of
    1: a := b;
    1: a := c;
    end;
    case i+3 of
    1: a := b;
    2: a := c;
    end;

  • 85Оператор выбораОсобенности:
значения, при которых выполняются одинаковые де...

    85 слайд

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

  • 86Что неправильно?case a of 
 2: begin a := b;
 4: a := c;
end;case a of 
 2:...

    86 слайд

    86
    Что неправильно?
    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;

  • 87Задания (с защитой от неверного ввода)&quot;4&quot;: Ввести номер месяца и вывести ко...

    87 слайд

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

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

    88 слайд

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

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

    89 слайд

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

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

    90 слайд

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

  • 91Точки, отрезки и ломаные(x1, y1)(x2, y2)Pen (1, 0, 255, 0); Line (x1, y1, x...

    91 слайд

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

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

    92 слайд

    92
    Фигуры с заливкой
    (x1, y1)
    (x2, y2)
    Pen (1, 0, 0, 255);
    Brush (1, 255, 255, 0);
    Rectangle (x1, y1, x2, y2);
    (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);
    (x, y)
    Как отменить заливку?
    ?

  • 93ТекстTextColor (0, 0, 255);
Brush (1, 255, 255, 0);
Font (20, 30, 600);
Mov...

    93 слайд

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

  • 94Пример(200, 50)(100, 100)(300, 200)program qq;
begin
   Pen(2, 255, 0, 255)...

    94 слайд

    94
    Пример
    (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.

  • 95Задания&quot;4&quot;: &quot;Лягушка&quot; 


 




&quot;5&quot;: &quot;Корона&quot;

    95 слайд

    95
    Задания
    "4": "Лягушка"







    "5": "Корона"

  • 96Штриховка(x1, y1)(x2, y2)N линий (N=5)hRectangle (x1, y1, x2, y2);
Line( x1...

    96 слайд

    96
    Штриховка
    (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);
    ...
    h := (x2 – x1) / (N + 1);
    Rectangle (x1, y1, x2, y2);
    x := x1 + h;
    for i:=1 to N do begin
    Line( round(x), y1, round(x), y2);
    x := x + h;
    end;
    var x, h: real;
    x
    округление до ближайшего целого
    x

  • 97Как менять цвет?(x1, y1)(x2, y2)Brush ( 1, c, c, c );
Fill ( ???, ??? );сер...

    97 слайд

    97
    Как менять цвет?
    (x1, y1)
    (x2, y2)
    Brush ( 1, c, c, c );
    Fill ( ???, ??? );
    серый: R = G = B
    Шаг изменения c:
    x
    (x-1, y1+1)
    var c, hc: integer;
    hc := 255 div (N + 1);
    c := 0;
    for i:=1 to N+1 do begin
    Line (round(x), y1, round(x), y2);
    Brush (1, c, c, c);
    Fill (round(x)-1, y1+1);
    x := x + h; c := c + hc;
    end;

  • 98Штриховка(x1, y1)(x2, y2)(x3, y2)ah(x3+a, y1)Line( x1+h,   y1, x1+h-a,   y2...

    98 слайд

    98
    Штриховка
    (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

  • 99Штриховка(x1, y1)(x2, y2)hxhyyxyLine( x1, y1+hy,   x1+hx,   y1+hy)  ;
Line(...

    99 слайд

    99
    Штриховка
    (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;

  • 100Задания&quot;4&quot;: Ввести с клавиатуры число линий штриховки и построить фигуру,...

    100 слайд

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







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

  • 101Программирование на языке ПаскальТема 8. Графики функций© К.Ю. Поляков, 2...

    101 слайд

    101
    Программирование
    на языке Паскаль
    Тема 8. Графики функций
    © К.Ю. Поляков, 2006-2007

  • 102Построение графиков функцийЗадача: построить график функции y = 3 sin(x) н...

    102 слайд

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

  • 103Преобразование координат(x,y)XYxyМатематическая 
система координатЭкранная...

    103 слайд

    103
    Преобразование координат
    (x,y)
    X
    Y
    x
    y
    Математическая
    система координат
    Экранная система координат (пиксели)
    (xэ,yэ)


    (0,0)
    (0,0)
    a
    b
    k – масштаб (длина изображения единичного отрезка на экране)
    xэ = a + kx
    yэ = b - ky

  • 104Программа2πh – шаг изменения xw – длина оси ОХ в пикселяхна экранеоси коор...

    104 слайд

    104
    Программа

    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.
    Что плохо?
    ?

  • 105Как соединить точки?Алгоритм:Если первая точка
  перейти в точку (xэ,yэ)
и...

    105 слайд

    105
    Как соединить точки?
    Алгоритм:
    Если первая точка
    перейти в точку (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.

  • 106Задания&quot;4&quot;: Построить график функции y = x2 на интервале [-3,3]....

    106 слайд

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







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


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

    107 слайд

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

  • 108ПроцедурыЗадача: Построить фигуру:
Особенность: Три похожие фигуры.
общее:...

    108 слайд

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

  • 109ПроцедурыПроцедура – это вспомогательный алгоритм, который предназначен дл...

    109 слайд

    109
    Процедуры
    Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий.
    Применение:
    выполнение одинаковых действий в разных местах программы
    разбивка программы (или другой процедуры) на подзадачи для лучшего восприятия
    Подзадача1
    Подзадача2
    Подзадача3
    1.1
    1.2
    1.3
    2.1
    2.2
    2.3
    3.1
    3.2
    3.3
    Задача

  • 110ПроцедурыПорядок разработки:
выделить одинаковые или похожие действия (три...

    110 слайд

    110
    Процедуры
    Порядок разработки:
    выделить одинаковые или похожие действия (три фигуры)
    найти в них общее (размеры, форма, угол поворота) и отличия (координаты, цвет)
    отличия записать в виде неизвестных переменных, они будут параметрами процедуры
    (x, y)
    100
    60
    (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);
    тело процедуры
    координаты
    цвет
    параметры

  • 111Программаprogram qq;




begin
   Pen(1, 255, 0, 255);
   Tr(100, 100, 0,...

    111 слайд

    111
    Программа
    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;
    формальные параметры

  • 112ПроцедурыОсобенности:
все процедуры расположены выше основной программы
в...

    112 слайд

    112
    Процедуры
    Особенности:
    все процедуры расположены выше основной программы
    в заголовке процедуры перечисляются формальные параметры, они обозначаются именами, поскольку могут меняться
    при вызове процедуры в скобках указывают фактические параметры (числа или арифметические выражения) в том же порядке
    procedure Tr( x, y, r, g, b: integer);
    Tr (200, 100, 0, 255, 0);
    x
    y
    r
    g
    b

  • 113ПроцедурыОсобенности:
для каждого формального параметра после двоеточия ук...

    113 слайд

    113
    Процедуры
    Особенности:
    для каждого формального параметра после двоеточия указывают его тип
    если однотипные параметры стоят рядом, их перечисляют через запятую
    внутри процедуры параметры используются так же, как и переменные
    procedure A (x: real; y: integer; z: real);
    procedure A (x, z: real; y, k, l: integer);

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

    114 слайд

    114
    Процедуры
    Особенности:
    в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа
    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;

  • 115Параметры-переменныеЗадача: составить процедуру, которая меняет местами зн...

    115 слайд

    115
    Параметры-переменные
    Задача: составить процедуру, которая меняет местами значения двух переменных.
    Особенности:
    надо, чтобы изменения, сделанные в процедуре, стали известны вызывающей программе
    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

  • 116Параметры-переменныеПрименение: таким образом процедура (и функция) может...

    116 слайд

    116
    Параметры-переменные
    Применение:
    таким образом процедура (и функция) может возвращать несколько значений,
    Запрещенные варианты вызова
    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
    параметры могут изменяться

  • 117Задания&quot;4&quot;: Используя процедуры, построить фигуру. 


 




&quot;5&quot;: Используя...

    117 слайд

    117
    Задания
    "4": Используя процедуры, построить фигуру.







    "5": Используя процедуры, построить фигуру.
    a
    a
    a
    0,866∙a
    равносторонний треугольник

  • 118Программирование на языке ПаскальТема 10. Рекурсия© К.Ю. Поляков, 2006-2007

    118 слайд

    118
    Программирование
    на языке Паскаль
    Тема 10. Рекурсия
    © К.Ю. Поляков, 2006-2007

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

    119 слайд

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

  • 120Дерево ПифагораДерево Пифагора из N уровней – это ствол и отходящие от нег...

    120 слайд

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

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

    121 слайд

    121
    Дерево Пифагора
    Особенности:
    когда остановиться?
    деревья имеют различный наклон
    когда число оставшихся уровней станет равно нулю!
    (x1, y1)
    (x0, y0)
    α
    α+45o
    α-45o
    L
    x1 = x0 + L·cos(α)
    y1 = y0 – L·sin(α)
    наклон "дочерних" деревьев
    α + π/4
    α – π/4

  • 122Процедураугол αдлина стволаprocedure Pifagor(x0, y0, a, L: real;...

    122 слайд

    122
    Процедура
    угол α
    длина ствола
    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
    Рекурсивной называется процедура, вызывающая сама себя.

  • 123Программаprogram qq;
  procedure Pifagor(x0, y0, a, L: real;...

    123 слайд

    123
    Программа
    program qq;
    procedure Pifagor(x0, y0, a, L: real;
    N: integer);
    ...
    end;
    begin
    Pifagor (250, 400, pi/2, 150, 8);
    end;
    угол α
    длина ствола
    число уровней
    x0
    y0
    Как наклонить дерево вправо на 30o?
    ?
    Pifagor (250, 400, 2*pi/3, 150, 8);

  • 124&quot;4&quot;: Используя рекурсивную процедуру, построить фигуру: 


 




&quot;5&quot;: Испо...

    124 слайд

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







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

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

    125 слайд

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

  • 126АнимацияАнимация (англ. animation) – оживление изображения на экране.
Зада...

    126 слайд

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

  • 127Как &quot;поймать&quot; нажатие клавиши?Событие – это изменение в состоянии какого-л...

    127 слайд

    127
    Как "поймать" нажатие клавиши?
    Событие – это изменение в состоянии какого-либо объекта или действие пользователя (нажатие на клавишу, щелчок мышкой).
    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;

  • 128Как выйти из цикла при нажатии Esc?program qq;
var stop: boolean; 
    k,c...

    128 слайд

    128
    Как выйти из цикла при нажатии 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, если надо остановиться
    запуск цикла

  • 129Процедура (рисование и стирание)procedure Draw(x, y: integer; flag: boolea...

    129 слайд

    129
    Процедура (рисование и стирание)
    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)?
    рисуем: цвет кисти – желтый
    стираем: цвет кисти – синий
    только заливка!

  • 130Полная программаprogram qq;
var x, y, k, code, i: integer;
    stop: boole...

    130 слайд

    130
    Полная программа
    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 мс
    отключить границу

  • 131&quot;4&quot;: Два квадрата двигаются в противоположном направлении: 


 



&quot;5&quot;: Дв...

    131 слайд

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






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

  • 132Управление клавишамиЗадача: жёлтый квадрат внутри синего квадрата управляе...

    132 слайд

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

  • 133Программаprogram qq;
var x, y, k, code, i: integer;
    stop: boolean;...

    133 слайд

    133
    Программа
    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;
    Что плохо?
    ?
    процедура
    основной цикл
    обработка событий

  • 134Как убрать мигание?Проблема: даже если не нажата никакая клавиша, квадрат...

    134 слайд

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

  • 135Программаprogram qq;
var x, y, k, code, i: integer;
    stop: boolean;...

    135 слайд

    135
    Программа
    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;
    процедура
    рисуем квадрат
    ждем события
    только теперь стираем
    Что можно улучшить?
    ?

  • 136&quot;4&quot;: Квадрат двигается при нажатии стрелок, однако не может выйти за грани...

    136 слайд

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




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

  • 137ВращениеЗадача: изобразить модель вращения Земли вокруг Солнца.
Проблема:...

    137 слайд

    137
    Вращение
    Задача: изобразить модель вращения Земли вокруг Солнца.
    Проблема: движение по окружности, как изменять координаты?
    Решение: использовать в качестве независимой переменной (менять в цикле) угол поворота α
    (x0, y0)
    α
    L
    (x, y)
    x = x0 + L·cos(α)
    y = y0 – L·sin(α)

  • 138Процедураprocedure Draw(x, y: integer; flag: boolean);
const r = 10;
begin...

    138 слайд

    138
    Процедура
    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)

  • 139Константы и переменныеprogram qq;
const rSun = 60;   { радиус Солнца}...

    139 слайд

    139
    Константы и переменные
    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;

  • 140Основная программаprogram qq;
...
begin
  Brush(1, 0, 0, 0);  Fill(1,1);...

    140 слайд

    140
    Основная программа
    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;

  • 141&quot;4&quot;: Изобразить модель Солнца с двумя планетами, которые вращаются в проти...

    141 слайд

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


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

  • 142Программирование на языке ПаскальТема 12. Случайные числа© К.Ю. Поляков,...

    142 слайд

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

  • 143Случайные числаСлучайные явления: везде…
бросание монеты (&quot;орел&quot; или &quot;решк...

    143 слайд

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

  • 144Псевдослучайные числаПсевдослучайные числа – это такая последовательность...

    144 слайд

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

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

    Литература:
    Д. Кнут, Искусство программирования для ЭВМ, т.2.
    дробная часть числа
    a, c, m - целые числа
    простое число
    230-1
    например, k = 5

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

    145 слайд

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

  • 146Распределение случайных чиселОсобенности: 
распределение – это характерист...

    146 слайд

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

  • 147Генератор случайных чисел в ПаскалеЦелые числа в интервале [0,N]: 
  var x...

    147 слайд

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

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

    148 слайд

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

  • 149Программаprogram qq;
var x, y, k, code, i: integer;
    stop: boolean;
beg...

    149 слайд

    149
    Программа
    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

  • 150&quot;4&quot;: Ввести с клавиатуры координаты углов прямоугольника и заполнить его т...

    150 слайд

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




    "5": Заполнить треугольник точками случайного цвета (равномерно или неравномерно).
    Подсказка: возьмите равнобедренный треугольник с углом 45о.
    Задания
    (100,100)
    (300,200)

  • 151Программирование на языке ПаскальТема 13. Функции© К.Ю. Поляков, 2006-2007

    151 слайд

    151
    Программирование
    на языке Паскаль
    Тема 13. Функции
    © К.Ю. Поляков, 2006-2007

  • 152ФункцииФункция – это вспомогательный алгоритм (подпрограмма), результатом...

    152 слайд

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

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

    153 слайд

    153
    Функции
    Задача: составить функцию, которая вычисляет наибольшее из двух значений, и привести пример ее использования
    Функция:
    формальные параметры
    function Max (a, b: integer): integer;
    begin
    if a > b then Max := a
    else Max := b;
    end.
    это результат функции

  • 154ФункцииОсобенности:
заголовок начинается словом function
формальные параме...

    154 слайд

    154
    Функции
    Особенности:
    заголовок начинается словом function
    формальные параметры описываются так же, как и для процедур
    можно использовать параметры-переменные
    в конце заголовка через двоеточие указывается тип результата
    функции располагаются ВЫШЕ основной программы
    Max (a, b: integer): integer;
    function
    function Max (a, b: integer): ;
    integer
    function qq( a, b: integer; x: real ): real;
    a, b: integer; x: real
    function Max ( a, b: integer): integer;
    var

  • 155ФункцииОсобенности:
можно объявлять и использовать локальные переменные
зн...

    155 слайд

    155
    Функции
    Особенности:
    можно объявлять и использовать локальные переменные
    значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
    function Max (a, b: integer): integer;
    begin
    ...

    end;
    Max := a;
    function qq (a, b: integer): float;

    begin
    ...
    end;
    var x, y: float;
    В Delphi:
    !
    Result := a;

  • 156Программаprogram qq;
var a, b, max: integer;




begin
  writeln(&#039;Введите...

    156 слайд

    156
    Программа
    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
    Имена переменных, функций и
    процедур не должны совпадать!
    !
    фактические параметры
    вызов функции

  • 157Логические функцииЗадача: составить функцию, которая определяет, верно ли,...

    157 слайд

    157
    Логические функции
    Задача: составить функцию, которая определяет, верно ли, что заданное число – простое.
    Особенности:
    ответ – логическое значение (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;
    Как улучшить?
    ?

  • 158Логические функцииprogram qq;
var N: integer;










begin
  writeln(&#039;В...

    158 слайд

    158
    Логические функции
    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
    if N mod i = 0 then count := count + 1;
    i := i + 1;
    end;
    Prime := (count = 0);
    end;
    вызов функции
    результат – логическое значение
    перебор только до
    условие – это логическое значение

  • 159Задания&quot;4&quot;: Составить функцию, которая определяет сумму всех чисел от 1 до...

    159 слайд

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

  • 160Задания (вариант 2)&quot;4&quot;: Составить функцию, которая определяет наибольший о...

    160 слайд

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

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

  • 161Конец фильма

    161 слайд

    161
    Конец фильма

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

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

1.Введение

2.Ветвления 3.Сложные условия 4.Циклы 5.Циклы с условием 6.Оператор выбора 7.Графика 8.Графики функций 9.Процедуры 10.Рекурсия 11.Анимация 12.Случайные числа 13.Функции

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

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

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 661 432 материала в базе

Скачать материал

Другие материалы

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 24.02.2015 2940
    • ZIP 666 кбайт
    • 98 скачиваний
    • Рейтинг: 2 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Шведова Наталья Александровна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Шведова Наталья Александровна
    Шведова Наталья Александровна
    • На сайте: 9 лет и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 3101
    • Всего материалов: 1

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

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

Няня

Няня

500/1000 ч.

Подать заявку О курсе

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

Управление сервисами информационных технологий

Менеджер по управлению сервисами ИТ

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 19 регионов
  • Этот курс уже прошли 34 человека

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

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 96 человек из 34 регионов
  • Этот курс уже прошли 222 человека

Курс повышения квалификации

Применение компьютерных моделей при обучении математике и информатике в рамках ФГОС ООО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 49 человек из 28 регионов
  • Этот курс уже прошли 177 человек

Мини-курс

Интегративный коучинг: от теории к практике

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 52 человека из 25 регионов
  • Этот курс уже прошли 26 человек

Мини-курс

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

8 ч.

1180 руб. 590 руб.
Подать заявку О курсе
  • Сейчас обучается 29 человек из 17 регионов
  • Этот курс уже прошли 12 человек

Мини-курс

Музыкальная журналистика: создание и продвижение контента

10 ч.

1180 руб. 590 руб.
Подать заявку О курсе