- •Часть 2
- •Содержание
- •Введение
- •Методы сортировок
- •Линейный выбор
- •Линейный выбор с обменом
- •Линейный выбор с подсчетом
- •Парный обмен
- •Метод стандартного обмена (пузырька)
- •Метод просеивания
- •Метод линейной вставки
- •Множества
- •Операции над множествами
- •Процедуры работы с множествами
- •Фиксированные записи
- •Записи с вариантами
- •Доступ к файлам
- •Логические устройства
- •Процедуры для работы с любыми файлами
- •Функция для работы с любыми файлами
- •Типизированные файлы
- •Процедуры для работы с типизированными файлами
- •Функции для работы с типизированными файлами
- •Порядок создания файла
- •Порядок использования файла
- •Порядок расширения файла за счет внесения новых компонент
- •Порядок замены содержимого записи
- •Текстовые файлы
- •Процедуры для работы с текстовыми файлами
- •Функции для работы с текстовыми файлами
- •Порядок создания текстового файла
- •Порядок использования текстового файла
- •Порядок корректировки текстового файла
- •Нетипизированные файлы
- •Динамические структуры данных Динамическая память
- •Адреса и указатели
- •Объявление указателей
- •Структура динамической памяти
- •Процедуры и функции для работы с динамической памятью
- •Выделение и освобождение динамической памяти
- •Использование указателей для обработки массивов
- •Использование указателей для работы со списками
- •Процедуры и функции работы с графикой Инициализация графического режима
- •Координаты окна, страницы
- •Линии и точки
- •Многоугольники
- •Дуги, окружности, эллипсы
- •Краски, палитра, заполнение
- •Вывод текста
- •Сохранение и выдача изображений
- •Способы создания движущихся изображений
- •Примеры программ работы с графикой
- •1. Построение мозаичных изображений.
- •2. Построение графика функции.
- •3. Построение круговых и столбчатых диаграмм.
- •4. Построение вероятностных изображений.
- •5. Построение фрактальных изображений.
- •Литература
- •Программирование на языке Pascal. Практическое пособие в двух частях. Часть 2.
- •246019 Г.Гомель, ул. Советская, 104
- •246019 Г.Гомель, ул. Советская, 104
5. Построение фрактальных изображений.
Фрактал – это самоподобный объект, у которого любая меньшая часть похожа на целый объект. Обычно фрактальные фигуры строятся с помощью рекурсивных подпрограмм. Простейшим примером фрактальной фигуры является снежинка:
Алгоритм рисования снежинки: из одной точки – центра вырастают k кристалликов-отрезков длины r, свободный конец каждого из которых служит центром новой снежинки с длиной кристаллика–отрезка, в 3 раза меньшей r. Указанный процесс продолжается n раз. Выше показаны снежинки при n=1,2 и k=6.
Для построения снежинок введем рекурсивную процедуру, параметрами которой будут координаты центра снежинок x0, y0, радиус– длина r и глубина рекурсии n. Для размещения рисунка в центре экран начальный радиус определим по формуле: , полагая dim=240, k=1/3. Получим: k=160/(1–1/3n). Координаты концов отрезка (x,y) будем находить, используя параметрическое задание уравнения окружности со смещением на заданный угол:
.
Чтобы величины и не вычислялись в цикле многократно, запомним их значения в массивах C и S.
Program Sneg;
Uses Graph;
Const
k=6; {количество кристаллов}
n=5; {глубина рекурсии}
t=2*Pi/k; {угол поворота}
Var
Driver,Mode,I :Integer;
C,S :array[1..k] of Real;
Procedure Snow(x0,y0,r,m:Integer);
Var
x,y,i:Integer;
Begin
For i:=1 to k do
begin
x:=x0+Round(r*C[i]);
y:=y0-Round(r*S[i]);
Line(x0,y0,x,y);
If m>1 then Snow(x,y,r div 3,m-1)
end;
End;
Begin
Driver:=Detect;
InitGraph(Driver,Mode,'');
For i:=1 to k do
begin
C[i]:=Cos(i*t);
S[i]:=Sin(i*t);
end;
Snow(GetMaxX div 2,GetMaxY div 2,
Round(160/(1-1/(Exp(n*Ln(3))))),n);
ReadLn;
CloseGraph;
End.
Литература
Бородич Ю.С. и др. Паскаль для персональных компьютеров: Справ. Пособие / Ю.С.Бородич, А.Н.Вальвачев, А.И.Кузьмич. – Мн.: Выш. шк.: БФ ГИТМП «НИКА», 1991. – 365 с.
Вальвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для персональных ЭВМ ЕС: Справ. пособие. – Мн.: Выш.шк., 1989. – 223 с.: ил.
Офицеров Д.В. и др. Программирование на персональных ЭВМ: Практикум: Учеб. Пособие / Д.В.Офицеров, А.Б. Долгий, В.А.Старых; Под общ. ред. Д.В.Офицерова. – Мн.: Выш.шк., 1993. – 256 с.
Немнюгин С.А. Turbo Pascal: практикум – СПб: Питер, 200. – 256 с.:ил.
Пантелеева З.Т. Графика вычислительных процессов: Учеб.пособие. – М.: Финансы и статистика, 1983. – 167 с., ил.
Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М.: «Нолидж», 1997. – 616 с., ил.
Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. И доп. – М.: ИНФРА – М, 1997. – 640 с.: ил.
Учебное издание
Ружицкая Елена Адольфовна
Карасёва Галина Леонидовна
Орлов Владимир Васильевич
Смородин Виктор Сергеевич
Дёмова Тамара Максимовна
Богданова Татьяна Григорьевна
Программирование на языке Pascal. Практическое пособие в двух частях. Часть 2.
В авторской редакции
Подписано в печать 01.10.2005 г. (№132). Формат издания 60x84 1/16.
Бумага писчая №1. Печать на ризографе. Гарнитура Таймс.
Усл.п.л. 5,4. Уч-изд.л. 4,3. Тираж 20 экз.
Учреждение образования
«Гомельский государственный университет
имени Франциска Скорины»,