- •В.А. Лучников программирование на языке паскаль
- •Содержание
- •Программирование и алгоритмические языки в историческом аспекте
- •Введение в Паскаль
- •Алфавит Паскаля
- •Служебные (ключевые) слова
- •Константы
- •Запись чисел
- •Переменные
- •Типы данных
- •Стандартные функции
- •Выражения
- •Выражения целого типа
- •Выражения вещественного типа
- •3,61·109 X – 526,237 3.61e9 * X – 526.237 * Sqrt(0.2*y) Выражения логического типа
- •Операторы присваивания
- •Программа и этапы ее разработки. Структура программы
- •Var X, s : Word;
- •Комментарии
- •Ввод данных
- •Вывод данных
- •Бесформатный способ вывода
- •±D.DdddddddddE±dd
- •Форматный способ вывода
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •If (условие)
- •Вариант 2 – с использованием операции конъюнкция
- •Часто встречающиеся ошибки программирования:
- •Var X, y, s_left, s_right, alfa, sin_alfa, segment : Real;
- •Переключатель
- •Var Month: 1..12;
- •Бесконечные циклы
- •Циклы с предусловием
- •Var I, s : Word;
- •Var I, s, n : Word;
- •Программа
- •Var n, min, max, s, count: Word;
- •Часто встречающиеся ошибки программирования:
- •Циклы с постусловием
- •Var I, s : Word;
- •Var I, s, n : Word;
- •Программа
- •Var n,min,max,s,count: Word;
- •Var k : Word;
- •X, y, s : Real;
- •Var Month: 1..12;
- •Var n, s : Word;
- •Var I, s : Word;
- •Часто встречающиеся ошибки программирования:
- •Структуры данных
- •Массивы
- •Var a : Array [1..2,1..3] Of Integer;
- •Error 201: Range check error
- •Var a : tMatrix;
- •Var Doska : Array [‘a’..’h’,1..8] Of Char;
- •Var Roma : Array [1..787] Of Word;
- •Var Roma : Array [-754..33] Of Word;
- •Var Ozenka : Array [1..2,1..3] Of Word;
- •Var Ozenka : Array [Fam, Predm] Of 2..5;
- •Var a: Array [1..3, 1..4, 1..5] Of Integer;
- •Примеры:
- •Var I, j, k : Word;
- •Var I, i_max, vector_max : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, s : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, m : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, s, count : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, min, max, i_min, i_max : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, i_otr, i_pol : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, k, posl : Integer;
- •Vector : Array [1..N] Of Integer;
- •Var I, j, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, k : Integer;
- •Var I, j, k, posl : Integer;
- •Var I, j, k, m : Integer;
- •Var I, j, k, i_max, j_min : Word;
- •Var I, j, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, m, t : Integer;
- •Vector : Array [1..K] Of Integer;
- •Var I, j, b, c : Word;
- •Var I, j: Byte;
- •Множества
- •Var r : tSymb;
- •Основные операции со множествами
- •Типизированные файлы
- •Var f_int : tFile_Int;
- •Var n : Integer;
- •Функции для работы с типизированными файлами
- •И процедуры:
- •Var n : Integer;
- •Текстовые файлы
- •Var f_text : tFile_text;
- •Программа:
- •Var stud_1 : tStudent;
- •Var student : tKadr;
- •Var coord : tCoord;
- •Ключ : ();
- •Подпрограммы
- •Подпрограммы-функции
- •Var p : Real;
- •Var s : Real;
- •Var I: Word;
- •Var a, b, c : Integer;
- •Var a, b, c : Integer;
- •Var a, b : Integer;
- •Var a, b, c: Integer;
- •Рекурсия
- •5 * 4 * Factorial(3)
- •5 * 4 * 3 * Factorial(2)
- •5 * 4 * 3 * 2 * Factorial(1)
- •Var k: Integer; Func_2
- •Var temp : Integer;
- •Особенности рекурсии:
- •Процедуры
- •Var I: Word;
- •Var I, i_min, i_max: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j, k: Word;
- •Var I: Word;
- •Var I: Word;
- •Var I, j: Word;
- •Программные модули
- •Структура модуля
- •Interface
- •Implementation
- •Var f: Text;
- •Var p: Real;
- •Var temp: Real;
- •Компиляция модулей
- •Взаимное использование модулей
- •Ссылки и динамические переменные
- •Var a, b: tPntint;
- •X, y: tPntchar;
- •Динамические структуры данных
- •Связные списки
- •Inf: Integer;
- •Var head, q : tPoint;
- •Inf: Integer;
- •Var head, q : tPoint;
- •Добавление нового элемента в список
- •Var head, q, r: tPoint;
- •Inf: Integer;
- •Var head, q, r : tPoint;
- •Удаление элемента из списка
- •Inf: Integer;
- •Var head, q, r : tPoint;
- •Сортированные списки
- •Var head, q, r, V: tPoint;
- •Inf: Integer;
- •Var head, q, r, V : tPoint;
- •Бинарные деревья
- •Var root, q, V: tRebro;
- •Интерфейс:
- •Var root, q, V : tRebro;
- •Поиск заданного узла в дереве
- •Var root, q, V : tRebro;
- •Удаление узла из дерева
- •Var root, q, V, r : tRebro;
- •Объектно-ориентированное программирование
- •Var X, y, dx, dy: Word;
- •Var x0, y0, dx, dy: Word;
- •Var x0, y0, dx, dy, radius: Word;
- •Var x0, y0, dx, dy, radius: Word;
- •Основы алгебры логики
- •Логическая функция не (отрицание)
- •Логическая функция и (конъюнкция – логическое умножение)
- •Логическая функция или (дизъюнкция – логическое сложение)
- •Логическое следование (импликация)
- •Логическое совпадение(эквивалентность)
- •Закон исключенного третьего
- •Закон противоречия
- •Закон двойного отрицания
- •Закон контрапозиции
- •Закон расширенной контрапозиции
- •Закон перестановки посылок
- •Закон силлогизма
- •Закон де Моргана
- •Минимизация формул алгебры логики
- •Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Арифметические операции в двоичной системе счисления
- •1111 11 11 - Переносы
- •Арифметические операции в восьмеричной системе счисления
- •Арифметические операции в 16-ричной системе счисления
- •1. Ошибки при компиляции
- •2. Ошибки времени выполнения а) Ошибки системы ms-dos
- •Б)Ошибки ввода-вывода
- •В)Критические ошибки
- •Г)Фатальные ошибки
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Иркутский государственный университет путей сообщения»
В.А. Лучников программирование на языке паскаль
Иркутск 2014
УДК
ББК
Рекомендовано к изданию редакционным советом ИрГУПС
Рецензенты: С.В. Мишин, к.т.н., доцент, декан факультета Авиационных систем и комплексов Иркутского филиала Московского государственного технического университета гражданской авиации;
В.В. Кашковский, к.т.н., с.н.с., доцент кафедры «Информационные системы» Иркутского государственного университета путей сообщения
Лучников В.А.
Программирование на языке ПАСКАЛЬ: учебное пособие / В.А. Лучников. – Иркутск: ИрГУПС, 2014.-310 с.
Учебное пособие предназначено для студентов специальностей “Информационные системы и технологии”, “Программная инженерия” и “Информационная безопасность”. Оно может быть также полезно для студентов других специальностей, изучающих программирование и использующих его в прикладных задачах при выполнении расчетно-графических и курсовых работ по специальным дисциплинам.
Учебное пособие содержит последовательное изложение основ программирования на примере алгоритмического языка Паскаль, необходимую для практической работы справочную информацию. Пособие снабжено большим количеством примеров, иллюстрирующих основные приемы программирования. Рассматривается структурная и объектно-ориентированная технологии программирования, методы проектирования, отладки и тестирования программ, использование основных структур данных для решения конкретных практических задач. В конце каждой темы приводятся часто встречающиеся ошибки программирования, относящиеся к этой теме. Учебное пособие ориентировано на программирование в среде Borland Pascal for Windows, но могут быть использованы и другие среды программировния (Free Pascal, Pascal ABC).
Данное учебное пособие является первым в серии учебных пособий по программированию на алгоритмических языках высокого уровня, написанных автором.
Ил.: 1. Библиогр.:
УДК
ББК
© Лучников В.А., 2014
© Иркутский государственный университет
путей сообщения
Содержание
Программирование и алгоритмические языки в историческом аспекте ……………………………………………. ……. 4
Введение в Паскаль ………………………………………………………. 11
алфавит Паскаля …………………………………………………… 12
служебные (ключевые) слова ……………………………………... 13
константы …………………………………………………..………. 15
переменные …………………………………………………………. 17
типы данных ………………………………………..………………. 19
стандартные функции ……………………………………………… 21
выражения …………………………………………………….……. 23
выражения целого типа …………………………………...… 23
выражения вещественного типа …………………….……… 25
выражения логического типа …………………………..…… 26
операторы присваивания ……………………………………..……. 28
Программа и этапы ее разработки. Структура программы ………..…… 30
Комментарии ………………………………………………………...……. 38
Ввод данных ………………………………………………………………. 40
Вывод данных ……………………………………………………….……. 41
бесформатный способ вывода …………………………………..… 42
форматный способ вывода ……………………………………...… 43
Алгоритм и его свойства ………………………………………………… 47
Схемы алгоритмов ………………………………………………….……. 47
Базовые структуры ………………………………………………………. 51
цепочка ……………………………………………………….……. 52
ветвления ………………………………………………………..…. 54
альтернатива ………………………………………………… 54
переключатель …………………………………………….… 64
циклы …………………………………………………………….…. 69
бесконечные циклы ……………………………………….… 69
циклы с предусловием ……………………………………… 70
циклы с постусловием ……………………………………… 78
циклы с параметром …………………………………..…… 87
Структуры данных ………………………………………………….……. 93
Массивы ……………………………………………………………..……. 94
Строки ………………………………………………………………….…. 129
Множества ……………………………………………………….………. 136
Файлы …………………………………………………………….………. 143
типизированные файлы …………………………………...……… 145
текстовые файлы ……………………………………………..…… 152
Записи ……………………………………………………………………. 161
Подпрограммы ………………………………………………….…….…. 171
подпрограмма-функция ………………………………….…….… 173
рекурсия …………………………………………………….….…. 185
процедура ………………………………………………...….……. 192
Программные модули ……………………………………….……..…… 207
структура модуля ………………………………………………… 210
компиляция модулей …………………………………………..… 213
взаимное использование модулей ………………………….…… 214
особенности выполнения инициирующих разделов ………...… 215
Ссылки и динамические переменные ……………….………………… 215
Динамические структуры данных ………………………….……..…… 221
связные списки …………………………………………....……… 222
сортированные списки ………………………………….…..…… 244
бинарные деревья ……………………………………….…..…… 249
Объектно-ориентированное программирование ……………..……… 268
Приложение 1. Основы алгебры логики ……………………………… 286
Приложение 2. Системы счисления …………………………………… 299
Приложение 3. Сообщения об ошибках………………………………… 305