Содержание
- 2. Программирование?
- 3. Программирование?
- 4. Программирование?
- 5. Программирование?
- 6. Программирование?
- 7. Программирование?
- 8. Программирование?
- 9. Культурная страничка Художественная литература: С. Лукьяненко «Лабиринт отражений» Художественные фильмы: «Хакеры» : Анджелина Джоли, The Prodigy
- 10. К чему приводят ошибки программистов Неудача при запуске первого американского спутника к Венере случилась, вероятнее всего,
- 11. Одна из первых компьютерных систем противовоздушной обороны США (60-е годы) в первое же дежурство подняла тревогу,
- 12. В 1985–87 гг. 6 человек в США и Канаде получили смертельную дозу облучения во время сеансов
- 13. 1988 год, причиной осложнений, возникших при возвращении на Землю из космической экспедиции советско-афганского (29 августа –
- 14. В 1991 г. ракетная установка MIM-104 Patriot не заметила вражескую ракету Scud, которая уничтожила в казарме
- 15. В 1994 г. погибло 29 человек в результате аварии английского военного вертолета Chinook, который разбился из-за
- 16. 4 июня 1996 года был произведен первый запуск ракеты-носителя Ariane 5 – детища и гордости Европейского
- 17. 1999 год, Аппарат для исследования Марса Mars Climate Orbiter был запущен 11 декабря 1998 года. Следом
- 18. Запуск ракеты-носителя "Зенит" 12 марта 2000 года по программе "Морской старт" закончился аварией. Через несколько минут
- 19. На заводе по переработке урана в Западной Австралии в конце декабря 2001 года произошел выброс радиоактивного
- 20. В августе 2003 года северо-восток США остался без электричества в том числе и из-за программной ошибки
- 21. Американский аппарат Mars Global Surveyor прибыл к Красной планете в 1997 г. Аппарат прекратил функционирование в
- 22. 5 декабря 2010 года: Три спутника, критически важные для завершения составления группировки российской навигационной системы ГЛОНАСС
- 23. Главная задача программирования – это снижение сложности. Цель программирования – описание процессов обработки данных. Данные (data)
- 24. Интеллектуальные возможности человека Выделяют 3 интеллектуальные возможности человека, используемые при программировании: • способность к перебору, •
- 25. Способность человека к перебору связана с возможностью последовательного переключения внимания с одного предмета на другой, позволяя
- 26. Грубая схема разработки и применения ПО
- 27. Программирование и алгоритм Программирование – это составление программ для вычислительной машины, описывающих алгоритм решения определенных задач.
- 28. Под действием понимается нечто, что имеет конечную продолжительность и приводит к желаемому и совершенно определенному результату.
- 29. Программа – это инструкции, записанные таким образом, чтобы они были «понятны» вычислительной машине. ЭТАПЫ ПРОГРАММИРОВАНИЯ Математическая
- 30. Алгоритм Это описание процесса решения некоторой задачи. Свойства алгоритма: – дискретность, т.е. процесс решения протекает в
- 31. Критерии качества алгоритма правильность (алгоритм решает поставленную задачу); прозрачность (простота, удобочитаемость алгоритма); эффективность (быстродействие и краткость).
- 32. Блок-схема как одна из форм записи алгоритма
- 33. Блок-схема как одна из форм записи алгоритма
- 34. Блок-схема как одна из форм записи алгоритма
- 35. Пример блок-схемы Рассмотрим задачу: найти максимум из двух чисел.
- 36. Язык программирования Pascal Разработан в 1971 г. швейцарским профессором Николасом Виртом для обучения структурному программированию.
- 37. Общий вид структуры программы на языке Pascal
- 38. Всякий язык программирования имеет три основные составляющие: алфавит, синтаксис и семантику. Алфавит языка – это множество
- 39. Основные символы языка Pascal Это латинские буквы, цифры от 0 до 9 и специальные символы Также
- 40. Идентификаторы Это имена переменных, констант, подпрограмм, модулей. В программе не может быть двух идентификаторов с одним
- 41. Объекты (константы, переменные, функции, выражения), которыми оперирует программа, относятся к определенному типу. Тип — это множество
- 42. Типы данных
- 43. Переменная Данные хранятся в памяти компьютера, но для указания на конкретную информацию очень неудобно все время
- 44. Константа Величина, значение которой в ходе выполнения программы не может быть изменено. Константы бывают обычные (просто
- 45. Оператор присваивания := := ; В левой части может быть только 1 переменная, которой будет присвоено
- 46. Ввод данных readln( ); Пример 1: readln(x); Программа приостановит свое выполнение и будет ожидать ввод данных
- 47. Вывод данных на экран write( ); writeln( ); Во втором случае после вывода на экран будет
- 48. Особенности вывода По умолчанию вывод происходит в поле вывода шириной в количество знаков выводимого числа. При
- 49. Формат использования: var x: integer; … write(x:n); n – количество знакомест, отводимых для вывода числа (неиспользуемые
- 50. Встроенные функции языка Pascal
- 51. Пример использования Найти сумму квадратов двух чисел.
- 52. Условный оператор в языке Pascal Условные операторы позволяют выбирать для выполнения те или иные части программы
- 53. Операторы сравнения Используются в условиях. Например: if a Запишем ранее созданную блок-схему нахождения максимума на языке
- 54. Логические операции
- 55. Таблицы истинности логических операций 0 and 0 = 0 0 and 1 = 0 1 and
- 56. Пример Найти максимум из двух чисел, введенных пользователем.
- 57. Оператор выбора CASE Позволяет выбрать одно из нескольких возможных продолжений программы в зависимости от значения выражения:
- 58. Оператор выбора CASE Пример 1: Write('Введите число: '); Readln( i ); Case i of 2, 4,
- 59. Операторы цикла Цикл – это последовательность операторов, которая может выполняться более одного раза. Циклы с предусловием
- 60. При использовании цикла с предусловием надо помнить следующее: значение условия выполнения цикла должно быть определено до
- 61. Цикл с предусловием while Задача: найти сумму чисел, введенных пользователем. Program Summa; Var i, N :
- 62. Задача: Найти сумму цифр в записи данного натурального числа; Program SUM; Var a,b,s,k:Integer; Begin write('Введите число:
- 63. Цикл с постусловием repeat Отличительной особенностью данного цикла является то, что тело цикла выполняется в любом
- 64. Задача. Определить, является ли введенное число простым. Program Prostoe; Var i, {возможный делитель} Number : integer;
- 65. Цикл со счетчиком for Цикл со счетчиком представляет такую конструкцию, в которой выполнение тела цикла должно
- 66. При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное значение. Затем в цикле
- 67. Цикл со счетчиком for
- 68. Часто исполнительная часть одного из циклов For является новым оператором цикла For. Структуры такого рода называются
- 69. Пример цикла for Вычислить N! (факториал): Program Faktorial; Var n, i, f: integer; Begin f:=1; Write('Введите
- 70. Подпрограммы Подпрограмма – это часть программы, оформленная в виде отдельной синтаксической конструкции и снабженная именем. Вызов
- 71. В языке Pascal подпрограммы представлены двумя видами: процедуры и функции. Процедура предназначена для выполнения какой-то законченной
- 72. Пример программы с процедурой: Нахождение факториала числа. Вариант 1: program f; var x: integer; procedure factorial(n:
- 73. Нахождение факториала числа. Вариант 2: program f; var x,fa: integer; procedure factorial(n: integer; var fact: integer);
- 74. Функция – это часть программы, которая вычисляет и возвращает значение. Формат описания функции: function имя функции
- 75. Вычисление факториала: program f1; var a:integer; Function Factorial(N:Byte):Longint; // определение функции Var Fact:longint; I:byte; Begin Fact:=n;
- 76. Принцип локализации Если объект (константа, переменная, процедура, функция или тип) описан в некоторой подпрограмме, то он
- 77. Правила для определения области видимости: 1. Областью видимости идентификатора является блок, в котором он описан, и
- 78. Временем жизни объекта называется время, в течение которого он существует в памяти вычислительной машины. Так как
- 79. Структуры данных Массив, строка, запись и множество называют фундаментальными структурами. Переменные таких типов могут менять только
- 80. Общая классификация структур данных В зависимости от отсутствия или наличия явно заданных связей между элементами данных
- 81. Общая классификация структур данных Важный признак структуры данных – характер упорядоченности её элементов. По этому признаку
- 82. Массив как структура данных Массив – это упорядоченная совокупность конечного числа данных одного типа. Тип компонент
- 83. Одномерный массив Массив с одним индексом называют одномерным. Можно сказать, что одномерный массив соответствует понятию вектора.
- 84. Пример создания и использования одномерного массива Организовать ввод данных в массив и вывод элементов на экран:
- 85. Нестандартные способы индексации массива Например, в программе могут присутствовать следующие описания: Var Cod: Array[Char] Of 1..100;
- 86. Одномерный массив в разделе Type Можно описать массив как специальный тип данных, а потом использовать созданный
- 87. Одномерный массив в качестве параметра процедур и функций Задача: Найти максимальный элемент массива. Заполнение массива, вывод
- 88. function arr_max(vect: vector; n: integer): integer; Var i: Integer; max: integer; begin max:=vect[1]; for i:=2 to
- 89. Строковый тип данных Строка – это последовательность символов. Другими словами, строка – это массив символов. Каждый
- 90. Строковая переменная описывается в разделе описания переменных следующим образом: Var : String[ ]; Например: Var Name:
- 91. Строковая переменная занимает в памяти на 1 байт больше, чем указанная в описании длина. Нулевой байт
- 92. К каждому символу строки можно обратиться как к элементу массива, т.е. используя имя переменной строкового типа
- 93. Сложение строк Оператор + позволяет соединить 2 строки в одну: Var Name: String[20]; fam: String[30]; all:
- 94. Функция определения длины строкового выражения Length(S: String): Integer; Функция получает в качестве параметра выражение строкового типа
- 95. Функция выделения подстроки из строки Copy(S: String; Index: Integer; Count: Integer): String; Из строки S начиная
- 96. Процедура удаления подстроки из строки Delete(Var S: String; Index: Integer; Count: Integer); Из строки S удаляется
- 97. Процедура вставки в строку подстроки Insert(S1: String; Var S2: String; Index: Integer); Вставляет строку S1 в
- 98. Функция определения позиции подстроки в строке Pos(Substr: String; S: String): Byte; Возвращает номер элемента в строке
- 99. Пример разбиения строки на слова var s,s1: string; i,l: integer; begin write('Введите строку: '); readln(s); l:=Length(s);
- 100. Двумерные массивы Двумерные массивы являются аналогами матриц. Положение элемента в двумерном массиве определяется двумя индексами. Первый
- 101. Например: Const N = 10; Type matr=array [1..N,1..N] of integer; Var mass : matr; Для неквадратных
- 102. Способ 2. Универсальный. Var : array [1.. кол-во_строк, 1..кол-во_столбцов] of тип_элементов_массива; Например: Var mas1: array [1..5,
- 103. Продолжение примера ввода-вывода данных в двумерный массив Procedure MasPrint(tabl: mas; x: integer; y: integer); Var i,
- 104. Матричная алгебра Задача: найти произведение двух матриц. Например, и Решение: Вычислим произведение А*В. Согласно правилу умножения
- 105. Элементы результирующей матрицы С определяются по формуле: где n – число строк матрицы А; m –
- 106. Procedure List(var tabl:mas; x,y: integer); Var i, j: integer; Begin For i:=1 to x do begin
- 107. Тип данных множество Множество – набор однотипных элементов базового типа, каким-то образом связанных друг с другом.
- 108. Пример объявления множеств и вывода на экран type TDigit = set of 0..9 ; TSimv =
- 109. Допустимые операции с множествами
- 110. Примеры решения задач с использованием множеств Задача: Ввести строку символов, состоящую из латинских букв, цифр и
- 111. Другое решение данной задачи: Var Str: string; L,i: byte; Test: boolean; Begin Writeln ('Введите строку'); Readln(str);
- 112. Еще одно решение этой задачи: Var Str: string; L,i,k: byte; Begin Writeln ('Введите строку'); Readln(str); L:=Length
- 113. Задача: Заполнить множество A путем ввода n значений: var A: set of 0..200; j,x,n: byte; begin
- 114. Тип данных запись Запись представляет собой наиболее общий и гибкий структурированный тип данных, так как она
- 115. Формат: type = record : ; : ; . . . : ; end; var :
- 116. Пример: type Car = record gosNumber : string; {гос.номер} Marka : string[20]; {Марка автомобиля} FIO :
- 117. Пример использования записи Создать список автомобилей и в нем найти все с маркой машины, введенной пользователем.
- 118. procedure printHead; begin writeln('Вот ваши записи:'); writeln('№ ':4,'|','Марка ':10,'|','Владелец ':20,'|','Гос.номер ':15); end; begin write('Введите кол-во записей:
- 119. Тип данных файл С одной стороны, файл – это область памяти на внешнем носителе, в котором
- 120. Структура физического файла представляет собой простую последовательность байт памяти носителя информации. Структура логического файла – это
- 121. Работа с файлами в Паскале осуществляется следующим образом: сначала объявляется переменная файлового типа, с указанием свойств
- 122. Переменная файлового типа может быть объявлена одной из следующих строк: = file of ; = text;
- 123. Например файл, содержащий список учеников и их возраст: type pupil = record surname : string[30]; name
- 124. Текстовые файлы – это файлы, содержащие символы, разделенные на строки, а в конце каждой строки стоит
- 125. Процедуры и функции обработки файловых переменных Assign ( , ’ ’) – связь переменной файлового типа
- 126. Readln (f) – пропуск строки файла до начала следующей. Writeln (f) – запись признака конца строки
- 127. Примеры решений задач c использованием файлов Прочитать из текстового файла А все записанные в него целые
- 128. Repeat // цикл For I:=1 to 4 do // цикл от 1 до 4, //т.к. нужно
- 129. Close (F1); // закрываем файл, связанный с F1 Close (F2); // закрываем файл, связанный с F2
- 130. 2. Работа с числовыми файлами. Записать в файл числа (кол-во вводит пользователь, сами числа задаются генератором
- 131. reset(f1); // открываем файл для чтения writeln('Вот числа из первого файла:'); for i:=1 to n do
- 132. Работа с графикой в PascalABC.NET Для работы с графикой в среде программирования PascalABC.NET нужно подключить модуль
- 133. procedure Circle(x,y,r: integer); Рисует окружность с центром в точке (x,y) и радиусом r. procedure Ellipse(x1,y1,x2,y2: integer);
- 134. procedure Arc(x,y,r,a1,a2: integer); Рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенной между
- 135. procedure TextOut(x,y: integer; s: string); Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый
- 136. procedure Polygon(points: array of Point); Рисует заполненный многоугольник, координаты вершин которого заданы в массиве points. procedure
- 137. function PenX: integer; function PenY: integer; Возвращают текущие координаты пера. procedure SetPenColor(color: integer); Устанавливает цвет пера,
- 138. procedure SetPenWidth(w: integer); Устанавливает ширину пера, равную w пикселам. function PenWidth: integer; Возвращает текущую ширину пера.
- 139. procedure SetBrushColor(color: integer); Устанавливает цвет кисти, задаваемый параметром color. function BrushColor: integer; Возвращает текущий цвет кисти.
- 140. SetBrushHatch(bhLargeConfetti); Стили кисти задаются следующими именованными константами: bhSolid bhCross bhClear bhDiagCross bhHorizontal bhBDiagonal bhVertical bhFDiagonal procedure
- 141. Пример. Составим программу, рисующую голову робота. Рисунок содержит два прямоугольника, 4 окружности, две дуги, эллипс, три
- 142. uses graphABC; begin Rectangle(100,100,300,300); {голова} floodfill(105,120,clBlue); // закрашиваем голову синим Circle(150,170,30); {левый глаз} Circle (250,170,30); {правый
- 143. Графика и движение uses graphabc; var i: integer; begin for i:=0 to 300 do begin SetPenColor(clBlack);
- 144. Создание модулей в языке Pascal Структура модуля Структура модуля аналогична структуре программы, однако есть несколько существенных
- 145. Интерфейсная секция Интерфейсная часть – «общедоступная» часть в модуле – начинается зарезервированным словом interface, следует сразу
- 146. Секция реализации Содержит программную логику процедур и функций. Секция реализации – «приватная» часть – начинается зарезервированным
- 147. Пример. Напишем модуль с двумя функциями: первая меняет значения двух переменных; вторая находит максимум из двух
- 148. implementation {расписываем процедуры и функции, объявленные ранее} procedure ISwap; var Temp : integer; begin Temp :=
- 149. Программа, использующая созданный модуль program IntTest; uses IntLib; var A,B : integer; begin Write('Введите два целочисленных
- 150. Динамические структуры данных Для работы с динамическими структурами данных используются указатели. Указатели представляют собой специальный тип
- 151. Пример type pint=^integer; var x,y:integer; px: pint; begin x:=1; new(px); px:=@x; px^:=5; writeln(x); end.
- 152. Списком называется структура данных, каждый элемент которой посредством указателя связывается со следующим элементом. На самый первый
- 153. Список Чтобы добавить новый элемент в список, необходимо: 1. Получить память для него. 2. Поместить туда
- 154. Создание списка Type { описание списка из целых чисел } PList = ^TList; TList = record
- 155. Просмотр списка List := Head; While List nil do begin WriteLn(List^.Data); List := List^.Next; { переход
- 156. Удаление элемента из списка При удалении элемента из списка необходимо различать три случая: 1. Удаление элемента
- 157. Удаление элемента из начала списка { запомним адрес первого элемента списка } List := Head; {теперь
- 158. Удаление элемента из середины списка Для этого нужно знать адреса удаляемого элемента и элемента, находящегося в
- 159. Удаление из конца списка Оно производится, когда указатель х показывает на предпоследний элемент списка, а List
- 160. Рекурсия Рекурсией называется способ задания функции, при котором значение определяемой функции для произвольных значений аргументов выражается
- 161. Косвенная или неявная рекурсия function iMax(x,y: integer):integer; begin if x>y then iMax:=x else iMax:=y; end; var
- 162. Явная рекурсия function fakt(n:integer):integer; begin if n=0 then fakt:=1 else fakt:=n*fakt(n-1); end; var i: integer; begin
- 163. Многие математические функции можно выразить рекурсивно. Например, для неотрицательных значений n имеем: Данное определение факториала состоит
- 164. Рекурсивное возведение числа в степень function step(a,n:integer):integer; begin if n=0 then step:=1 else step:=a*step(a,n-1); end; var
- 165. Рекурсивное вычисление суммы элементов одномерного массива Type LinMas = Array[1..100] Of Integer; Var A : LinMas;
- 166. Рекурсивное определение строки-палиндрома Function Pal(S: String) : Boolean; Begin If Length(S) Else Pal:= (S[1]=S[Length(S)]) and Pal(Copy(S,
- 167. Рекурсия и графика uses graphabc; var x,y,r,d,m:integer; procedure ris(x,y,r:integer); var i:integer; begin if r circle(x,y,r); sleep(300);
- 168. Рекурсия и фракталы uses graphabc; var x,y,r:integer; procedure ris(x,y,r:integer); var x1,y1,t:integer; begin if r for t:=0
- 169. Кривая дракона uses graphabc; var k:integer; procedure ris(x1,y1,x2,y2,k:integer); var xn,yn:integer; begin if k>0 then begin xn:=(x1+x2)
- 170. Сортировка массива Под сортировкой массивов понимают процесс перестановки элементов массива в определённом порядке. Цель сортировки –
- 171. Основное требование к методам сортировки: экономное использование памяти и быстродействие. Хорошие алгоритмы сортировки требуют порядка n•log2n
- 172. Сортировка обменом (метод пузырька) Сортировка обменом предусматривает систематический обмен значениями (местами) тех пар, в которых нарушается
- 173. Реализация сортировки методом пузырька procedure bubbleSort(var data: vector; n: integer); var i,j, tmp: integer; begin for
- 174. Реализация сортировки методом пузырька procedure bubbleSort(var data: vector; n: integer); var i,j, tmp: integer; begin for
- 175. Сортировка посредством простого выбора Сортировка основана на идее многократного выбора (находится сначала наибольший элемент, затем второй
- 176. Реализация сортировки выбором type vector=array[1..100] of integer; procedure sort_choice (var a: vector; n: integer) ; var
- 177. Второй вариант сортировки выбором: находим номер минимального значения в текущем списке; производим обмен этого значения со
- 178. type vector=array[1..100] of integer; procedure sort_choice2(var a: vector;n : integer) ; var i,j,x,min:integer; begin for i:=1
- 179. Сравнение разных видов сортировки
- 180. Применяются для поиска нужного элемента в массиве или выяснения факта его отсутствия. Линейный поиск Бинарный поиск
- 181. Линейный (последовательный) поиск Самый простой из известных. Множество элементов просматривается последовательно в некотором порядке, гарантирующем, что
- 182. Линейный (последовательный) поиск Удалению элемента всегда предшествует успешный поиск. При удалении нам придется сначала найти положение
- 183. Бинарный поиск Этот метод поиска предполагает, что массив отсортирован. Суть метода: Областью поиска (l, r) назовем
- 184. Бинарный поиск Методы поиска данных в массиве
- 185. Бинарный поиск L := 1; R := N; while L begin M := (L + R)
- 186. Бинарный поиск Сравнение с линейным Методы поиска данных в массиве
- 187. Бинарный поиск Сравнение с линейным. Лучший случай Методы поиска данных в массиве
- 188. Бинарный поиск Сравнение с линейным. Худший случай Методы поиска данных в массиве
- 189. Обработка событий мыши и клавиатуры на графическом окне
- 190. Обработка событий мыши и клавиатуры на графическом окне Пример: Свободное рисование uses GraphABC; //процедура обработки нажатия
- 191. Обработка событий мыши и клавиатуры на графическом окне
- 193. Скачать презентацию