Содержание
- 2. Программирование на языке Паскаль Тема 1. Введение © К.Ю. Поляков, 2006-2009
- 3. Алгоритм Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю
- 4. Программа Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда –
- 5. Простейшая программа program qq; begin { начало программы } end. { конец программы } комментарии в
- 6. Вывод текста на экран program qq; begin write('2+'); { без перехода } writeln('2=?'); { на новую
- 7. Задания «4»: Вывести на экран текст "лесенкой" Вася пошел гулять «5»: Вывести на экран рисунок из
- 8. Переменные Задача. Ввести с клавиатуры два числа и найти их сумму. Протокол: Введите два целых числа
- 9. Программа program qq; begin { ввести два числа } { вычислить их сумму } { вывести
- 10. Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время
- 11. Имена переменных В именах МОЖНО использовать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные
- 12. Переменные Типы переменных: integer { целая } real { вещественная } и другие… Объявление переменных: var
- 13. Как записать значение в переменную? a := 5; Оператор присваивания 5 Оператор – это команда языка
- 14. Блок-схема линейного алгоритма начало конец c := a + b; ввод a, b вывод c блок
- 15. Как ввести значение с клавиатуры read ( a ); Оператор ввода 5
- 16. Ввод значений двух переменных через пробел: 25 30 через Enter: 25 30 read ( a, b
- 17. Оператор вывода { вывод значения переменной a} { вывод значения переменной a и переход на новую
- 18. Сложение двух чисел Задача. Ввести два целых числа и вывести на экран их сумму. Простейшее решение:
- 19. Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых числа'); read (
- 20. Как изменить значение переменной? program qq; var a, b: integer; begin a := 5; b :=
- 21. Арифметические операции + сложение – вычитание * умножение / деление div деление нацело (остаток отбрасывается) mod
- 22. program qq; var a, b: integer; x, y: real; begin a := 5; 10 := x;
- 23. Порядок выполнения операций вычисление выражений в скобках умножение, деление, div, mod слева направо сложение и вычитание
- 24. Ручная прокрутка программы program qq; var a, b: integer; begin a := 5; b := a
- 25. Вывод целых чисел program qq; var a, b: integer; begin a := 15; b := 45;
- 26. Вывод вещественных чисел program qq; var x: real; begin x := 12.345678; writeln ( x );
- 27. Задания «4»: Ввести три числа, найти их сумму и произведение. Пример: Введите три числа: 4 5
- 28. Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков, 2006-2009
- 29. Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
- 30. Вариант 1. Блок-схема полная форма ветвления блок «решение»
- 31. Вариант 1. Программа max := a; max := b; полная форма условного оператора program qq; var
- 32. Условный оператор if then begin {что делать, если условие верно} end else begin {что делать, если
- 33. Что неправильно? if a > b then begin a := b; end else b := a;
- 34. Вариант 2. Блок-схема неполная форма ветвления
- 35. Вариант 2. Программа program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read
- 36. Вариант 2Б. Программа program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read
- 37. Что неправильно? if a > b then begin a := b; else b := a; if
- 38. Задания «4»: Ввести три числа и найти наибольшее из них. Пример: Введите три числа: 4 15
- 39. Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков, 2006-2009
- 40. Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и
- 41. Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x >= 25? да нет x
- 42. Вариант 1. Программа program qq; var x: integer; begin writeln('Введите возраст'); read ( x ); if
- 43. Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x 'не подходит'
- 44. Вариант 2. Программа сложное условие program qq; var x: integer; begin writeln('Введите возраст'); read ( x
- 45. Сложные условия Простые условия (отношения) >= = Сложное условие – это условие, состоящее из нескольких простых
- 46. Сложные условия Порядок выполнения (приоритет = старшинство) выражения в скобках not and or, xor , >=,
- 47. Истинно или ложно при a := 2; b := 3; c := 4; not (a >
- 48. Задания «4»: Ввести номер месяца и вывести название времени года. Пример: Введите номер месяца: 4 весна
- 49. Программирование на языке Паскаль Тема 4. Циклы © К.Ю. Поляков, 2006-2009
- 50. Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с
- 51. Циклы program qq; begin writeln('Привет'); writeln('Привет'); writeln('Привет'); writeln('Привет'); writeln('Привет'); end.
- 52. Циклы program qq; begin { сделай 5 раз } writeln('Привет'); end. i := i + 1;
- 53. Алгоритм начало Привет! конец да нет i = 5? i := 0; i := i +
- 54. Циклы program qq; var i: integer; begin for i:=1 to 5 do writeln('Привет'); end. «Для всех
- 55. Циклы Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a
- 56. Алгоритм начало i, i2, i3 конец нет да i i := 1; i := i +
- 57. Алгоритм (с блоком «цикл») начало i, i2, i3 конец i2 := i * i; i3 :=
- 58. Программа program qq; var i, i2, i3: integer; begin for i:=1 to 8 do begin i2
- 59. Цикл с уменьшением переменной Задача. Вывести на экран квадраты и кубы целых чисел от 8 до
- 60. Цикл с переменной for := to do begin {тело цикла} end; Увеличение переменной на 1: for
- 61. Цикл с переменной Особенности: переменная цикла может быть только целой (integer) шаг изменения переменной цикла всегда
- 62. Цикл с переменной Особенности: в теле цикла не разрешается изменять переменную цикла (почему?) при изменении начального
- 63. Цикл с переменной Особенности: после выполнения цикла во многих системах устанавливается первое значение переменной цикла, при
- 64. Сколько раз выполняется цикл? a := 1; for i:=1 to 3 do a := a+1; a
- 65. for i:=1 to 9 do begin if ??? then begin i2 := i*i; i3 := i2*i;
- 66. Как изменить шаг? – II Идея: Надо вывести всего 5 чисел, переменная k изменяется от 1
- 67. Как изменить шаг? – III Идея: Надо вывести всего 5 чисел, переменная k изменяется от 1
- 68. Задания «4»: Ввести a и b и вывести квадраты и кубы чисел от a до b.
- 69. Программирование на языке Паскаль Тема 5. Циклы с условием © К.Ю. Поляков, 2006-2009
- 70. Цикл с неизвестным числом шагов Пример: Отпилить полено от бревна. Сколько раз надо сделать движения пилой?
- 71. Алгоритм начало count конец нет да n 0? count := 0; count := count + 1;
- 72. Программа program qq; var n, count: integer; begin writeln('Введите целое число'); read(n); count := 0; while
- 73. Цикл с условием while do begin {тело цикла} end; Особенности: можно использовать сложные условия: если в
- 74. Цикл с условием Особенности: условие пересчитывается каждый раз при входе в цикл если условие на входе
- 75. Сколько раз выполняется цикл? a := 4; b := 6; while a 2 раза a =
- 76. Замена for на while и наоборот for i:=1 to 10 do begin {тело цикла} end; i
- 77. Задания «4»: Ввести целое число и найти сумму его цифр. Пример: Введите целое число: 1234 Сумма
- 78. Последовательности Примеры: 1, 2, 3, 4, 5, … 1, 2, 4, 7, 11, 16, … 1,
- 79. Последовательности Задача: найти сумму всех элементов последовательности, которые по модулю больше 0,001: Элемент последовательности (начиная с
- 80. Алгоритм начало S конец нет да |a| > 0.001? S := S + a; S :=
- 81. Программа program qq; var b, c, z: integer; S, a: real; begin S := 0; z
- 82. Задания «4»: Найти сумму элементов последовательности с точностью 0,001: Ответ: S = 1.157 «5»: Найти сумму
- 83. Цикл с постусловием Задача: Ввести целое положительное число ( Проблема: Как не дать ввести отрицательное число
- 84. Цикл с постусловием: алгоритм начало конец да нет n > 0? тело цикла условие ВЫХОДА блок
- 85. Программа program qq; var n: integer; begin repeat writeln('Введите положительное число'); read(n); until n > 0;
- 86. Сколько раз выполняется цикл? a := 4; b := 6; repeat a := a + 1;
- 87. Задания (с защитой от неверного ввода) «4»: Ввести натуральное число и определить, верно ли, что сумма
- 88. Программирование на языке Паскаль Тема 6. Оператор выбора © К.Ю. Поляков, 2006-2009
- 89. Оператор выбора Задача: Ввести номер месяца и вывести количество дней в этом месяце. Решение: Число дней
- 90. Алгоритм начало конец выбор ни один вариант не подошел ввод M да нет M = 1?
- 91. Программа program qq; var M, D: integer; begin writeln('Введите номер месяца:'); read ( M ); case
- 92. Оператор выбора Особенности: после case может быть имя переменной или арифметическое выражение целого типа (integer) или
- 93. Оператор выбора Особенности: если нужно выполнить только один оператор, слова begin и end можно не писать
- 94. Оператор выбора Особенности: значения, при которых выполняются одинаковые действия, можно группировать case i of 1: a
- 95. Что неправильно? case a of 2: begin a := b; 4: a := c; end; case
- 96. Задания (с защитой от неверного ввода) «4»: Ввести номер месяца и вывести количество дней в нем,
- 97. Программирование на языке Паскаль Тема 7. Графика © К.Ю. Поляков, 2006-2009
- 98. Система координат (0,0) (x,y) X Y x y
- 99. Управление цветом Цвет и толщина линий, цвет точек: Pen ( 1, 255, 0, 0 ); Цвет
- 100. Точки, отрезки и ломаные Pen (1, 0, 255, 0); Line (x1, y1, x2, y2); Pen (1,
- 101. Фигуры с заливкой Pen (1, 0, 0, 255); Brush (1, 255, 255, 0); Rectangle (x1, y1,
- 102. Текст TextColor (0, 0, 255); Brush (1, 255, 255, 0); Font (20, 30, 600); MoveTo (x,
- 103. Пример (200, 50) (100, 100) (300, 200) program qq; begin Pen(2, 255, 0, 255); Brush(1, 0,
- 104. Задания «4»: «Лягушка» «5»: «Корона»
- 105. Штриховка (x1, y1) (x2, y2) N линий (N=5) h Rectangle (x1, y1, x2, y2); Line( x1+h,
- 106. Штриховка (программа) (x1, y1) (x2, y2) h program qq; var i, x1, x2, y1, y2, N:
- 107. Как менять цвет? (x1, y1) (x2, y2) Brush ( 1, c, c, c ); Fill (
- 108. Штриховка (x1, y1) (x2, y2) (x3, y2) a h (x3+a, y1) Line( x1+h, y1, x1+h-a, y2);
- 109. Штриховка (x1, y1) (x2, y2) hx hy y x y Line( x1, y1+hy, x1+hx, y1+hy) ;
- 110. Задания «4»: Ввести с клавиатуры число линий и построить фигуру: «5»: Ввести с клавиатуры число линий
- 111. Задания «4»: Ввести с клавиатуры число линий штриховки и построить фигуру, залив все области разным цветом.
- 112. Программирование на языке Паскаль Тема 8. Графики функций © К.Ю. Поляков, 2006-2009
- 113. Построение графиков функций Задача: построить график функции y = 3 sin(x) на интервале от 0 до
- 114. Преобразование координат (x,y) X Y x y Математическая система координат Экранная система координат (пиксели) (xэ,yэ) xэ
- 115. Программа 2π h – шаг изменения x w – длина оси ОХ в пикселях на экране
- 116. Как соединить точки? Алгоритм: Если первая точка перейти в точку (xэ,yэ) иначе отрезок в точку (xэ,yэ)
- 117. Задания «4»: Построить график функции y = x2 на интервале [-3,3]. «5»: Построить график функции (эллипс)
- 118. Программирование на языке Паскаль Тема 9. Процедуры © К.Ю. Поляков, 2006-2009
- 119. Процедуры Задача: Построить фигуру: Особенность: Три похожие фигуры. общее: размеры, угол поворота отличия: координаты, цвет
- 120. Процедуры Процедура – это вспомогательный алгоритм, который предназначен для выполнения некоторых действий. Применение: выполнение одинаковых действий
- 121. Процедуры Порядок разработки: выделить одинаковые или похожие действия (три фигуры) найти в них общее (размеры, форма,
- 122. Программа program qq; begin Pen(1, 255, 0, 255); Tr(100, 100, 0, 0, 255); Tr(200, 100, 0,
- 123. Процедуры Особенности: все процедуры расположены выше основной программы в заголовке процедуры перечисляются формальные параметры, они обозначаются
- 124. Процедуры Особенности: для каждого формального параметра после двоеточия указывают его тип если однотипные параметры стоят рядом,
- 125. Процедуры Особенности: в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа
- 126. Параметры-переменные Задача: составить процедуру, которая меняет местами значения двух переменных. Особенности: надо, чтобы изменения, сделанные в
- 127. Параметры-переменные Применение: таким образом процедура (и функция) может возвращать несколько значений, Запрещенные варианты вызова Exchange (
- 128. Задания «4»: Используя процедуры, построить фигуру. «5»: Используя процедуры, построить фигуру. равносторонний треугольник
- 129. Программирование на языке Паскаль Тема 10. Рекурсия © К.Ю. Поляков, 2006-2009
- 130. Рекурсивные объекты Рекурсивный объект – это объект, определяемый через один или несколько таких же объектов. У
- 131. Дерево Пифагора Дерево Пифагора из N уровней – это ствол и отходящие от него симметрично два
- 132. Дерево Пифагора Особенности: когда остановиться? деревья имеют различный наклон когда число оставшихся уровней станет равно нулю!
- 133. Процедура угол α длина ствола procedure Pifagor(x0, y0, a, L: real; N: integer); const k =
- 134. Программа program qq; procedure Pifagor(x0, y0, a, L: real; N: integer); ... end; begin Pifagor (250,
- 135. «4»: Используя рекурсивную процедуру, построить фигуру: «5»: Используя рекурсивную процедуру, построить фигуру: Задания
- 136. Программирование на языке Паскаль Тема 11. Анимация © К.Ю. Поляков, 2006-2009
- 137. Анимация Анимация (англ. animation) – оживление изображения на экране. Задача: внутри синего квадрата 400 на 400
- 138. Как "поймать" нажатие клавиши? Событие – это изменение в состоянии какого-либо объекта или действие пользователя (нажатие
- 139. Как выйти из цикла при нажатии Esc? program qq; var stop: boolean; k,code,i: integer; begin stop
- 140. Процедура (рисование и стирание) procedure Draw(x, y: integer; flag: boolean); begin if flag then Brush(1, 255,
- 141. Полная программа program qq; var x, y, k, code, i: integer; stop: boolean; procedure Draw(x,y: integer;
- 142. «4»: Два квадрата двигаются в противоположном направлении: «5»: Два квадрата двигаются в противоположном направлении и отталкиваются
- 143. Управление клавишами Задача: жёлтый квадрат внутри синего квадрата управляется клавишами-стрелками. Коды клавиш: влево – 37 вверх
- 144. Программа program qq; var x, y, k, code, i: integer; stop: boolean; begin ... repeat Draw(x,
- 145. Как убрать мигание? Проблема: даже если не нажата никакая клавиша, квадрат перерисовывается через каждые 20 мс
- 146. Программа program qq; var x, y, k, code, i: integer; stop: boolean; begin ... repeat Draw(x,
- 147. «4»: Квадрат двигается при нажатии стрелок, однако не может выйти за границы синего квадрата: «5»: Квадрат
- 148. Вращение Задача: изобразить модель вращения Земли вокруг Солнца. Проблема: движение по окружности, как изменять координаты? Решение:
- 149. Процедура procedure Draw(x, y: integer; flag: boolean); const r = 10; begin if flag then Brush(1,
- 150. Константы и переменные program qq; const rSun = 60; { радиус Солнца} L = 150; {
- 151. Основная программа program qq; ... begin Brush(1, 0, 0, 0); Fill(1,1); Brush(1, 255, 255, 0); Ellipse(x0-rSun,
- 152. «4»: Изобразить модель Солнца с двумя планетами, которые вращаются в противоположные стороны: «5»: Изобразить модель системы
- 153. Программирование на языке Паскаль Тема 12. Функции © К.Ю. Поляков, 2006-2009
- 154. Функции Функция – это вспомогательный алгоритм (подпрограмма), результатом работы которого является некоторое значение. Примеры: вычисление ,
- 155. Функции Задача: составить функцию, которая вычисляет наибольшее из двух значений, и привести пример ее использования Функция:
- 156. Функции Особенности: заголовок начинается словом function формальные параметры описываются так же, как и для процедур можно
- 157. Функции Особенности: можно объявлять и использовать локальные переменные значение, которое является результатом, записывается в переменную, имя
- 158. Программа program qq; var a, b, max: integer; begin writeln('Введите два числа'); read(a, b); max :=
- 159. Задания «4»: Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример
- 160. Задания (вариант 2) «4»: Составить функцию, которая определяет наибольший общий делитель двух натуральных и привести пример
- 161. Логические функции Задача: составить функцию, которая определяет, верно ли, что заданное число – простое. Особенности: ответ
- 162. Логические функции program qq; var N: integer; begin writeln('Введите целое число'); read(N); if Prime(N) then writeln(N,
- 163. Задания «4»: Составить функцию, которая определяет, верно ли, что сумма его цифр – четное число. Пример:
- 164. Программирование на языке Паскаль Тема 13. Случайные числа © К.Ю. Поляков, 2006-2009
- 165. Случайные числа Случайные явления: везде… бросание монеты («орел» или «решка») падение снега броуновское движение помехи при
- 166. Псевдослучайные числа Псевдослучайные числа – это такая последовательность чисел, которая обладает свойствами случайных чисел, но каждое
- 167. Распределение случайных чисел Модель: снежинки падают на отрезок [a,b] распределение равномерное неравномерное
- 168. Распределение случайных чисел Особенности: распределение – это характеристика всей последовательности, а не одного числа равномерное распределение
- 169. Генератор случайных чисел в Паскале Целые числа в интервале [0,N]: var x: integer; ... x :=
- 170. Случайные числа Задача: заполнить прямоугольник 400 на 300 пикселей равномерно точками случайного цвета Как получить случайные
- 171. Программа program qq; var x, y, k, code, i: integer; stop: boolean; begin stop := False;
- 172. «4»: Ввести с клавиатуры координаты углов прямоугольника и заполнить его точками случайного цвета. «5»: Заполнить треугольник
- 174. Скачать презентацию