- •Часть 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 Ошибки стадии выполнения
- •Ошибки ввода-вывода
- •Фатальные ошибки
- •Библиографический список
12 Анимация изображений
В этом разделе требуется выбрать метод анимации, разработать алгоритм и составить программу для отображения на экране графического монитора указанных в задании образов объектов и их изменений во времени.
1. Разбить экран главной диагональю. Окрасить верхнюю и нижнюю части экрана красным и синим цветами. Изобразить желтую окружность диаметром D, перемещающуюся по вертикали через центр экрана.
2. Изобразить квадрат со стороной L, перемещающийся по горизонтали на расстоянии 150 пикселей от начала координат.
3. Изобразить прямоугольник с длиной основания L и высотой H, перемещающийся по главной диагонали экрана.
4. По мере ввода с клавиатуры отображать на экране цифры по шаблону, заданному на почтовом конверте.
5. Изобразить небольшую окружность радиуса R, перемещающуюся по синусоиде с амплитудой A ≤ 100 пикселей. Траекторию движения пометить следом.
6. Изобразить на экране при помощи системы отрезков букву, после чего перенести ее в другое место экрана, повернув предварительно на - pi/3 радиан.
7. Построить правильный шестиугольник, вписанным в окружность с координатами центра х0,у0 и радиусом R. Через каждые 3 секунды поворачивать его на 10 градусов по часовой стрелке.
8. Изобразить на экране голубой отрезок толщиной в 3 пикселя длиной D, вращающийся вокруг своего конца.
9. Изобразить, как небольшая окружность перемещается по спирали из центра экрана по N виткам и внешнему радиусу R. Начальное направление спирали образует с осью ОХ угол α. X = R*cos t; Y = R*sin t, где α <t<2πn. Траекторию движения пометить следом.
10. Окружность, радиуса R, перемещается на экране справа налево, по достижении ею середины экрана она делится на два равных сектора. Левый продолжает движение справа налево, второй начинает перемещаться направо. Движение прекращается при достижении границ экрана.
11. Изобразить на экране часы с минутной и секундной стрелками, вращающимися в одном направлении.
12. Проиллюстрировать на экране монитора закон Кеплера, согласно которому планета движется по эллипсу, в одном из фокусов которого находится солнце. Параметрические уравнения для траектории движения по эллипсу х = r1 cos t, у = r2 sin t при t є [0, 2*π]. Траекторию движения планеты пометить следом.
13. Изобразить треугольник, вращающийся вокруг одной из его вершин. Номер вершины ввести с клавиатуры.
14. Изобразить на экране движение бильярдного шара в прямоугольнике без луз. Траекторию движения пометить следом.
15. Изобразить на экране пропеллер, вращающийся вокруг своей оси против часовой стрелки. С помощью нажатия клавиш 1, 2, …, 9 ускорять или замедлять скорость вращения.
16. Изобразить на экране работу светофора с тремя фонарями: красный (8 сек), желтый (3 сек), зеленый (8 сек).
17. Изобразить на экране силуэт самолета, опускающегося на поле аэродрома.
18. Изобразить на экране треугольник, который каждые 5 секунд исчезает и появляется в новом месте, меняя свой цвет. Место появления треугольника и цвет случайны.
19. Изобразить на экране салют.
20. Изобразить в центре экрана планету Сатурн с вращающимися вокруг неё кольцами.
21. Изобразить на экране силуэт самолета, взлетающего с поля аэродрома.
22. Построить правильную пятиугольную звезду , вписанную в окружность с координатами центра х0,у0 и радиусом R. Через каждые 3 секунды поворачивать ее на 10 градусов по часовой стрелке.
23. Построить правильную шестиугольную звезду, вписанную в окружность с координатами центра х0,у0 и радиусом R. Через каждые 3 секунды поворачивать ее на 10 градусов по часовой стрелке.
24. Изобразить четырехугольник, вращающийся вокруг одной из его вершин. Номер вершины ввести с клавиатуры.
25. Изобразить пятиугольник, вращающийся вокруг одной из его вершин. Номер вершины ввести с клавиатуры.
26. Окружность, радиуса R, перемещается на экране сверху вниз, по достижении ею середины экрана она делится на два равных сектора. Верхний продолжает движение вниз, а нижний начинает перемещаться направо. Движение прекращается при достижении границ экрана.
27. Окружность, радиуса R, перемещается на экране слева направо, по достижении ею середины экрана она делится на два равных сектора. Первый продолжает движение направо, а второй начинает перемещаться наверх. Движение прекращается при достижении границ экрана.
28. Окружность, радиуса R, перемещается на экране справа налево, по достижении ею середины экрана она делится на два равных сектора. Первый продолжает движение справа налево, а второй начинает перемещаться вниз. Движение прекращается при достижении границ экрана.
29. Окружность, радиуса R, перемещается на экране снизу вверх, по достижении ею середины экрана она делится на два равных сектора. Первый продолжает движение вверх, второй начинает перемещаться направо. Движение прекращается при достижении границ экрана.
30. Окружность, радиуса R, перемещается на экране сверху вниз, по достижении ею середины экрана она делится на два равных сектора. Левый продолжает движение справа налево, а правый начинает перемещаться направо. Движение прекращается при достижении границ экрана.
