Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 12:32   #1
archi1121
 
Регистрация: 05.04.2011
Сообщений: 3
По умолчанию Последовательность Мандельброта на Паскале

Задача:
Множество Мандельброта строится в прямоугольнике с
координатами xmin= -2.25, xmax=0.75, ymin=-1.5, ymax=1.5 (т. е.
пиксел с координатами (0,0) представляет комплексное число -2.25
+ i*1.5 ). Программа должна позволять пользователю менять
координаты вершин прямоугольника, чтобы можно было
изобразить в увеличенном виде отдельные фрагменты множества
Мандельброта.
Так как множество Мандельброта строится достаточно
медленно, то необходимо предусмотреть возможность записи
создаваемого изображения в файл. Такой файл просто хранит цвета
всех пикселей экрана. Необходимо так же вспомогательная программа, которая сразу же извлечет предварительно созданное
изображение из файла и изобразит на экране.

Вот моя прога,спс нету за неё)))(знаю что не правильно но помогите плизз):
program SSSsssSSS;
uses CRT, Graph;
const
maxcol = 640;
maxrow = 200;
max_colors = 16;
max_iterations = 512;
max_size = 4;
var
Q : array[0..349] of real;
Xmax,Ymax,Ymin,Xmin : real;
P,deltaP,deltaQ,X,Y,Xsquare,Ysquare : real;
i,color,row,col,GraphDriver,GraphMo de : integer;
ch : char;
begin
Xmax := 0.75;
Xmin := -2.25;
Ymax := 1.5;
Ymin := -1.5;
GraphDriver := EGA;
GraphMode := EGALo;
InitGraph(GraphDriver,GraphMode ,' ' );
deltaP := (Xmax - Xmin)/(maxcol);
deltaQ := (Ymax - Ymin)/(maxrow);
Q[0] := Ymax;
for row := 1 to maxrow do
Q[row] := Q[row-1] - deltaQ;
P := Xmin;
for col := 0 to maxcol do
begin
if Keypressed then
exit;
for row := 0 to maxrow do
begin
X := 0.0;
Y := 0.0;
Xsquare := 0.0;
Ysquare := 0.0;
color := 1;
repeat
Xsquare := X*X;
Ysquare := Y*Y;
Y := 2*X*Y + Q[row];
X := Xsquare - Ysquare + P;
inc(color);
until (color>=max_iterations) or (Xsquare + Ysquare >= max_size);
PutPixel(col,row,(color MOD max_colors));
end;
P := P + deltaP;
end;
ch := ReadKey;
end.

Последний раз редактировалось archi1121; 25.12.2011 в 12:37.
archi1121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. Множество Мандельброта и Жюлиа KEnt Помощь студентам 8 07.12.2011 23:54
последовательность -=Дрюня=- Помощь студентам 5 15.11.2011 14:27
Целочисленный фрактал Мандельброта Tronix Мультимедиа в Delphi 16 25.07.2011 12:22
Последовательность в Паскале. Nero77 Помощь студентам 5 01.11.2010 21:24
снежинка Мандельброта NiCola999 Общие вопросы C/C++ 5 25.09.2010 16:17