Программирование на языке Pascal

6cac1dc9

Программирование на языке Pascal

Алгоритм и программа
Свойства алгоритма

Компиляция, отладка и тестирование
Средства разработки программ
Структура Pascal-программы
Внешний вид исходного текста программы
Комментарии
Директивы компилятора
Идентификаторы
Переменные и типы данных


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

Нетипизированные константы
Типизированные константы
Простейшие операторы
Метки и безусловный переход
Ввод и вывод: консоль
Ввод с консоли
Вывод на консоль
Форматный вывод
Пример простейшей программы на языке Pascal

Программирование на языке Pascal

Типы данных языка Pascal

Порядковые типы данных
Стандартные подпрограммы, обрабатывающие порядковые типы данных
Типы данных, относящиеся к порядковым
Вещественные типы данных
Конструируемые типы данных
Арифметические операции
Другие операции
Стандартные арифметические функции
Арифметические выражения
Полнота вычислений

Порядок вычислений
Совместимость типов данных
Эквивалентность
Совместимость
Совместимость по присваиванию
Неявное приведение типов данных
Явное приведение типов данных
Функции, изменяющие тип данных

Программирование на языке Pascal

Операторы ветвления
Условный оператор if
Оператор выбора case
Иллюстрация if и case
Массивы
Описание массива
Нумерация

Описание переменных размерностей
Обращение к компонентам массива
Задание массива константой
Операторы циклов
For-to и for-downto
Инкрементный цикл с параметром
Декрементный цикл с параметром
While и repeat-until
Break и continue
Оператор безусловного перехода goto

Пример использования циклов
Вывод массива, удобный для пользователя

Программирование на языке Pascal

Задача сортировки
Простые сортировки
Сортировка простыми вставками
Сортировка бинарными вставками

Сортировка простым выбором
Сортировка простыми обменами
Улучшенные сортировки
Сортировка Шелла
Пирамидальная сортировка

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

Программирование на языке Pascal

Символы и строки
Описание строк
Неименованные константы
Нетипизированные константы
Типизированные константы
Операции

Стандартные функции
Стандартные функции и процедуры обработки строк
Сравнения
Обращение к компонентам строки
Конкатенация
Множества
Описание множеств
Неименованная константа
Нетипизированная константа
Типизированная константа

Операции с множествами
Представление множеств массивами
Представление множеств линейными массивами
Представление множеств битовыми массивами
Примеры использования символов, строк и множеств

Программирование на языке Pascal

Ввод и вывод: файлы
Что такое файл
Когда нужно использовать файлы
Разновидности файлов
Описание файлов
Текстовые файлы
Оперирование файлами

Назначение файла
Открытие файла
Закрытие файла
Считывание из файла
Запись в файл
Пробельные символы
Пример использования файлов
Решение
Реализация

Изменение реакции на ошибку
Пример использования директив {$I}

Программирование на языке Pascal

Записи
Описание записей
Задание записей константой
Доступ к полям
Оперирование несколькими полями
Вложенные операторы with
Запись с вариантной частью
Описание записи с вариантной частью

Механизм использования записи с вариантной частью
Бинарные файлы
Типизированные файлы
Описание типизированных файлов
Назначение типизированного файла
Открытие и закрытие типизированного файла
Считывание из типизированного файла
Поиск в типизированном файле
Запись в типизированный файл

Нетипизированные файлы
Описание нетипизированных файлов
Назначение нетипизированного файла
Открытие и закрытие нетипизированного файла
Поиск в нетипизированном файле
Запись и чтение
Подпрограммы обработки директорий
Применимость подпрограмм обработки файлов

Программирование на языке Pascal

Подпрограммы
Объявление и описание
Объявление функции
Объявление процедуры
Описание подпрограммы
Список параметров
Возвращаемые значения
Вызов подпрограмм

Способы подстановки аргументов
Описание
Механизм передачи значения
Описание
Механизм передачи значения
Описание
Механизм передачи значения
Разграничение контекстов
Побочный эффект
Совпадение имен

Нетипизированные параметры
Явное преобразование типа
Совмещение в памяти
Открытые параметры
Открытые массивы
Открытые строки
Процедурный тип данных
Описание
Аргументы
Вызов

Программирование на языке Pascal

Динамические структуры данных
Стек
Операции
Очередь
Операции
Дек
Рекурсия
Рекурсивные подпрограммы

Пример рекурсивного алгоритма
Алгоритм решения
Стековая организация рекурсии
Ограничение глубины рекурсии
Замена рекурсивных алгоритмов итеративными
Пример сравнения рекурсивного и нерекурсивного алгоритма
Рекурсивный алгоритм
Реализация рекурсивного алгоритма
Полный перебор с отсечением
Нерекурсивный алгоритм

Реализация нерекурсивного алгоритма
Иллюстрация
Эффективность
Быстрая сортировка2
Алгоритм Быстр
Реализация алгоритма Быстр
Эффективность алгоритма Быстр

Программирование на языке Pascal

Статически выделяемая память
Адреса
Указатели
Описание указателей
Определение адреса

Разыменование
Присваивания
Сравнения
Динамически распределяемая память
Типизированные указатели
Нетипизированные указатели
Типизированные указатели
Нетипизированные указатели
Списочные структуры
Структура списков

Описание списков
Хранение списка
Обращение к элементам списка
Создание списков
Просмотр элементов списка
Удаление элементов списка
Перестройка списков
Примеры перестройки линейных списков
Реализация

Программирование на языке Pascal

Чуть-чуть истории
Графы: определения и примеры
Неориентированные графы
Ориентированные графы
Взвешенные графы

Способы представления графов
Матрица смежности
Список ребер
Списки смежности
Иерархический список
Деревья
Основные определения
Способы представления деревьев

Представление корневого дерева
Представление бинарного дерева
Примеры использования деревьев
Дерево двоичного поиска
Дерево частотного словаря
Дерево синтаксического анализа

Программирование на языке Pascal

Генерация дерева синтаксического анализа
Построение из инфиксной записи
Алгоритм Infix
Реализация

Построение из префиксной записи
Алгоритм Prefix
Реализация
Построение из постфиксной записи
Алгоритм Postfix
Реализация
Обходы деревьев и графов
Другие названия
Алгоритм PreOrder
Реализация

Прямой обход произвольного связного графа
Другие названия
Алгоритм PostOrder
Реализация
Обратный обход произвольного связного графа
Другие названия
Алгоритм SyntOrder
Реализация
Последовательность обхода
Алгоритм WideOrder

Реализация
Древесная сортировка
Алгоритм TreeSort
Реализация
Подсчет количества компонент связности
Рекурсивный алгоритм
Алгоритм КомпСвяз-Рек
Реализация
Итеративный алгоритм
Алгоритм КомпСвяз-Итер

Реализация
Сравнение алгоритмов КомпСвяз-Рек и КомпСвяз-Итер
Нахождение минимального каркаса
Алгоритм Каркас-Рек
Реализация
Алгоритм Краскала
Реализация
Нахождение кратчайших путей
Алгоритм Расст-Рек
Реализация

Итеративный алгоритм
Алгоритм Дейкстры
Реализация
Сравнение алгоритмов Расст-Рек и Дейкстры

Программирование на языке Pascal

Модульность программ
Стандартные модули языка Pascal
System
Crt
Wincrt
Printer

Winprn
Dos
Windos
Strings
Graph
Overlay
Winapi
Подключение модулей
Создание модульной программы
Структура модуля

Название
Секция внешних связей
Секция реализации
Секция инициализации
Взаимодействие модулей
Компиляция модулей
Пример модуля
Передача аргументов из командной строки

Программирование на языке Pascal

Текстовый режим
Процедуры модуля Crt
Активная область ввода / вывода
Очистка

Цвета
Звук
Позиционирование
Ожидание
Пример использования текстовой графики
Решение
Создание дружественного интерфейса
Заставка
Ввод информации
Приглашения

Защита
Меню
Вывод информации
Пример пользовательского интерфейса
Графический режим

Программирование на языке Pascal

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

Кусочки, куски и кусищи...
Спасение утопающих - дело рук самих утопающих
Отладка и тестирование
Поиск и исправление ошибок
Правила составления тестов
Оптимизация программ