
- •Часть 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 Ошибки стадии выполнения
- •Ошибки ввода-вывода
- •Фатальные ошибки
- •Библиографический список
11 Компьютерная графика
В этом разделе требуется разработать алгоритм и составить программу для отображения на экране графического монитора геометрических фигур, описанных в заданиях. Типы штриховки можно использовать стандартные, но лучше создать свои (пользовательские), способами, предложенными ниже в части III настоящего практикума.
1. По заданным значениям координат центра окружностей, радиуса R самой внутренней окружности и числа окружностей N нарисовать концентрические окружности и закрасить образуемые ими кольца разными цветами.
2. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в правом верхнем углу так, чтобы последняя дуга проходила через левый верхний и правый нижний углы прямоугольника. Площади между дугами покрыть разным типом штриховки.
3. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран и разбить ее на N закрашенных разным цветом секторов.
4. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в левом нижнем углу так, чтобы последняя дуга проходила через левый верхний и правый нижний углы прямоугольника. Площади между дугами покрыть разным типом штриховки.
5. По данным значениям координат центра эллипса, его эксцентриситета и числа N построить эллипс с максимальным значением длин полуосей, целиком помещающийся в экран, разбить его на N закрашенных разным цветом секторов.
6. По заданным значениям координат левого верхнего и правого нижнего углов прямоугольника нарисовать N лучей, выходящих из правого нижнего угла и делящих его на равные части. Площади между лучами и сторонами прямоугольника заштриховать разными типами штриховки.
7. По заданным значениям координат точки пересечения диагоналей квадрата, длины его стороны А и числа N построить N вложенных друг в друга квадратов так, чтобы самый внутренний имел сторону длиной А, а самый внешний помещался в экран. Пространство между границами квадратов раскрасить разными цветами.
8. По заданным значениям координат левого верхнего и правого нижнего углов прямоугольника нарисовать N лучей, выходящих из левого верхнего угла и делящих его на равные части. Площади между лучами и сторонами прямоугольника заштриховать разным типом штриховки.
9. По заданным значениям координат точки пересечения диагоналей прямоугольника, длин его сторон А и В, числа N построить N вложенных друг в друга подобных прямоугольников так, чтобы самый внутренний имел стороны А и В, а самый внешний помещался в экран. Пространство между границами прямоугольников закрасить разными цветами.
10. По заданным значениям координат левого верхнего и правого нижнего углов прямоугольника нарисовать N лучей, выходящих из правого верхнего угла и делящих его на равные части. Площади между лучами и сторонами прямоугольника заштриховать разным типом штриховки.
11. По заданным значениям координат центра и числу N нарисовать правильный N-угольник со стороной мах длины, целиком размещающуюся на экране. Полученные между диагоналями треугольники закрасить разными цветами.
12. По заданным значениям числа N и координат центра нарисовать правильный N-угольник со стороной мах длины, целиком помещающийся в экран. Полученные между диагоналями треугольники заштриховать разными типами штриховки.
13. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную пятиугольную звезду. Получаемые треугольники закрасить разными цветами.
14. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную пятиугольную звезду. Получаемые треугольники заштриховать разными типами штриховки.
15. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную шестиугольную звезду. Получаемые треугольники закрасить разными цветами.
16. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в левом верхнем углу, так чтобы последняя дуга проходила через правый верхний и левый нижний углы прямоугольника. Площади между дугами закрасить разными цветами.
17. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в правом верхнем углу так, чтобы последняя дуга проходила через левый верхний и правый нижний углы прямоугольника. Площади между дугами закрасить разными цветами.
18. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в правом нижнем углу так, чтобы последняя дуга проходила через правый верхний и левый нижний углы прямоугольника. Площади между дугами закрасить разными цветами.
19. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в левом нижнем углу так, чтобы последняя дуга проходила через левый верхний и правый нижний углы прямоугольника. Площади между дугами закрасить разными цветами.
20. Для заданных координат левого верхнего и правого нижнего углов прямоугольника нарисовать N дуг концентрических эллипсов с центром в левом верхнем углу так, чтобы последняя дуга проходила через правый верхний и левый нижний углы прямоугольника. Площади между дугами покрыть разным типом штриховки.
21. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную восьмиугольную звезду. Получаемые треугольники закрасить разными цветами.
22. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную восьмиугольную звезду. Получаемые треугольники заштриховать разными типами штриховки.
23. По заданным значениям координат центра построить окружность мах радиуса, целиком помещающуюся в экран, нарисовать вписанную правильную шестиугольную звезду. Получаемые треугольники заштриховать разными типами штриховки.
24. По заданным значениям координат центра окружностей, радиуса R самой внутренней окружности и числа окружностей N нарисовать концентрические окружности и заштриховать образуемые ими кольца разными типами штриховки.
25. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран и разбить ее на N заштрихованных разными типами штриховки секторов.
26. По заданным значениям координат точки пересечения диагоналей прямоугольника, длин его сторон А и В, числа N построить N вложенных друг в друга подобных прямоугольников так, чтобы самый внутренний имел стороны А и В, а самый внешний помещался в экран. Пространство между границами прямоугольников покрыть разными типами штриховки.
27. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран и разбить ее на N закрашенных разным цветом полос одинаковой ширины.
28. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран и разбить ее на N заштрихованных разными типами штриховки полос равной ширины.
29. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран, затем построить в ней правильный вписанный треугольник, после этого на серединах сторон получившегося треугольника построить треугольник со сторонами – медианами первого треугольника, затем аналогичную процедуру повторить для второго тругольника, и т.д., процедуру построения треугольников повторить N раз. Получившиеся треугольники раскрасить разными цветами.
30. По заданным значениям координат центра окружности и числа N, построить окружность максимального радиуса, целиком помещающуюся в экран, затем построить в ней правильный вписанный треугольник, после этого на серединах сторон получившегося треугольника построить треугольник со сторонами – медианами первого треугольника, затем аналогичную процедуру повторить для второго тругольника, и т.д., процедуру построения треугольников повторить N раз. Получившиеся треугольники зашриховать разными типами штриховки.