Субота, 24.06.2017
Творча лабораторія

Навчальні посібники та робочі зошити з інформатики - якісно і дешево


Меню сайту
Реклама
Категорії каталогу
MS Visual C++ 2005 Express Edition [3]
Середовища програмування [7]
Особливості встановлення та використання різних середовищ програмування
MS Visual Basic 6 [1]
Microsoft Visual Basic
C# [7]
Програмування мовою C#
C++ [3]
Паскаль [4]
ЛОГО [1]
Олімпіадне програмування [0]
Головна » Статті » Програмування » Паскаль

Фрактальні квадрати - 2

Нові статті

[17.09.2015] [Інформація]
Інформатика — місток між предметами
[20.05.2015] [Інформація]
Алгоритми і виконавці: безкомп’ютерний етап
[12.04.2015] [Навчальні посібники]
Авторська концепція комплекту «Інформатика. Базовий курс. 7 клас»

Пилипчук О.П., вчитель інформатики Гаврилівської ЗОШ Теофіпольського району Хмельницької області

Фрактальні квадрати - 2

Рекурсія при побудові зображення (Паскаль)

Реалізуємо побудову фрактального малюнка засобами мови Паскаль в середовищі АЛГО. Оскільки принцип побудови детально розглянутий у статті "Фрактальні квадрати - 1", то обмежимось розглядом програми та її особливостей.



Процедура kwadrat, яка безпосередньо забезпечує побудову, отримує такі аргументи: ціле число G - для керування глибиною рекурсії, цілі числа x1,y1,x2,y2 - координати лівого верхнього та правого нижнього кутів базового прямокутника. Отже, основою візерунка може бути не лише квадрат, але й довільний прямокутник. Крім цього, до процедури введено команди для керування кольором ліній та заповнення фігур.

program kwadrat;

procedure kwadrat(G,x1,y1,x2,y2:integer);
var kX,kY:integer;
begin
  kX:=round((x2-x1)/3); {обчислення третини ширини...}
  kY:=round((y2-y1)/3);
{...та третини висоти}

  Brush( 1, G*60, 0, G*30);
{керування кольорами}
  Pen( 1, G*40, G*35,0);

  rectangle(x1+kX,y1+kY,x2-kX,y2-kY);
{центральний прямокутник}
 
  if G>0 then 
{перевірка глибини рекурсії}
  begin {рекурсивна побудова 8 менших прямокутників}
    kwadrat(G-1,x1,y1,x1+kX,y1+kY);
    kwadrat(G-1,x1+kX,y1,x2-kX,y1+kY);
    kwadrat(G-1,x2-kX,y1,x2,y1+kY);
    kwadrat(G-1,x1,y1+kY,x1+kX,y2-kY);
    kwadrat(G-1,x2-kX,y1+kY,x2,y2-kY);
    kwadrat(G-1,x1,y2-kY,x1+kX,y2);
    kwadrat(G-1,x1+kX,y2-kY,x2-kX,y2);
    kwadrat(G-1,x2-kX,y2-kY,x2,y2);
  end;
end; {
kwadrat}

begin
  kwadrat(4,0,0,486,486)
{обчислення третини ширини}
end.



Интернет реклама
Категорія: Паскаль | Додав: teachlab (21.06.2010)
Переглядів: 1959 | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть тільки зареєстровані користувачі.
[ Реєстрація | Вхід ]
Форма входу
Пошук
Друзі сайту

Підтримка
Ви можете підтримати цей проект:

WMR164778923006
WMZ277001591405

Система Orphus

Маєте свій сайт?
Заробіть на ньому грошей!


Не маєте власного сайту?
Заробіть на обміні файлами!
Статистика
Copyright Пилипчук О.П. © 2017
div id=