
- •Часть 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 Ошибки стадии выполнения
- •Ошибки ввода-вывода
- •Фатальные ошибки
- •Библиографический список
1.2.1 Интерпретация объектов
Интерпретация объектов может быть выполнена с помощью таблицы имен. Таблица имен состоит из трех граф: имени объекта в задаче, имени объекта в программе, типа объекта. В таблицу включаются сведения обо всех объектах, используемых в задаче.
Имя объекта в задаче |
Имя объекта в программе |
Тип объекта |
|
A |
Вещественное число |
|
B |
Вещественное число |
|
C |
Вещественное число |
|
P |
Вещественное число |
|
S |
Вещественное число |
|
P2 |
Вещественное число |
Примечание. Вещественные величины – это величины с дробной частью. Целые величины – это величины, не имеющие дробной части: натуральные числа, 0, и числа противоположные натуральным числам.
1.2.2 Вычислительная схема
Вычислительная схема описывает порядок действий, который необходимо выполнить для получения результата из исходных данных. Вычислительная схема – один из способов записи алгоритма.
Алгоритм – описание порядка действий для решения задач.
Требования, предъявляемые к алгоритму для решения задачи на ЭВМ.
Определенность – при одних и тех же исходных данных алгоритм должен давать один и тот же результат. Алгоритм должен быть точен, общепонятен и должен исключать возможность произвольного толкования.
Массовость – применимость алгоритма к целому классу однотипных задач (например, при различных исходных данных).
Результативность – алгоритм всегда должен приводить к получению результата.
Конечность (финитность алгоритма) – алгоритм должен приводить к результату за конечное число шагов.
Дискретность – алгоритм состоит из отдельных деталей (шагов алгоритма), а каждый шаг может быть разбит на под шаги (более мелкие детали).
1.2.3 Вычислительная схема решаемой задачи
Ш1. Ввод значений
Ш2. Вычислить
Ш3. Вычислить
Ш4. Вычислить
Ш5. вывод значений
Ш6. конец.
1.2.4 Составление блок-схемы
Блок-схема – это один из известных способов наглядного графического изображения алгоритма. Блок-схема состоит из отдельных блоков, соединяемых линиями, которые называются линиями потока информации. Наиболее часто используемые элементы блок-схем и их обозначения приведены в следующей таблице.
Таблица 1.1 Элементы блок-схем
Наименование |
Обозначение |
Пояснения |
Процесс |
|
Вычислительные действия или последовательность вычислительных действий |
Принятие решения |
|
Проверка условия
|
Обмен информацией |
|
Ввод и вывод данных
|
Предопределенный процесс |
|
Вычисления по стандартной или пользовательской подпрограмме |
Блок объявлений (декларативный блок)
|
|
Описание используемых величин
|
Блоки «Начало» и «Конец» |
|
- Пуск - Останов |
Линии потока |
|
Стрелки, связывающие блоки
|
Соединитель |
|
Разрыв линий потока
|
Приведем правила составления блок-схем алгоритмов:
Каждый блок имеет единственную точку входа, кроме блока начала, который не имеет входа.
Каждый блок имеет единственную точку выхода, кроме
блока конца, который не имеет выхода;
условного блока, который имеет два выхода.
Выходы условного блока соответствуют исходам "да" или "нет".
Линии, идущие на вход некоторого блока, могут соединяться, что соответствует переходу на один блок из нескольких других блоков.
Линия, исходящая из выходной точки блока, не может разветвляться на несколько направлений. Этим исключается неоднозначность переходов между блоками.
Блок-схема для решаемой задачи приведена на рис. 1.1.