ЛИСТИНГ ПРОГРАММЫ, Рекурсивная программа построения снежинки, Пример рекурсивной программы построения снежинки - Работа с языком Турбо Паскаль
Рекурсивная программа построения снежинки
Написать программу, строящую на экране изображение:
Изображение строится по следующему правилу: строится окружность с заданным радиусом r. Затем на диаметрально противоположных точках окружности ( x - r и x+ r)строится вновь окружность меньшего радиуса ( r=3 r/5). Для каждой меньшей окружности на диаметрально противоположных точках вновь строится окружность меньшего радиуса, и т. д., пока радиус не уменьшится до 10.
Program recurs;
Uses graph;
Var x, y,r, d,m:integer;
Procedure ris(x, y,r:integer);
Var i:integer;
Begin
If r<10 then exit;
Circle(x, y,r);
For i:=1 to 1000 do; { просто цикл задержки }
Ris(x+r, y,r*3 div 5);
Ris(x-r, y,r*3 div 5);
End ;
Begin {начало основной программы}
D:=detect;
Initgraph(d, m,"e:pgi");
X:=320;
Y:=240;
R:=120;
Ris(x, y,r);
Readln ;
End.
Пример рекурсивной программы построения снежинки
Как видно из рисунка, здесь опять повторяются одни и те же фрагменты. Построение выполняется так: на окружности заданного радиуса r берется 6 равноотстоящих точек (начиная от угла в 0 0, с шагом?/3), из каждой точки к центру окружности проводятся радиусы. Затем каждая из этих точек выступает центром новой, меньшей окружности с радиусом r=2 r/5. На каждой меньшей окружности вновь берется 6 равноотстоящих точек, из которых строятся радиусы к центру, и т. д., пока радиус не станет меньше или равен 1.
Program sneg;
Uses graph, crt;
Var
X, y,r, d,m:integer;
Procedure ris(x, y,r:integer);
Var
X1,y1,t:integer;
Begin
If r<=1 then begin putpixel(x, y,15);exit end;
For t:=0 to 6 do
Begin
X1:=x+trunc(r*cos(t*pi/3));
Y1:=y+trunc(r*sin(t*pi/3));
Line(x, y,x1,y1);
Ris(x1,y1,r*2 div 5);
Delay(500);
End;
End;
Begin
D:=detect;
Initgraph(d, m,"e:pgi");
X:=320;
Y:=240;
R:=80;
Ris(x, y,r);
Readln;
End.
Похожие статьи
-
Пример программы построения анимации - Работа с языком Турбо Паскаль
Unit unit1; Interface uses graph; Type arpo = array [1..4] of PointType; {хранит коорд. Вершин прямоугольника} { Справка: PointType = Record X, Y :...
-
Дуги, окружности, эллипсы - Работа с языком Турбо Паскаль
Процедура Circle. Вычерчивает окружность. Заголовок: Procedure Circle(X, Y: Integer; R: Word); Здесь X, Y - координаты центра; R - радиус в пикселях....
-
Методика анимации - Работа с языком Турбо Паскаль
Эффект анимации достигается быстрым чередованием кадров постепенно изменяемого изображения. При этом нежелательно формировать каждый кадр целиком,...
-
Сохранение и выдача изображений - Работа с языком Турбо Паскаль
Функция ImageSize. Возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения. Заголовок: Function ImageSize(X1,...
-
Краски, палитры, заполнения - Работа с языком Турбо Паскаль
Процедура SetCOlor. Устанавливает текущий цвет для вводимых линий и символов. Заголовок: Procedure SetColor(Color: Word); Здесь Color - текущий цвет....
-
Линии и точки, Многоугольники - Работа с языком Турбо Паскаль
Процедура PutPixel. Выводит заданным цветом точку по указанным координатам. Заголовок: Procedure PutPixel(X, Y: Inteder; Color: word); Здесь X, Y -...
-
Turbo Pascal, О Turbo Pascal, История - Работа с языком Турбо Паскаль
Среда разработки Turbo Pascal 7.1 (Рис 1) О Turbo Pascal Turbo Pascal (произносится "турбо паскаль") -- Интегрированная среда разработки программного...
-
ФУНКЦИИ И ПРОЦЕДУРЫ, Модуль Graph, Координаты, окна, страницы - Работа с языком Турбо Паскаль
Модуль Graph Модуль Graph Турбо Паскаля содержит около пятидесяти различных процедур и функции, предназначенных для работы с графическим экраном. В этом...
-
ВВЕДЕНИЕ - Работа с языком Турбо Паскаль
Язык турбо паскаль Что такое язык программирования, для чего нужен. Для чего используется графика. Целью данной курсовой работы является рассмотрение...
-
Рекурсивные графические построения - Разработка Windows-приложений в среде Borland Delphi
Цель Работы: Получить навыки использования рекурсии. Пояснения к работе Рекурсивным называется объект, частично состоящий или определяемый с помощью...
-
РАБОТА ПРОГРАММЫ, ЛИСТИНГ И ТЕСТИРОВАНИЕ - Основы программирования в операционной системе Unix
После входа в операционную систему Mandriva Mageia нужно перейти в консоль, затем в директорию с программой - командой "cd KR". Чтобы просмотреть список...
-
Цель работы - Разработка компилятора подмножества языка Паскаль на язык Ассемблера
Изучение составных частей, основных принципов построения и функционирования компиляторов. Создание компилятора с заданного подмножества языка Паскаль с...
-
Тестирование, Анализ работы - Разработка программы на языке C++, реализующей игру "Морской бой"
Чтобы проверить корректность работы программы нужно провести тестирование. Бой с противником продолжается до полной победы, т. е. пока не будут...
-
Формулировка задания: Составьте программу подсчета числа тех гласных букв в слове X, что не используются в написании слова Z. Описание входных/выходных и...
-
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ - Типы данных в программе Турбо Паскаль
В Турбо Паскале допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом: <индификатор> :...
-
ТИПЫ ДАННЫХ, ПРОСТЫЕ ТИПЫ - Типы данных в программе Турбо Паскаль
Любые данные, т. е. константы, переменные, значения функций или выражения, в Турбо Паскале характеризуются своими типами. Тип определяет множество...
-
Таблица сопротивлений некоторых термометров сопротивления Температурав °C Pt100 Pt1000 Typ: 404 Typ: 501 -50 80, 31 803, 1 -40 84, 27 842, 7 -30 88, 22...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
-
Оценка качества работы системы - Роль ключевых предложений в построении текста
Для того чтобы оценить качество работы системы, с ее помощью были составлены рефераты 40 текстов. Среди них было 20 текстов публицистического стиля...
-
Граф переходов конечного автомата лексического анализатора Исходная КС-грамматика G({prog, end., if, else, then, begin, end, while, do, or, and, not,...
-
Процесс симуляции работы системы заканчивается выводом отчета о результатах моделирования. Основные характеристики модели: START TIME END TIME BLOCKS...
-
Листинг программы. Описание VRazmer VARIABLE 250+INT(RN1#250/350);размер от 250 до 350 INITIAL X$XTerminal,1;какой терминал обслуживается INITIAL...
-
СТРОКИ, ФАЙЛЫ - Типы данных в программе Турбо Паскаль
Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR,...
-
ЗАПИСИ, МНОЖЕСТВА - Типы данных в программе Турбо Паскаль
Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи...
-
ВЕЩЕСТВЕННЫЕ ТИПЫ, СТРУКТУРИРОВАННЫЕ ТИПЫ, МАССИВЫ - Типы данных в программе Турбо Паскаль
В отличие от порядковых типов, значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляется в ПК абсолютно точно, значения...
-
ПОРЯДКОВЫЕ ТИПЫ, Логический тип - Типы данных в программе Турбо Паскаль
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон. Целые типы. Диапазон возможных значений целых типов зависит от...
-
Программа на языке Бейсик - Составление программы для решения системы уравнений
10 REM 20 DIM A(20,20),B(20),X(20) 30 READ N 40 FOR I=1 TO N: FOR J=1 TO N 60 READ A(I, J) : NEXT J 80 READ B(I) : NEXT I 90 REM Vibor elementa 100 FOR...
-
Рекурсивные процедуры и функции - Структурирование программы
Подпрограмма, вызывающая саму себя, называется рекурсивной подпрограммой. При каждом новом обращении к подпрограмме параметры, которые она использует,...
-
Вычислить приближенное значение определенного интеграла с подынтегральной функцией f(x) заданным методом и проверить точность вычислений по формуле...
-
СООБЩЕНИЯ ОПЕРАТОРУ, Сообщение о программе, Листинг программы - Руководство оператора
Сообщение о программе Программа "AdressBook. ехе" выдает сообщение о программе, при выборе в главном меню пункта "О программе" во вкладке "Помощь"...
-
ПРОЦЕДУРНЫЕ ТИПЫ, ТИП ОБЪЕКТ - Типы данных в программе Турбо Паскаль
Процедурные типы -- это нововведение фирмы Borland (в стандартном Паскале таких типов нет). Основное назначение этих типов -- дать программисту гибкие...
-
F ( 0,"заключение : об1", [ 3, -1 ] ). "промежуточное заключение", ... "вопрос о свойствах", ... Список подкрепляющих фактов F ( 0, "об2", [ 1,2 ] ). F (...
-
Методология Все тесты будут необходимо провести на разных размерах базы данных, чтобы увидеть, как классические JOINы скалируются в сравнении с...
-
На чем основана работа программы - Rational Rose для разработчиков
Итак, от общих тем перейдем непосредственно к тому, что умеет делать CASE Rational Rose. Являясь объектно-ориентированным инструментом моделирования,...
-
Алгоритм работы декодера кода Рида - Маллера будем разрабатывать на основе уже приведенных выше уравнений. Алгоритм приведен на рисунке 12. В начале...
-
Схема работы, Заключение, Список литературы - Различные виды программ для Multi-Touch столов
Завершив создание прототипа приложения было настроено соединение с TUIO. Схема работы показана на рис. 4. Рис. 4. Схема соединения приложения с TUIO...
-
МОДУЛИ - Язык программирования Паскаль
Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться...
-
В процессе разработки интерфейса уделялось большое внимание его упрощению для того, чтобы пользователь с минимальными знаниями и навыками в работе с...
-
Основная программа Построение интерполяционного многочлена Нахождение максимума функции методом дихотомии Вычисление значения заданной функции Создание и...
-
Установка и системные требования приложения Для установки программы необходимо зайти в папку "Файловый менеджер [Setup]", и запустить файл "setup. exe"....
ЛИСТИНГ ПРОГРАММЫ, Рекурсивная программа построения снежинки, Пример рекурсивной программы построения снежинки - Работа с языком Турбо Паскаль