- •Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке паскаль
- •Иркутск
- •Содержание
- •Программирование и алгоритмические языки в историческом аспекте
- •Введение в Паскаль
- •Алфавит Паскаля
- •Служебные (ключевые) слова
- •Константы
- •Запись чисел
- •Переменные
- •Типы данных
- •Стандартные функции
- •Выражения
- •Выражения целого типа
- •Выражения вещественного типа
- •3,61·109 X – 526,237 3.61e9 * X – 526.237 * Sqrt(0.2*y) Выражения логического типа
- •Операторы присваивания
- •Программа и этапы ее разработки. Структура программы
- •Var X, s : Word;
- •Комментарии
- •Ввод данных
- •Вывод данных
- •Бесформатный способ вывода
- •±D.DdddddddddE±dd
- •Форматный способ вывода
- •Структуры данных
- •Массивы
- •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: Byte;
- •Алгоритм и его свойства
- •Схемы алгоритмов
- •Базовые структуры
- •Цепочка
- •Ветвления
- •Альтернатива
- •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 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 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
- •Б)Ошибки ввода-вывода
- •В)Критические ошибки
- •Г)Фатальные ошибки
Иркутский государственный университет путей сообщения кафедра “информатика” программирование на языке паскаль
Автор: старший преподаватель Лучников В.А.
Иркутск
2012
Лучников В.А.Программирование на языке ПАСКАЛЬ. Учебное пособие – Иркутск: ИрГУПС, 2012.-311 с.
Учебное пособие предназначено для студентов специальностей “Информационные системы и технологии”, “Программная инженерия” и “Информационная безопасность”. Оно может быть также полезно для студентов других специальностей, изучающих программирование и использующих его в прикладных задачах при выполнении расчетно-графических и курсовых работ по специальным дисциплинам.
Учебное пособие содержит последовательное изложение основ программирования на примере алгоритмического языка Паскаль, необходимую для практической работы справочную информацию. Пособие снабжено большим количеством примеров, иллюстрирующих основные приемы программирования. Рассматривается структурная и объектно-ориентированная технологии программирования, методы проектирования, отладки и тестирования программ, использование основных структур данных для решения конкретных практических задач. В конце каждой темы приводятся часто встречающиеся ошибки программирования, относящиеся к этой теме. Учебное пособие ориентировано на программирование в среде Borland Pascal for Windows.
Данное учебное пособие является первым в серии учебных пособий по программированию на алгоритмических языках высокого уровня, написанных автором. Следующими будут выпущены учебники по программированию на языках C,PHPиJava, необходимых студентам специальностей Информационные системы и Программная инженерия.
Содержание
Программирование и алгоритмические языки в историческом аспекте ……………………………………………. ……. 4
Введение в Паскаль ………………………………………………………. 11
алфавит Паскаля …………………………………………………… 12
служебные (ключевые) слова ……………………………………... 13
константы …………………………………………………..………. 15
переменные …………………………………………………………. 17
типы данных ………………………………………..………………. 19
стандартные функции ……………………………………………… 21
выражения …………………………………………………….……. 23
выражения целого типа …………………………………...… 23
выражения вещественного типа …………………….……… 25
выражения логического типа …………………………..…… 26
операторы присваивания ……………………………………..……. 28
Программа и этапы ее разработки. Структура программы ………..…… 30
Комментарии ………………………………………………………...……. 38
Ввод данных ………………………………………………………………. 40
Вывод данных ……………………………………………………….……. 41
бесформатный способ вывода …………………………………..… 42
форматный способ вывода ……………………………………...… 43
Структуры данных ………………………………………………….……. 45
Массивы ……………………………………………………………..……. 46
Строки ………………………………………………………………….…. 53
Алгоритм и его свойства ………………………………………………… 60
Схемы алгоритмов ………………………………………………….……. 60
Базовые структуры ………………………………………………………. 64
цепочка ……………………………………………………….……. 65
ветвления ………………………………………………………..…. 67
альтернатива ………………………………………………… 67
переключатель …………………………………………….… 77
циклы …………………………………………………………….…. 82
бесконечные циклы ……………………………………….… 82
циклы с предусловием ……………………………………… 83
циклы с постусловием ……………………………………… 91
циклы с параметром …………………………………..…… 100
Множества ……………………………………………………….………. 135
Файлы …………………………………………………………….………. 142
типизированные файлы …………………………………...……… 144
текстовые файлы ……………………………………………..…… 151
Записи ……………………………………………………………………. 160
Подпрограммы ………………………………………………….…….…. 170
подпрограмма-функция ………………………………….…….… 172
рекурсия …………………………………………………….….…. 184
процедура ………………………………………………...….……. 191
Программные модули ……………………………………….……..…… 206
структура модуля ………………………………………………… 209
компиляция модулей …………………………………………..… 212
взаимное использование модулей ………………………….…… 213
особенности выполнения инициирующих разделов ………...… 214
Ссылки и динамические переменные ……………….………………… 214
Динамические структуры данных ………………………….……..…… 220
связные списки …………………………………………....……… 221
сортированные списки ………………………………….…..…… 243
бинарные деревья ……………………………………….…..…… 248
Объектно-ориентированное программирование ……………..……… 267
Приложение 1. Основы алгебры логики ……………………………… 285
Приложение 2. Системы счисления …………………………………… 298
Приложение 3. Сообщения об ошибках………………………………… 304