Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1 Программирование на Паскаль.doc
Скачиваний:
16
Добавлен:
26.04.2019
Размер:
1.18 Mб
Скачать

Комментарии 7

Директивы компилятора 7

Идентификаторы 7

Переменные и типы данных 8

Константы 8

Неименованные константы 9

Нетипизированные константы 9

Типизированные константы 10

Простейшие операторы 10

Метки и безусловный переход 11

Ввод и вывод: консоль 12

Ввод с консоли 12

Вывод на консоль 13

Форматный вывод 14

Пример простейшей программы на языке Pascal 15

Порядковые типы данных 17

Стандартные подпрограммы, обрабатывающие порядковые типы данных 17

Типы данных, относящиеся к порядковым 18

Вещественные типы данных 20

Конструируемые типы данных 20

Неименованные константы 56

Нетипизированные константы 57

Типизированные константы 57

Операции 57

Стандартные функции 57

Стандартные функции и процедуры обработки строк 58

Операции со строками 59

Сравнения 59

Обращение к компонентам строки 60

Конкатенация 61

Множества 61

Описание множеств 61

Множество-константа 61

Неименованная константа 61

Нетипизированная константа 62

Типизированная константа 62

Операции с множествами 62

Представление множеств массивами 63

Представление множеств линейными массивами 63

Представление множеств битовыми массивами 64

Примеры использования символов, строк и множеств 67

Что такое файл 69

Когда нужно использовать файлы 69

Разновидности файлов 70

Описание файлов 70

Текстовые файлы 71

Назначение файла 71

Открытие файла 71

Закрытие файла 71

Считывание из файла 72

Запись в файл 73

Пробельные символы 74

Пример использования файлов 76

Решение 76

Реализация 77

Изменение реакции на ошибку 77

Пример использования директив {$I} 78

Описание записей 80

Задание записей константой 81

Доступ к полям 82

Оперирование несколькими полями 82

Вложенные операторы with 83

Запись с вариантной частью 84

Описание записи с вариантной частью 84

Механизм использования записи с вариантной частью 86

Бинарные файлы 86

Типизированные файлы 86

Описание типизированных файлов 87

Назначение типизированного файла 88

Открытие и закрытие типизированного файла 88

Считывание из типизированного файла 88

Поиск в типизированном файле 89

Запись в типизированный файл 90

Нетипизированные файлы 90

Описание нетипизированных файлов 91

Назначение нетипизированного файла 91

Открытие и закрытие нетипизированного файла 91

Поиск в нетипизированном файле 91

Запись и чтение 91

Подпрограммы обработки директорий 92

Применимость подпрограмм обработки файлов 92

Подпрограммы 93

Объявление и описание 94

Объявление функции 94

Объявление процедуры 95

Описание подпрограммы 95

Список параметров 96

Возвращаемые значения 98

Вызов подпрограмм 98

Способы подстановки аргументов 99

Параметр-значение 100

Описание 100

Механизм передачи значения 100

Параметр-переменная 101

Описание 101

Механизм передачи значения 101

Параметр-константа 102

Описание 102

Механизм передачи значения 102

Области действия имен 103

Разграничение контекстов 103

Побочный эффект 104

Совпадение имен 104

Нетипизированные параметры 104

Явное преобразование типа 105

Совмещение в памяти 105

Открытые параметры 106

Открытые массивы 106

Открытые строки 107

Процедурный тип данных 107

Описание 107

Аргументы 108

Вызов 108

Динамические структуры данных 108

Стек 109

Операции 109

Очередь 110

Операции 110

Дек 111

Рекурсия 111

Рекурсивные подпрограммы 111

Пример рекурсивного алгоритма 112

Алгоритм решения 112

Стековая организация рекурсии 113

Ограничение глубины рекурсии 115

Замена рекурсивных алгоритмов итеративными 116

Пример сравнения рекурсивного и нерекурсивного алгоритма 116

Рекурсивный алгоритм 117

Реализация рекурсивного алгоритма 117

Полный перебор с отсечением 117

Нерекурсивный алгоритм 118

Реализация нерекурсивного алгоритма 118

Иллюстрация 120

Эффективность 123

Быстрая сортировка2 123

Алгоритм Быстр 123

Реализация алгоритма Быстр 123

Эффективность алгоритма Быстр 124

Статически выделяемая память 125

Адреса 125

Указатели 125

Описание указателей 126

Операции с указателями 126

Определение адреса 126

Разыменование 126

Присваивания 127

Сравнения 127

Динамически распределяемая память 128

Динамическое выделение памяти 128

Типизированные указатели 128

Нетипизированные указатели 129

Динамическое освобождение памяти 129

Типизированные указатели 129

Нетипизированные указатели 129

Списочные структуры 129

Структура списков 130

Описание списков 131

Оперирование элементами списка 133

Хранение списка 133

Обращение к элементам списка 133

Создание списков 134

Просмотр элементов списка 135

Удаление элементов списка 136

Перестройка списков 136

Примеры перестройки линейных списков 138

Реализация 138

Создание дружественного интерфейса 140

Заставка 141

Ввод информации 141

Приглашения 142

Защита 142

Меню 143

Вывод информации 143

Советы по технологии написания быстро отлаживаемых программ 144

Имена, имена, имена... 145

Кусочки, куски и кусищи... 148

Спасение утопающих - дело рук самих утопающих 150

Отладка и тестирование 151

Поиск и исправление ошибок 151

Правила составления тестов 153

Оптимизация программ 155

Учебники к курсу 156

Средства разработки программ на Паскале

В составе среды разработчика Turbo Pascal имеются:

  • текстовый редактор, в котором можно набирать тексты программ;

  • компилятор, превращающий исходные тексты в исполняемый код;

  • отладчик, помогающий обнаруживать и исправлять ошибки в программе

Возможностей, предоставляемых средой Turbo Pascal, без которых написание программ становится затруднительным:

  • Нажатие клавиш F1, Alt+F1, Ctrl+F1 открывает экранную подсказку.

  • Нажатие клавиши F2 позволяет сохранить исходный текст программы.

  • Нажатие клавиши F3 открывает диалог выбора нужного файла (по умолчанию, отображаются только файлы с расширением .pas).

  • Нажатие клавиши Alt+F5 показывает консоль с результатами работы программы.

  • Нажатие клавиши Ctrl+F9 начинает процесс выполнения программы. Если она еще не была откомпилирована, предварительно будет вызван компилятор

  • Клавиши F7 и F8 обеспечивают трассировку - пошаговое выполнение программы, позволяющее проследить за процессом ее выполнения.

  • Дополнительное окно Debug/Watch показывает текущее состояние выбранных переменных.

Структура Паскаль-программы

Программа должна быть оформлена в полном соответствии с синтаксисом (правилами построения программ) этого языка.

Любая Pascal-программа может состоять из следующих блоков (квадратными скобками здесь и далее помечены необязательные части):

program <имя_программы>;

[ uses <имена_подключаемых_модулей>;]

[ label <список_меток>;]

[ const <имя_константы> = <значение_константы>;]

(см. п. "Константы" ниже)

[ type <имя_типа> = <определение_типа>;]

[ var <имя_переменной> : <тип_переменной>;]

[ procedure <имя_процедуры> <описание_процедуры>;]

[ function <имя_функции> <описание_функции>;]

begin {начало основного тела программы}

<операторы>

end. (* конец основного тела программы *)

Поздние версии компиляторов языка Pascal уже не требуют указывать название программы, то есть строку

program <имя_программы>;

можно опустить. Но это возможно только в том случае, если вся программа содержится в одном модуле-файле. Если же программа состоит из нескольких самостоятельных кусков - модулей, то каждый из них должен иметь заголовок (program или unit).

Любой из необязательных разделов может встречаться в тексте программы более одного раза, их общая последовательность также может меняться, но при этом всегда должно выполняться главное правило языка Pascal: прежде чем объект будет использован, он должен быть объявлен и описан.

Внешний вид исходного текста программы

Компиляторы языка Pascal не различают строчные и прописные буквы, а пробельные символы игнорируют, поэтому текст программы можно структурировать так, чтобы читать и отлаживать его было наиболее удобно.

Например, операторы каждого логически единого блока программы стоит записывать с небольшим отступом от левого края экрана, и чем глубже вложенность блока, тем шире должны быть отступы перед входящими в него операторами. Кроме того, встроенный редактор среды Turbo Pascal автоматически выравнивает левые края строк. И еще: для облегчения отладки программы не следует записывать на одну строку несколько операторов.