Программирование на языке 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
Советы по технологии написания быстро отлаживаемых программИмена, имена, имена...
Кусочки, куски и кусищи...
Спасение утопающих - дело рук самих утопающих
Отладка и тестирование
Поиск и исправление ошибок
Правила составления тестов
Оптимизация программ