Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80

Реализовать программу, строящую фрактал с заданными границами расчета x0≤x≤xn. y0≤y≤yn

22.03.2020, 15:15. Показов 8236. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
gd := detect; 1.pas(17) : Неизвестное имя 'detect'
Подскажите что с этим можно сделать? как решить эту компиляцию, перерыл инет, нужно построить фрактал Джулиа
х0=-1, х1=0,7, у0=-0,9,у1=1,1. Границы расчета x0≤x≤xn. y0≤y≤yn.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
uses 
graphABC;
type TComplex = record
        x : Real;
                y : Real;
                end;
const   iter = 15;
        max  = 16;
      k=16;
var z, t : TComplex;
    n, i : integer;
    gd, gm  : integer;
    mx, my  : integer;
    x0,xn,y0,yn,x,y,ms:real;
    s:string;
begin
gd := detect;
initgraph(gd,gm,'d:\bp\bgi');
x0:=-1.0;
xn:=0.7;
y0:=-0.9;
yn:=1.1;
mx := round(getmaxX*abs(x0)/(xn-x0));{центр по Х}
my := round(getmaxY*yn/(yn-y0));{центр по Y}
ms:=(getmaxY-40)/(yn-y0);{масштаб}
y:=y0;
while y<=yn do
 begin
  x:=x0;
  while x<=xn do
   begin
    n := 0;
    z.x := x*ms*0.005;
    z.y := y*ms*0.005;
    while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
     begin
        t := z;
        z.x := cos(t.y)*(exp(t.x)+exp(-t.x))/2;
        z.y := sin(t.y)*(exp(t.x)-exp(-t.x))/2;
        inc(n);
     end;
      if n < k then
    putpixel(mx + round(ms*x),my - round(ms*y),16 - (n mod 16));
    x:=x+0.01;
   end;
  y:=y+0.01;
 end;
setcolor(15);
line(0,my,getmaxX,my);{оси}
line(mx,0,mx,getmaxY);
{центр}
outtextXY(mx+5,my+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,my-10,'X');
outtextXY(mx+5,10, 'Y');
for i:=1 to 11{trunc(x0*10)+1} do{максимальное количество засечек в одну сторону}
  begin
    line(mx-3,my-round(i*ms/10),mx+3,my-round(i*ms/10));{засечки на оси У}
    line(mx-3,my+round(i*ms/10),mx+3,my+round(i*ms/10));
    line(mx+round(i*ms/10),my-3,mx+round(i*ms/10),my+3); {засечки на оси Х}
    line(mx-round(i*ms/10),my-3,mx-round(i*ms/10),my+3);
    str(i/10:0:1,s);
    if i mod 2=0 then
     begin
      {подпись оси У}
      settextstyle(0,0,1);
      outtextXY(mx-30,my-round(i*ms/10),s);{соответственно засечкам}
      outtextXY(mx-35,my+round(i*ms/10),'-'+s);
      {подпись оси Х}
      settextstyle(0,1,1);
      outtextXY(mx+round(i*ms/10),my+10,s);
      outtextXY(mx-round(i*ms/10),my+10,'-'+s);
     end;
  end;
readln
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2020, 15:15
Ответы с готовыми решениями:

Написать рекурсивную программу строящую фрактал "Т-квадрат"
Уважаемые форумчане, помогите пожалуйста написать рекурсивную программу строящую фрактал &quot;Т-квадрат&quot;. Фото как должно...

Реализовать программу, строящую двумерное изображение заданной фигуры.
Реализовать программу, строящую двумерное изображение заданной фигуры. Необходимо выполнить 2D преобразования и отобразить новое положение...

Копирование текста между заданными границами в word
Здравствуйте, уважаемые. Возникла необходимость из огромного архива (файлов doc) договоров выбрать и скопировать в таблицу нужную...

21
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
22.03.2020, 15:44
Это код для Турбо Паскаля.
В АВС нужно так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
uses
graphABC;
type TComplex = record
        x : Real;
                y : Real;
                end;
const   iter = 15;
        max  = 16;
        k=16;
//16 цветов
cv:array[1..k] of integer=(clBlack,clBlue,clGreen,clTeal,clMaroon,clPurple,clBrown,clLightGray,
                            clGray,clSkyBlue,clLime,clAqua,clRed,
                            clFuchsia,clYellow,clWhite);
var z, t : TComplex;
    n, i : integer;
    mx, my  : integer;
    x0,xn,y0,yn,x,y,ms:real;
    s:string;
begin
x0:=-1.0;
xn:=0.7;
y0:=-0.9;
yn:=1.1;
mx := round(windowwidth*abs(x0)/(xn-x0));{центр по Х}
my := round(windowheight*yn/(yn-y0));{центр по Y}
ms:=(windowheight-40)/(yn-y0);{масштаб}
y:=y0;
while y<=yn do
 begin
  x:=x0;
  while x<=xn do
   begin
    n := 0;
    z.x := x*ms*0.005;
    z.y := y*ms*0.005;
    while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
     begin
        t := z;
        z.x := cos(t.y)*(exp(t.x)+exp(-t.x))/2;
        z.y := sin(t.y)*(exp(t.x)-exp(-t.x))/2;
        inc(n);
     end;
      if n < k then
    setpixel(mx + round(ms*x),my - round(ms*y),cv[k - (n mod k)]);
    x:=x+0.001;
   end;
  y:=y+0.01;
 end;
setpencolor(clBlack);
line(0,my,windowwidth,my);{оси}
line(mx,0,mx,windowheight);
{центр}
textout(mx+5,my+10,'0');
{подписи концов осей}
textout(windowwidth-10,my-10,'X');
textout(mx+5,10, 'Y');
for i:=1 to 11{trunc(x0*10)+1} do{максимальное количество засечек в одну сторону}
  begin
    line(mx-3,my-round(i*ms/10),mx+3,my-round(i*ms/10));{засечки на оси У}
    line(mx-3,my+round(i*ms/10),mx+3,my+round(i*ms/10));
    line(mx+round(i*ms/10),my-3,mx+round(i*ms/10),my+3); {засечки на оси Х}
    line(mx-round(i*ms/10),my-3,mx-round(i*ms/10),my+3);
    str(i/10:0:1,s);
    if i mod 2=0 then
     begin
      {подпись оси У}
      textout(mx-30,my-round(i*ms/10),s);{соответственно засечкам}
      textout(mx-35,my+round(i*ms/10),'-'+s);
      {подпись оси Х}
      textout(mx+round(i*ms/10),my+10,s);
      textout(mx-round(i*ms/10),my+10,'-'+s);
     end;
  end;
end.
0
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 13:35  [ТС]
Почему то с цветами проблема: clAqua, clBlack
1.pas(11) : Нельзя преобразовать тип System.Drawing.Color к integer
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 13:38
Так у Вас наверное ABC.net, хотя это раздел простого АВС.
Зайдите с Справку АВС.net и выберите цвета из цветовых констант.
1
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 13:49  [ТС]
Можно любые цвета ставить?
поставил, но все равно - cv:array[1..k] of integer=(clIndianRed, clIndigo,..
выводит ошибку на строке
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 13:50
Какую ошибку? Я что, телепат?
0
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 13:51  [ТС]
1.pas(11) : Нельзя преобразовать тип System.Drawing.Color к integer
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 13:52
Pascal
1
cv:array[1..k] of Color;
1
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 13:55  [ТС]
Обязательно использовать 16 цветов?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 13:59
Лучший ответ Сообщение было отмечено Evgeniykondraty как решение

Решение

Не знаю, в программе на Турбо Паскаль 16, это же не я писал, понятия не имею что это за программа.
1
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 14:02  [ТС]
Спасибо! Все заработало, это прога для построения Фрактала в компьютерной графике
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 14:06
Лучший ответ Сообщение было отмечено Evgeniykondraty как решение

Решение

Какой-то фрактал не красивый, вот фрактал Ньютона
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uses GraphABC;
type TComplex = record
     X : Real;
     Y : Real;
     end;
const
iter = 50;
max  = 16;
x0=-1.0;
xn=0.7;
y0=-0.9;
yn=0.8;
//цвета если не нравятся, подберите сами
cv:array[1..16] of Color=(clBlack,clBlue,clGreen,clTeal,clMaroon,clPurple,clBrown,clLightGray,
                            clGray,clSkyBlue,clLime,clCyan,clRed,
                            clFuchsia,clYellow,clWhite);
var z, t, c : TComplex;
    n       : Integer;
    msx,msy : Real;
    x, y    :Real;
    xc, yc  : Integer;
begin
Randomize;
xc:=windowwidth div 2;
yc:=windowheight div 2;
msx:= xc/xn;
msy:= yc/yn;
y:=y0;
while y<=yn do
 begin
  x:=x0;
  while x<=xn do
   begin
    n := 0;
    z.x := x*msx * 0.005;
    z.y := y*msy * 0.005;
    c.x := 0.11;
    c.y := -0.66;
    while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
     begin
      t := z;
      z.x := sqr(t.x) - sqr(t.y) + c.x;
      z.y := 2*t.x*t.y + c.y;
      Inc(n);
     end;
   if n < iter then SetPixel(xc+round(x*msx),yc+round(y*msy),cv[16 - (n mod 16)]);
   x:=x+0.002;
  end;
 y:=y+0.002;
end;
end.
1
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
23.03.2020, 14:20  [ТС]
У меня Джулиа
x0:=-1.0;
xn:=0.7;
y0:=-0.9;
yn:=1.1;
а Ньютона действительно красив!!!

Добавлено через 1 минуту
В ABC можно увеличить изображение фрактала?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.03.2020, 15:17
Лучший ответ Сообщение было отмечено Evgeniykondraty как решение

Решение

Можно изменить некоторые параметры и установить максимальный размер окна.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
uses GraphABC;
type TComplex = record
     X : Real;
     Y : Real;
     end;
const
iter = 50;
max  = 16;
x0=-1.0;
xn=0.7;
y0=-0.9;
yn=0.8;
//цвета если не нравятся, подберите сами
cv:array[1..16] of Color=(clBlack,clBlue,clGreen,clTeal,clMaroon,clPurple,clBrown,clLightGray,
                            clGray,clSkyBlue,clLime,clCyan,clRed,
                            clFuchsia,clYellow,clWhite);
var z, t, c : TComplex;
    n       : Integer;
    msx,msy : Real;
    x, y    :Real;
    xc, yc  : Integer;
begin
Window.Maximize;
Randomize;
xc:=windowwidth div 2;
yc:=windowheight div 2;
msx:= xc/xn;
msy:= yc/yn;
y:=y0;
while y<=yn do
 begin
  x:=x0;
  while x<=xn do
   begin
    n := 0;
    z.x := x*msx * 0.005;
    z.y := y*msy * 0.005;
    c.x := 0.11;
    c.y := -0.66;
    while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
     begin
      t := z;
      z.x := sqr(t.x) - sqr(t.y) + c.x;
      z.y := 2*t.x*t.y + c.y;
      Inc(n);
     end;
   if n < iter then SetPixel(xc+round(x*msx),yc+round(y*msy),cv[16 - (n mod 16)]);
   x:=x+0.0005;
  end;
 y:=y+0.0005;
end;
end.
Добавлено через 47 минут
Вот здесь множество Жулиа лучше
Множество Жюлиа
2
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
30.03.2020, 11:01  [ТС]
Здравствуйте, я хотел бы разобрать некоторые моменты программы, никак не могу понять, поможете?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
30.03.2020, 12:19
Цитата Сообщение от Evgeniykondraty Посмотреть сообщение
некоторые моменты программы
Какие?
0
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
05.04.2020, 06:14  [ТС]
Этот фрактал решен методом Джулиа? Или каким методом? И по коментам можно расписать что к чему.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
05.04.2020, 07:48
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от Evgeniykondraty Посмотреть сообщение
Этот фрактал решен методом Джулиа? Или каким методом?
Вообще-то это Ваша программа у себя и спрашивайте.
1
 Аватар для Evgeniykondraty
0 / 0 / 0
Регистрация: 07.06.2017
Сообщений: 80
16.05.2020, 13:18  [ТС]
Подскажите какие возможности могут быть у этой программы?
0
0 / 0 / 0
Регистрация: 05.08.2020
Сообщений: 2
17.08.2020, 20:58
Цитата Сообщение от Puporev Посмотреть сообщение
Какой-то фрактал не красивый, вот фрактал Ньютона

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
uses GraphABC;
type TComplex = record
     X : Real;
     Y : Real;
     end;
const
iter = 50;
max  = 16;
x0=-1.0;
xn=0.7;
y0=-0.9;
yn=0.8;
//цвета если не нравятся, подберите сами
cv:array[1..16] of Color=(clBlack,clBlue,clGreen,clTeal,clMaroon,clPurple,clBrown,clLightGray,
                            clGray,clSkyBlue,clLime,clCyan,clRed,
                            clFuchsia,clYellow,clWhite);
var z, t, c : TComplex;
    n       : Integer;
    msx,msy : Real;
    x, y    :Real;
    xc, yc  : Integer;
begin
Randomize;
xc:=windowwidth div 2;
yc:=windowheight div 2;
msx:= xc/xn;
msy:= yc/yn;
y:=y0;
while y<=yn do
 begin
  x:=x0;
  while x<=xn do
   begin
    n := 0;
    z.x := x*msx * 0.005;
    z.y := y*msy * 0.005;
    c.x := 0.11;
    c.y := -0.66;
    while (sqr(z.x) + sqr(z.y) < max) and (n < iter) do
     begin
      t := z;
      z.x := sqr(t.x) - sqr(t.y) + c.x;
      z.y := 2*t.x*t.y + c.y;
      Inc(n);
     end;
   if n < iter then SetPixel(xc+round(x*msx),yc+round(y*msy),cv[16 - (n mod 16)]);
   x:=x+0.002;
  end;
 y:=y+0.002;
end;
end.
Здравствуйте. подскажите пожалуйста а для какого уравнения составлен данный фрактал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.08.2020, 20:58
Помогаю со студенческими работами здесь

Как в Matlab-e вывести график с вручную заданными границами по оси ординат? см. подробнее...
Как в Matlab-e вывести график с вручную заданными границами по оси ординат? Вот такой код выдает график (рис.1): figure(1); a = ; ...

Реализовать программу для расчёта совершенного числа в диапазоне от 0 до 50000
Требуется реализовать программу для расчёта совершенного числа в диапазоне от 0 до 50000.Программа должна раскладывать число на слагаемые и...

Спроектировать и реализовать программу расчета таблицы соответствий между мерами
Уважаемые форумчане, на завтра задали вопросы сделать и программу написать,кто знает ответьте пожалуйста. Вопросы:1. Выражения какого...

Нужно спроектировать и реализовать программу расчета таблицы соответствий между мерами
Начальное значение меры, шаг изменения этого значения и количество строчек в таблице задать в режиме диалога. Оформить таблицу применяя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru