
- •Часть 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 Ошибки стадии выполнения
- •Ошибки ввода-вывода
- •Фатальные ошибки
- •Библиографический список
2.2 Использование записей для описания таблиц
При решении на ЭВМ широкого круга информационных задач формализуется инфологическая модель, описывающая множество взаимосвязанных объектов, каждый из которых характеризуется своими признаками. При этом формализуется имя информационного объекта и его реквизитный состав (в том числе: имя реквизита, формат реквизита, диапазон изменения, кратность в экземплярах) и связи с другими информационными объектами. Эта модель ложится в основу построения информационной внутримашинной базы данных. Используется два пути программирования алгоритмов ведения баз данных: средствами типовых СУБД (систем управления базой данных, например ACCESS), или с применением универсальных языков типа Паскаль, Фортран, Бейсик, С и других.
СУБД обеспечивает:
1. Организацию, ведение базы данных и словарей (генерация структуры базы, коррекция и удаление данных);
2. Макетный ввод данных в базу;
3. Запрос на поиск и обработку информации об объектах;
4. Макетный вывод результатов;
5. Cервисные функции СУБД (дублирование, защита, восстановление, сжатие данных и другие).
При использовании универсального языка программирования эти функции должен реализовать программист в своих программах.
Использование СУБД рекомендуется для больших разнородных баз с меняющейся в процессе эксплуатации структурой данных, словарей, справочников, входных и выходных форм. А так же в тех случаях, когда время на разработку мало, а быстродействие системы и емкость магнитных накопителей не являются критичными.
При простой структуре данных, не изменяющихся в процессе эксплуатации справочников, макетов входных/выходных форм, запросов на обработку и высоким требованиям к защите от несанкционированного доступа к данным используется второй путь, при котором, как правило, программы и данные занимают меньше памяти, а быстродействие выше.
Пример 1. Описать структуру данных, изображенных в табл. 1.
Студенты Таблица 1
№ п/п |
Номер зачетной книжки |
Фамилия И.О. |
Дата рождения |
Номер группы |
Размер стипендии, руб. |
1 |
910678 |
Петухов И.М. |
13.01.82 |
ИП-11 |
550.00 |
2 |
910679 |
Шульгин Е.Ю. |
01.12.81 |
ИП-11 |
480.00 |
3 |
910680 |
Щукин А.А. |
05.11.81 |
ИП-11 |
550.00 |
В табл. 1 представлены сведения о студентах. Каждому студенту соответствует одна строка в таблице (эти строки пронумерованы: 1, 2, 3). Эта строка на языке программистов называется записью. Запись состоит из реквизитов, расположенных в соответствующих колонках таблицы. Каждая колонка имеет вполне определенное назначение и содержит единую смысловую информацию. Колонки на языке программистов называются полями. Каждое поле имеет имя, которое используется для обращению к данному, и тип данного. Совокупность полей задает структуру записи и отражает шапку (заголовок) таблицы.
Ниже приведена модель табл. 1, описанная на языке ПАСКАЛЬ.
Type Student = record
Tab : Longint; {Номер зачетной книжки}
Fio : String[20]; {Фамилия И.О. }
Data : String[8]; {Дата рождения}
Grup : String[7]; {Номер группы}
Stepa: Real {Размер стипендии, руб. }
end;
Var Mstd: array[1..20] of Student; Std: Student;
В этом описании: Student – имя типа записи; Tab, Fio, Data, Grup, Stepa – имена полей (в синтаксисе данных типа RECORD их называют компонентами); Std – одна переменная, соответствующая сведениям об одном студенте; Mstd – массив записей, то есть сведения обо всей группе студентов, перечисленных в табл. 1. Поле номер по порядку в структуру таблицы не включено, т.к. обеспечивает макетный вывод информации на монитор или бумагу и формируется автоматически в соответствии с указанным критерием упорядочения записей в таблице.