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