Содержание
- 2. © С.В.Кухта, 2009 Общая характеристика языка Паскаль Алфавит языка Паскаль Структура программы Основные объекты программы Типы
- 3. © С.В.Кухта, 2009 1. Общая характеристика языка Паскаль
- 4. © С.В.Кухта, 2009 Языки программирования Язык Паскаль был разработан Никласом Виртом первоначально для целей обучения программированию.
- 5. © С.В.Кухта, 2009 Отличия алгоритмических языков от машинных алгоритмический язык обладает гораздо большими выразительными возможностями, т.е.
- 6. © С.В.Кухта, 2009 Отличия алгоритмических языков от машинных требуемые операции задаются в удобном для человека виде,
- 7. © С.В.Кухта, 2009 Языки программирования Из вышеперечисленного следует, что алгоритмический язык в значительной мере является машинно-независимым.
- 8. © С.В.Кухта, 2009 2. Основные понятия языка Паскаль
- 9. © С.В.Кухта, 2009 Алфавит языка Паскаль Алфавит включает в себя буквы, цифры и специальные символы. 1.
- 10. © С.В.Кухта, 2009 Алфавит языка Паскаль 3. Прописные и строчные буквы русского алфавита (для комментариев, для
- 11. © С.В.Кухта, 2009 Алфавит языка Паскаль 4. Специальные символы: + плюс – минус * звездочка /
- 12. © С.В.Кухта, 2009 Алфавит языка Паскаль 5. Составные символы, которые нельзя разделять пробелами не равно >=
- 13. © С.В.Кухта, 2009 Зарезервированные слова ABSOLUTE AND ARRAY ASM ASSEMBLER BEGIN CASE CONST CONSTRUCTOR DESTRUCTOR DIV
- 14. © С.В.Кухта, 2009 Структура программы Для того чтобы компилятор правильно понял, какие именно действия от него
- 15. © С.В.Кухта, 2009 Структура программы program ; Uses …; { подключаемые модули и библиотеки } Label
- 16. © С.В.Кухта, 2009 Структура программы Любой из перечисленных необязательных разделов может встречаться в тексте программы более
- 17. © С.В.Кухта, 2009 Оформление текста программы Шапка – комментарий в начале процедур и функций. {---------------------------------------- Max
- 18. © С.В.Кухта, 2009 Оформление текста программы Отступы – тело цикла, условного оператора, оператора выбора и т.п.
- 19. © С.В.Кухта, 2009 Оформление текста программы «говорящие» имена функций, процедур, переменных: Sum, ShowMenu, count, speed. пробелы
- 20. © С.В.Кухта, 2009 Порядок разработки программы 1. Программист должен знать алгоритм решения задачи 2. Нужно придумать
- 21. © С.В.Кухта, 2009 Из чего состоит программа? Константа – постоянная величина, имеющая имя. Переменная – изменяющаяся
- 22. © С.В.Кухта, 2009 Из чего состоит программа? Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности).
- 23. © С.В.Кухта, 2009 Идентификаторы Имена, даваемые программным объектам (константам, типам, переменным, функциям и процедурам, да и
- 24. © С.В.Кухта, 2009 Идентификаторы Имена могут включать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и
- 25. © С.В.Кухта, 2009 Идентификаторы Какие имена правильные? AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B
- 26. © С.В.Кухта, 2009 Константа - это объект, значение которого известно еще до начала работы программы. необходимы
- 27. © С.В.Кухта, 2009 Константы const i2 = 45; { целое число } pi = 3.14; {
- 28. © С.В.Кухта, 2009 Константы В языке Паскаль существует три вида констант: неименованные константы (цифры и числа,
- 29. © С.В.Кухта, 2009 Неименованные константы Неименованные константы не имеют имен, и потому их не нужно описывать.
- 30. © С.В.Кухта, 2009 Неименованные константы int1 := -10; real2 := 12.075 + х; char3 := 'z';
- 31. © С.В.Кухта, 2009 Нетипизированные константы Именованные константы, как следует из их названия, должны иметь имя. Стало
- 32. © С.В.Кухта, 2009 const n = -10; m = 1000000000; mmm = n*100; x = 2.5;
- 33. © С.В.Кухта, 2009 Типизированные константы Любую уже описанную константу можно использовать при объявлении других констант, переменных
- 34. © С.В.Кухта, 2009 Типизированные константы Описание типизированных констант производится по следующему шаблону: const : = ;
- 35. © С.В.Кухта, 2009 const n: integer = -10; x: real = 2.5; c: char = 'z';
- 36. © С.В.Кухта, 2009 Переменные Переменная – это величина, имеющая имя, тип данных и значение. Значение переменной
- 37. © С.В.Кухта, 2009 Переменные Все используемые в программе переменные должны быть описаны в специальном разделе var
- 38. © С.В.Кухта, 2009 Комментарии Используют для пояснений, необходимых для лучшего понимания программы. Комментарий представляет собой пояснительный
- 39. © С.В.Кухта, 2009 Комментарии По месту положения в программе комментарии подразделяются на четыре класса: объясняющие назначение
- 40. © С.В.Кухта, 2009 Комментарии Внутри самого комментария символы } или *) встречаться не должны. Во время
- 41. © С.В.Кухта, 2009 3. Типы данных и операции
- 42. © С.В.Кухта, 2009 Компиляторы языка Паскаль требуют, чтобы сведения об объеме памяти, необходимой для работы программы,
- 43. © С.В.Кухта, 2009 Тип данных определяет: возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
- 44. © С.В.Кухта, 2009 Классификация типов данных Для удобства программистов существует множество стандартных типов данных и плюс
- 45. © С.В.Кухта, 2009 Классификация типов данных базовые типы конструируемые типы
- 46. © С.В.Кухта, 2009 Формат описания типа Type = ; Типы данных, конструируемые программистом, описываются в разделе
- 47. © С.В.Кухта, 2009 Базовые типы данных являются стандартными, поэтому нет нужды описывать их в разделе type.
- 48. © С.В.Кухта, 2009 Целочисленные типы определяют константы, переменные и функции, значения которых реализуются множеством целых чисел.
- 49. © С.В.Кухта, 2009 Целые беззнаковые числа Беззнаковые данные – не могут быть отрицательными. Байт (символ) память:
- 50. © С.В.Кухта, 2009 Целые беззнаковые числа Целое без знака память: 2 байта = 16 бит диапазон
- 51. © С.В.Кухта, 2009 Целочисленные типы данных Целочисленный тип данных SHORTINT Целочисленный тип данных INTEGER Допустимые значения:
- 52. © С.В.Кухта, 2009 Целочисленные типы данных Целочисленный тип данных LONGINT Допустимые значения: от –2147483648 до 2147473647
- 53. © С.В.Кухта, 2009 «-1» – это такое число, которое при сложении с 1 даст 0. 1
- 54. © С.В.Кухта, 2009 Двоичный дополнительный код Задача: представить отрицательное число (–a) в двоичном дополнительном коде. Решение:
- 55. © С.В.Кухта, 2009 Целые числа со знаком Байт (символ) со знаком память: 1 байт = 8
- 56. © С.В.Кухта, 2009 Целые числа со знаком Слово со знаком память: 2 байта = 16 бит
- 57. © С.В.Кухта, 2009 Ошибки Переполнение разрядной сетки: в результате сложения больших положительных чисел получается отрицательное (перенос
- 58. © С.В.Кухта, 2009 Ошибки Перенос: при сложении больших (по модулю) отрицательных чисел получается положительное (перенос за
- 59. © С.В.Кухта, 2009 Над целочисленными операндами выполняются арифметические операции, операции отношения. Целочисленные типы данных Арифметические операции
- 60. © С.В.Кухта, 2009 Целочисленные типы данных Операции отношения (сравнения) = равенство, неравенство, больше, = больше или
- 61. © С.В.Кухта, 2009 Вещественные типы определяют константы, переменные и функции, значения которых реализуются множеством действительных (вещественных)
- 62. © С.В.Кухта, 2009 Вещественные типы данных Вещественный тип данных DOUBLE Вещественный тип данных EXTENDED Допустимые значения:
- 63. © С.В.Кухта, 2009 Нормализация двоичных чисел X = s ⋅ M ⋅ 2e s – знак
- 64. © С.В.Кухта, 2009 Нормализованные числа в памяти IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754) 15,625
- 65. © С.В.Кухта, 2009 Вещественные числа в памяти 15,625 = 1,1111012 ⋅23 4 байта = 32 бита
- 66. © С.В.Кухта, 2009 Над вещественными операндами выполняются арифметические операции, операции отношения. Вещественные типы данных Арифметические операции
- 67. © С.В.Кухта, 2009 Операции отношения (сравнения) = равенство, неравенство, больше, = больше или равно Результат выполнения
- 68. © С.В.Кухта, 2009 Данные, которые могут принимать логические значения True и False. Логический тип данных BOOLEAN
- 69. © С.В.Кухта, 2009 Операции отношения (сравнения) Логический тип определен таким образом, что True Это позволяет применять
- 70. © С.В.Кухта, 2009 Типы данных: символы Символьный тип данных CHAR Допустимые значения: один символ из кодовой
- 71. © С.В.Кухта, 2009 Типы данных: символы Строковый тип данных STRING Строка типа String – это цепочка
- 72. © С.В.Кухта, 2009 Кодирование символов Текстовый файл на экране (символы) в памяти – двоичные коды
- 73. © С.В.Кухта, 2009 Кодирование символов Сколько символов надо использовать одновременно? или 65536 (UNICODE) Сколько места надо
- 74. © С.В.Кухта, 2009 Кодировка 1 байт на символ таблица ASCII (международная) кодовая страница ASCII = American
- 75. © С.В.Кухта, 2009 Типы данных, определяемые программистом Интервальный тип данных Позволяет задавать две константы, определяющие границы
- 76. © С.В.Кухта, 2009 Типы данных, определяемые программистом Перечисляемый тип данных Определение перечисляемого типа задает упорядоченное множество
- 77. © С.В.Кухта, 2009 Среди базовых типов данных особо выделяются порядковые типы. Такое название можно обосновать двояко:
- 78. © С.В.Кухта, 2009 Только для величин порядковых типов определены следующие стандартные функции и процедуры: Функция ord(x)
- 79. © С.В.Кухта, 2009 Процедура inc(x, k) возвращает k-е значение, следующее за х (для арифметических типов данных
- 80. © С.В.Кухта, 2009 На первый взгляд кажется, будто результат применения процедуры inc(x) полностью совпадает с результатом
- 81. © С.В.Кухта, 2009 Поясним все сказанное на примере. Для типа данных type sixteen = 0..15; попытка
- 82. © С.В.Кухта, 2009 Опишем теперь порядковые типы данных более подробно. Логический тип boolean имеет два значения:
- 83. © С.В.Кухта, 2009 Перечисляемые типы данных задаются в разделе type явным перечислением их элементов. Например: type
- 84. © С.В.Кухта, 2009 Программист может создавать и собственные типы данных, являющиеся комбинацией нескольких стандартных типов. Например:
- 85. © С.В.Кухта, 2009 4. Стандартные функции
- 86. © С.В.Кухта, 2009 Арифметические функции
- 87. © С.В.Кухта, 2009 Эти функции предназначены для преобразования типов величин, например, символа в целое число, вещественного
- 88. © С.В.Кухта, 2009 Ord(X) – преобразование любого порядкового типа в целый тип. Аргумент функции – логический,
- 89. © С.В.Кухта, 2009 Примеры арифметических функций sin(x) cos(x) arctan(x) a:=Pi/180*30; s:=sin(a); c:=cos(a); t:=s/c; ct:=c/s; синус, косинус,
- 90. © С.В.Кухта, 2009 Примеры арифметических функций exp(x) ln(x) Exp(b*Ln(a)) ex (экспонента числа, e≈2.7183) ln x (натуральный
- 91. © С.В.Кухта, 2009 Примеры арифметических функций Round(x) Trunc(x) Перевод дробного числа в целое с округлением Перевод
- 92. © С.В.Кухта, 2009 Примеры арифметических функций
- 93. © С.В.Кухта, 2009 Randomize – стандартная процедура установки датчика случайных чисел в исходное состояние. Random –
- 94. © С.В.Кухта, 2009 Примеры получения случайных числе a:=Random; 0 x:=Random+10; 10 y:=5*Random; 0 c:=10*Random-5; -5 a:=Random(3);
- 95. © С.В.Кухта, 2009 5. Арифметические выражения
- 96. © С.В.Кухта, 2009 Все арифметические операции можно сочетать друг с другом - с учетом допустимых для
- 97. © С.В.Кухта, 2009 Примеры арифметических выражений (x 0) z shl abs(k) выражение, результат которого принадлежит к
- 98. © С.В.Кухта, 2009 Порядок вычислений Если в выражении расставлены скобки, то чем меньше глубина вложенности скобок,
- 99. © С.В.Кухта, 2009 Приоритеты всех операций языка Паскаль
- 100. © С.В.Кухта, 2009 Примеры выражений для целых чисел с указанием последовательности вычислений a + b *
- 101. © С.В.Кухта, 2009 В общем случае при выполнении арифметических (и любых других) операций компилятору требуется, чтобы
- 102. © С.В.Кухта, 2009 Эквивалентность - это наиболее высокий уровень соответствия типов. Она требуется при действиях с
- 103. © С.В.Кухта, 2009 Итак, два типа - Т1 и Т2 - будут эквивалентными, если верен хотя
- 104. © С.В.Кухта, 2009 Пример. Эквивалентность Здесь эквивалентными будут Т1 и Т2; Т1 и Т3; Т1 и
- 105. © С.В.Кухта, 2009 Итак, два типа - Т1 и Т2 - будут эквивалентными, если верен хотя
- 106. © С.В.Кухта, 2009 Совместимость типов требуется при конструировании выражений, а также при вызовах подпрограмм (для параметров-значений).
- 107. © С.В.Кухта, 2009 Два типа Т1 и Т2 будут совместимыми, если верен хотя бы один вариант
- 108. © С.В.Кухта, 2009 В отличие от простой совместимости, совместимость по присваиванию гарантирует, что в тех случаях,
- 109. © С.В.Кухта, 2009 Как мы упомянули в п. "Арифметические операции" выше, тип результата арифметических операций (а
- 110. © С.В.Кухта, 2009 Т.е., если выполнить такую последовательность операторов Неявное приведение типов данных a:= 10; {a:
- 111. © С.В.Кухта, 2009 Неявное приведение типов данных можно отключить, если указать директиву компилятора {$R+}, которая принуждает
- 112. © С.В.Кухта, 2009 Тип значения можно изменить и явным способом: просто указав новый тип выражения, например:
- 113. © С.В.Кухта, 2009 Приводить явным образом можно и типы, различающиеся по длине. Тогда значение может измениться
- 114. © С.В.Кухта, 2009 В заключение приведем список стандартных функций, аргумент и результат которых принадлежат к совершенно
- 115. © С.В.Кухта, 2009 Пример. Присвоить целой переменной d первую цифру из дробной части положительного вещественного числа
- 116. © С.В.Кухта, 2009 Функции, изменяющие тип данных var x: real; { заданное число } d, cod:
- 117. © С.В.Кухта, 2009 6. Простейшие операторы
- 118. © С.В.Кухта, 2009 Оператор языка Паскаль – это неделимый элемент программы, который позволяет выполнять определенные алгоритмические
- 119. © С.В.Кухта, 2009 Простейшие операторы языка a:= b; - присваивание переменной а значения переменной b. В
- 120. © С.В.Кухта, 2009 Простейшие операторы языка Оператор безусловного перехода (GoTo). Операторы вызова подпрограммы (например, Abs, Write,
- 121. © С.В.Кухта, 2009 Составные операторы языка Составной оператор – это последовательность операторов, заключенных в операторные скобки
- 122. © С.В.Кухта, 2009 Как изменить значение переменной? Оператор присваивания служит для изменения значения переменной. program qq;
- 123. © С.В.Кухта, 2009 Оператор присваивания Арифметическое выражение может включать константы имена переменных знаки арифметических операций: +
- 124. © С.В.Кухта, 2009 Имя слева от символа присваивания := является именем переменной, которой присваивается значение выражения,
- 125. © С.В.Кухта, 2009 Примеры операторов присваивания Root1 := Pi*(x - y); Discriminant := Sqrt(b*b-4*a*c)/2/A; Index :=
- 126. © С.В.Кухта, 2009 program qq; var a, b: integer; x, y: real; begin a := 5;
- 127. © С.В.Кухта, 2009 Ручная прокрутка программы program qq; var a, b: integer; begin a := 5;
- 128. © С.В.Кухта, 2009 Порядок выполнения операций вычисление выражений в скобках умножение, деление, div, mod слева направо
- 129. © С.В.Кухта, 2009 7. Ввод и вывод данных
- 130. © С.В.Кухта, 2009 Как мы уже говорили, любой алгоритм должен быть результативным. В общем случае это
- 131. © С.В.Кухта, 2009 Для того чтобы получить данные, вводимые пользователем вручную (т.е. с консоли), применяются команды
- 132. © С.В.Кухта, 2009 Например, при помощи команды Ввод с консоли Список ввода - это последовательность имен
- 133. © С.В.Кухта, 2009 Вводимые значения необходимо разделять пробелами, а завершать ввод - нажатием клавиши Enter. Ввод
- 134. © С.В.Кухта, 2009 При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую
- 135. © С.В.Кухта, 2009 Если же программе все-таки необходимо получить с консоли значение для boolean-величины, придется действовать
- 136. © С.В.Кухта, 2009 Второе исключение: строки, хотя они и не являются базовым типом, вводить тоже разрешается.
- 137. © С.В.Кухта, 2009 Сделаем одно важное замечание: ожидая от человека ввода с клавиатуры, не нужно полагать,
- 138. © С.В.Кухта, 2009 Примером неплохого приглашения служит, скажем, такая строчка: Введите два вещественных числа (0.1 Впрочем,
- 139. © С.В.Кухта, 2009 Для того чтобы вывести на экран какое-либо сообщение, воспользуйтесь процедурами write( ) Первая
- 140. © С.В.Кухта, 2009 Список вывода может состоять из нескольких переменных или констант, записанных через запятую; все
- 141. © С.В.Кухта, 2009 Если для вывода информации воспользоваться командой, приведенной в конце предыдущего слайда, то выводимые
- 142. © С.В.Кухта, 2009 Если число длиннее, чем отведенное под него пространство, количество позиций будет автоматически увеличено.
- 143. © С.В.Кухта, 2009 Например, если a = 25, b = 'x', а c = 10.5, то
- 144. © С.В.Кухта, 2009 Если же задать только общую длину вещественного числа, не указывая длину дробной части,
- 145. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод десятичного представления величины J, начиная с позиции расположения курсора.
- 146. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод в поле шириной 18 символов (по умолчанию) десятичного представления
- 147. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод десятичного представления величины R в формате с плавающей точкой
- 148. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод десятичного представления величины R в формате с фиксированной точкой
- 149. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод символа Ch, начиная с позиции расположения курсора. Для выражения
- 150. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод строки S, начиная с позиции расположения курсора. Для выражения
- 151. © С.В.Кухта, 2009 Примеры форматированного вывода Вывод результата выражения B (True или False), начиная с позиции
- 152. © С.В.Кухта, 2009 Например (подчеркивание служит для визуализации пробела): Форматированный вывод В случае недостаточной длины вывода
- 153. © С.В.Кухта, 2009 Пример 1. Сложение двух чисел Задача. Ввести два целых числа и вывести на
- 154. © С.В.Кухта, 2009 Блок-схема линейного алгоритма начало конец c := a + b; ввод a, b
- 155. © С.В.Кухта, 2009 Оператор ввода read ( a ); { ввод значения переменной a} read (
- 156. © С.В.Кухта, 2009 Оператор вывода write ( a ); { вывод значения переменной a} writeln (
- 157. © С.В.Кухта, 2009 Форматы вывода program qq; var i: integer; x: real; begin i := 15;
- 158. © С.В.Кухта, 2009 Полное решение program qq; var a, b, c: integer; begin writeln('Введите два целых
- 159. © С.В.Кухта, 2009 Пример 2. Задача. Программа вычисления площади круга, вписанного в треугольник и площади круга,
- 160. © С.В.Кухта, 2009 Пример 3. Задача. Программа возведения положительного числа “x” в степень”n”, т.е. y=xn. Расчет
- 161. © С.В.Кухта, 2009 8. Метки и безусловный переход
- 162. © С.В.Кухта, 2009 Метки Метка помечает какое-либо место в тексте программы. Метками могут быть числа от
- 163. © С.В.Кухта, 2009 Оператор безусловного перехода Используются метки только операторами безусловного перехода goto: Это означает, что
- 164. © С.В.Кухта, 2009 Оператор безусловного перехода Оператор Goto следует применять как можно реже, так как его
- 166. Скачать презентацию