
- •Часть I. Этапы решения задачи на компьютере 7
- •Часть II. Задачи. Алгоритмизация и программирование 15
- •Часть III. Теоретические положения и примеры программ 188
- •Введение
- •Часть I. Этапы решения задачи на компьютере
- •1.1 Постановка и формализация условий задачи
- •1.2 Алгоритмизация задачи
- •1.2.1 Интерпретация объектов
- •1.2.2 Вычислительная схема
- •1.2.3 Вычислительная схема решаемой задачи
- •1.2.4 Составление блок-схемы
- •1.2.5 Трассировка
- •1.3 Составление программы на языке Паскаль
- •1.4 Подготовка текста программы на машинном носителе
- •1.5 Трансляция (компиляция) программы
- •1.6 Компоновка (редактирование связей)
- •1.7 Запуск программы на исполнение
- •1.8 Анализ результатов
- •Часть II. Задачи. Алгоритмизация и программирование классических вычислительных процессов
- •1 Линейный вычислительный процесс
- •1.1 Программирование формул
- •1.2 Формализация и алгоритмизация задачи
- •2 Разветвляющийся вычислительный процесс
- •2.1 Программирование формул
- •2.2 Формализация и алгоритмизация графических задач
- •2 .3 Параметрические задачи
- •3 Циклические вычислительные процессы
- •3.1 Арифметический цикл
- •Вычисление произведения n сомножителей.
- •Табулирование функции на конечном отрезке.
- •3.2 Итерационный цикл
- •Вычисление предела последовательности с заданной точностью.
- •Вычисление суммы бесконечного ряда с заданной точностью.
- •3.3 Арифметические циклы с рекуррентными соотношениями
- •3.4 Итерационные циклы с рекуррентными соотношениями
- •3.5 Двойной вложенный цикл
- •4. Пользовательские алгебраические функции
- •4.1 Применение функции в линейных и разветвляющихся вычислительных процессах
- •4.2 Использование функции в циклических процессах
- •4.3 Табуляция функции
- •5 Одномерные числовые массивы
- •5.1 Работа с компонентами массива
- •5.2 Работа с векторами
- •6 Двумерные числовые массивы
- •6.1 Работа с элементами массива
- •6.2 Работа с векторами и матрицами
- •6.3 Использование процедур и функций для работы с массивами
- •7 Работа со строками
- •7.1 Анализ и преобразование текста строки
- •7.2 Работа со строковыми функциями и процедурами
- •8 Работа со списками
- •8.1 Стеки
- •8.2 Очереди
- •8.3 Бинарные деревья
- •9 Работа с текстовыми файлами
- •10 Работа с файлами записей
- •11 Компьютерная графика
- •12 Анимация изображений
- •Часть III. Теоретические положения и примеры программ
- •1 Вычисление определителя квадратной матрицы
- •2.2 Использование записей для описания таблиц
- •Работа с полями записи
- •Использование оператора with … do
- •Ввод данных в массив записей с клавиатуры
- •2.3 Вложение записей
- •Присвоение значений полям вложенных записей
- •3 Файлы записей
- •3.1 Структура файла
- •3.2 Встроенные процедуры и функции обработки файлов
- •3.3 Организация последовательного доступа к записям файла
- •3.4 Организация прямого доступа к компонентам файла
- •3.5 Создание индексного файла
- •3.6 Работа с файлом произвольного доступа
- •Просмотр файла
- •Редактирование записей
- •Изменение структуры основного файла
- •Использование клавиш для управления программой
- •Удаление записи из файла
- •Добавление записи в файл
- •3.7 Информационное взаимодействие текстовых файлов и файлов записей
- •Экспорт данных. Копирование информации из файла записей в текстовый файл
- •Импорт данных. Копирование информации из текстового файла в файл записей
- •3.8 Запросы к файлам записей
- •Запрос с группировкой
- •4 Графическое программирование
- •4.1 Управление видеорежимом
- •Инициализация видеорежима. Процедура InitGraph
- •Закрытие видеорежима. Процедура CloseGraph
- •Создание графического окна. Процедура SetViewPort
- •Закрытие графического окна. Процедура ClearDevice
- •4.2 Построение графических фигур
- •Построение прямой линии. Процедуры SetColor, SetLineStyle, Line, LineRel, LineTo
- •Построение прямоугольника. Процедуры Rectangle и Bar
- •Построение окружности. Процедура Circle
- •Построение дуги окружности. Процедура Arc
- •Построение эллипса. Процедуры Ellipse, FillEllipse
- •Построение сектора. Процедуры PieSlice, Sector
- •4.3 Корректировка изображения Процедуры GetAspectRatio, SetAspectRatio
- •4.4 Создание пользовательского шаблона заливки
- •Заливка замкнутой области. Процедура FloodFill
- •Построение и окраска произвольного рисунка на примере замка
- •Построение и заливка правильного многоугольника
- •4.5 Работа с текстом
- •Выбор стандартного шрифта. Процедура SetTextStyle
- •Коррекция стандартного шрифта. Процедура SetUserCharSize
- •Вывод числовых величин на экран
- •5 Анимация изображений
- •5.1 Дублирования спрайта цветом фона
- •5.2 Манипулирование фрагментами изображения
- •5.3 Использование страниц видеопамяти
- •6 Сообщения об ошибках
- •6.1 Ошибки стадии компиляции
- •6.2 Ошибки стадии выполнения
- •Ошибки ввода-вывода
- •Фатальные ошибки
- •Библиографический список
Часть III. Теоретические положения и примеры программ
1 Вычисление определителя квадратной матрицы
Определение. Определителем
(детерминантом) квадратной матрицы
(таблицы) с
вещественными или комплексными числами
является величина D:
Значение D находится как
сумма n! членов
,
каждый из которых соответствует одному
из n! различных упорядоченных
множеств
,
полученных r попарными
перестановками (транспозициями) элементов
из множества 1, 2, …, n. Число
n называют порядком
определителя.
1.1 Вычисление определителя второго порядка
.
1.2 Вычисление определителя третьего порядка
Определитель третьего порядка
вычисляется по следующему правилу:
.
1.3 Вычисление определителя четвертого порядка
Определитель четвертого порядка вычисляется по следующему правилу:
.
.
2 ЗАПИСИ, ТИП ДАННЫХ RECORD
2.1 Структура записи
В описании данных и связей между ними используют понятия: запись логическая и запись физическая. Физическое описание данных определяет способ их хранения во внешней памяти компьютера. Логическое описание данных указывает на то, в каком виде эти данные представляются прикладному программисту или пользователю данных. В этом разделе и в последующих под записью будем понимать - ЛОГИЧЕСКУЮ запись, или структурную переменную, состоящую из нескольких компонент, доступ к которым осуществляется по имени. Компоненты записи (иногда их называют ПОЛЯМИ, или элементами) могут быть разных типов: скалярные переменные, массивы, записи, множества, указатели.
Запись является фундаментальным понятием, основой информационной модели предметной области и широко используется при описании структур данных. Запись характеризуется именем (идентификатором) и содержит произвольную комбинацию полей, каждое из которых отражает соответствующий реквизит формализуемого информационного объекта.
Эти поля (компоненты) могут описываться данными разных типов, именно поэтому записи иногда называют комбинированными типами.
Описание записи в разделе TYPE включает:
< имя типа записи > = RECORD { список полей }
< имя-компоненты 1 > : < тип компоненты 1 >;
< имя-компоненты 2 > : < тип компоненты 2 >;
. . .
< имя-компоненты L > : < тип компоненты L >
END;
Имя типа записи - представляет собой идентификатор, который может использоваться при конструировании новых типов или описания типов переменных в разделе VAR. Имена компонент записи соответствуют реквизитам информационного объекта, а типы компонент выбираются на основании форматов реквизитов, диапазонов изменения их значений. Кратность в экземплярах обеспечивается использованием регулярных структур ARRAY выбранных типов данных. Связи с другими объектами могут быть реализованы указателями (ссылками), включаемыми в состав компонент рассматриваемой записи. Запись в целом и каждая ее компонента имеют свои имена, к которым можно обращаться в программе.
Число компонент L фиксировано и в процессе выполнения программы меняться не может. Имя компоненты должно быть уникальным только в пределах записи. Обращение к значению поля осуществляется через составное имя путем указания через точку имени переменной типа запись и имени поля этой записи.