Повтор предыдущего урока Алгоритм. Свойства, виды, способы. Алгоритмические конструкции. Знакомство с Паскалем.
Задание 1. Какие свойства алгоритмов зашифрованы в ребусах?
а) Результативность (грей зуб утка тигр в насти); б) конечность (черенок нос ять); в) понятность (пан ять юность);
Задание 2. Какие исполнители алгоритмов, работающие в школе, зашифрованы в ребусах?
а) Учитель (у ч и т ель); б) ученик (кузнечик); в) директор (д игрек рот); г) завуч (зав у ч);
Задание 3. Какие алгоритмические конструкции зашифрованы в ребусах?
а) Развилка (раз в и булка); б) цикл (цинк л); в) ветвление (в е т в л е н и е); г) повторение (повар сани).
Задание 4. Какие блок-схемы зашифрованы в ребусах?
а) Условие (весло и е); б) начало (начало); в) вывод (в ы в о д); г) конец (конь ц); д) соединитель (с о единица ель); е) комментарий (комета торий).
Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю (входящие в СКИ) определенность: при одинаковых исходных данных всегда выдает один и тот же результат конечность: заканчивается за конечное число шагов массовость: может применяться многократно при различных исходных данных корректность: дает верное решение при любых допустимых исходных данных Алгоритм – это четко определенный план действий для исполнителя.
Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда – это описание действий, которые должен выполнить компьютер. откуда взять исходные данные? что нужно с ними сделать?
Язык Паскаль 1970 – Никлаус Вирт (Швейцария) язык для обучения студентов разработка программ «сверху вниз» разнообразные структуры данных (массивы, структуры, множества) Подзадача 1Подзадача 2Подзадача Задача
Из чего состоит программа? program ; const …;{константы} var …; {переменные} begin … {основная программа} end. program ; const …;{константы} var …; {переменные} begin … {основная программа} end. { процедуры и функции } комментарии в фигурных скобках не обрабатываются
Из чего состоит программа? Константа – постоянная величина, имеющая имя. Переменная – изменяющаяся величина, имеющая имя (ячейка памяти). Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности). Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin).
Имена программы, констант, переменных Имена могут включать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные буквы не различаются Имена НЕ могут включать русские буквы пробелы скобки, знаки +, =, !, ? и др. имя не может начинаться с цифры
Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Типы переменных: integer{ целая } real{ вещественная } char{ один символ } string{ символьная строка } boolean { логическая } Объявление переменных (выделение памяти): var a, b: integer; Q: real; s1, s2: string; var a, b: integer; Q: real; s1, s2: string;
Константы const i2 = 45; { целое число } pi = 3.14; { вещественное число } qq = 'Вася'; { строка символов } L = True; { логическая величина } const i2 = 45; { целое число } pi = 3.14; { вещественное число } qq = 'Вася'; { строка символов } L = True; { логическая величина } целая и дробная часть отделяются точкой можно использовать русские буквы! может принимать два значения: True (истина, «да») False (ложь, «нет») может принимать два значения: True (истина, «да») False (ложь, «нет»)
Как изменить значение переменной? Оператор – это команда языка программирования высокого уровня. Оператор присваивания служит для изменения значения переменной. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); end. program qq; var a, b: integer; begin a := 5; b := a + 2; a := (a + 2)*(b – 3); end. a ? 5 5 b ? a 5 7*4 28 Пример:
Оператор присваивания Общая структура: Арифметическое выражение может включать константы имена переменных знаки арифметических операций: + - * / div mod вызовы функций круглые скобки ( ) умножение деление деление нацело остаток от деления := ;
Сложение двух чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простейшее решение: program form; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end. program form; var a, b, c: integer; begin read ( a, b ); c := a + b; writeln ( c ); end.
Оператор ввода read ( a ); { ввод значения переменной a} read ( a, b ); { ввод значений переменных a и b} Как вводить два числа? через пробел: через Enter: a 25 b 30 a 25 b 30
Оператор вывода write ( a ); { вывод значения переменной a} writeln ( a ); { вывод значения переменной a и переход на новую строчку} writeln ( 'Привет!' ); { вывод текста} writeln ( 'Ответ: ', c ); { вывод текста и значения переменной c} writeln ( a, '+', b, '=', c );
Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. Протокол: Введите два целых числа =55 это выводит компьютер это вводит пользователь
Арифметическое выражение описывает правило вычисления значения некоторой величины. Оно может содержать числа, переменные, функции. Объединенные знаками арифметических операций.
Арифметические действия и их приоритет Операция ПримерПриоритет * умножение 5 * 2 = 101 / деление 4 / 2 = сложение 5+2 = 72 - вычитание 5-2 = 32 Результатом деления двух целых чисел всегда является действительное число.
Для целых чисел определены еще две операции: DIV и MOD Операция Обозначение Тип аргус. Тип результ. Действие Целая часть от деления A DIV Binteger 11 DIV 3 = 3 Остаток от деления A MOD Binteger 11 MOD 3 = 2
Примеры использования DIV и MOD : Например. 15 div 6 = 2 (здесь 2 - частное. Оно показывает, сколько раз делитель - число 6, содержится в делимом - числе 15). 15 mod 6 = 3 (здесь 3 - остаток. Он показывает, сколько останется, если из числа 15, вычесть все вхождения в него числа 6).
Стандартные функции числовых данных Функция Обозначение Тип аргусента Тип результата Действие Абсолютное значение abs (x) Integer или real Integer|x| Арктангенс arctan (x)--Realarctg x Косинус cos (x)-- cos x Синус sin (x)-- sin x Экспонента exp (x)-- exex Натуральный логарифм ln (x)-- ln x Квадратный корень sqrt (x)-- Возведение в квадрат sqr (x)-- x2x2
Стандартные функции (часть 2) Функция Обозначение Тип аргусента Тип результата Действие Округление round (x)realintegerround (3,6) = 4 Целая часть числа trunc (x)realintegertrunc (3,6) = 3 Проверка на четность odd (x)integerboolean odd (2) = true odd (3) = false Дробная часть числа frac (x)real frac (3,68) = 0,68 Целая часть числа int (x)real int (3,68) = 3,00 Случайное число random(x)integer Случайное число в интервале от 0 до x
Запись выражений
Линейный алгоритм – это алгоритм, все действия которого выполняются строго последовательно.
Блок-схема линейного алгоритма начало конец c := a + b; ввод a, b вывод c блок "начало" блок "ввод" блок "процесс" блок "вывод" блок "конец"
1. Постановка задачи: Составить программу вычисления площади треугольника, если заданы координаты его сторон: x1, y1; x2, y2; x3,y3. 2. Математическая модель: ФОРМУЛА ГЕРОНА: Где a, b, c – длины сторон треугольника, p - полупериметр (x2, y2) ( x1, y1) (x3, y3) a b c Длина стороны вычисляется по формуле:
НАЧАЛО Ввод координат вершин треугольника (x1, y1), (x2, y2), (x3, y3) Построение алгоритма P=(a+b+c)/2 Вывод значения S KONEZ
Домашнее задание Подготовиться к тематической аттестации. Вопросы и задания 1. Когда появился язык Паскаль и кто его автор? 2. Как записывается заголовок программы на Паскале? 3. Как записывается раздел описания переменных? 4. С какими типами числовых величин работает Паскаль? 5. Как записываются операторы ввода и вывода в Паскале? 6. Что такое оператор присваивания? 7. Как записываются арифметические выражения? 8. По каким правилам определяется порядок выполнения операций в арифметическом выражении? 9. Какая задача решается по следующей программе? Выучить: Правила записи арифметических выражений Приоритет операций Стандартные функции
Задачи: 1. Задача 1. Скорость первого автомобиля v1 км/ч, второго v2 км/ч, расстояние между ними s км. Какое расстояние будет между ними через t ч, если автомобили движутся в разные стороны? Согласно условию задачи искомое расстояние s1=s+(v1+v2)t (если автомобили изначально двигались в противоположные стороны) или s2=|(v1+v2)t-s| (если автомобили первоначально двигались навстречу друг другу). Чтобы получить это решение, необходимо ввести исходные данные, присвоить переменным искомое значение и вывести его на печать. 2. Вычисления по формулам. Вычислить значение выражения по формуле (все переменные принимают действительные значения):