1 / 1 / 2
Регистрация: 12.04.2010
Сообщений: 121
1

Изменить программу

10.06.2012, 21:58. Показов 595. Ответов 1
Метки нет (Все метки)

Помогите изменить программу, чтобы получить фрактал на прикреплённом рисунке. Формула рисунка - ch(z) -гиперболический косинус. Формула гиперболического косинуса ch(z)=(e^z+e^-z)/2. Я выделил действительную и мнимую часть, но получается совсем не то. Что я не правильно делаю?
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
PROGRAM Zadanie_14a;
Uses Graph,Crt;
CONST
  iter=50;
  max=16;
TYPE
  TComplex=Record
            x:Real;
            y:Real;
           End;
VAR
  z,t,c:TComplex;
  x,y,n:Integer;
  Cancel:Boolean;
  gd,gm:Integer;
  mx,my:Integer;
BEGIN
 ClrScr;
 Cancel:=False;
 Randomize;
 gd:=Detect;
 InitGraph(gd,gm,'');
 mx:=GetMaxX div 2;
 my:=GetMaxY div 2;
 For y:=-my To my Do
  For x:=-mx To mx Do
    begin
      n:=0;
      z.x:=x*0.005;
      z.y:=y*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:=(exp(t.x+t.y)+exp(-t.x-t.y))/2;
         z.y:=(exp(t.x+t.y)+exp(-(t.x+t.y)))/2;
         Inc(n);
         If KeyPressed Then Cancel:=True;
       end;
      If n<iter Then PutPixel(mx+x,my+y,8+(n mod 16));
      If Cancel Then Exit;
    end;
 ReadKey;
 CloseGraph;
END.
Миниатюры
Изменить программу  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2012, 21:58
Ответы с готовыми решениями:

изменить программу
В одномерном массиве, состоящем из п целочисленных элементов, вычислить: 1) минимальный элемент...

Изменить программу.
Есть прога практически готовая, но кое что нужно изменить. Преподователь просил сделать программу...

Изменить программу
Дана последовательность из n натуральных чисел и натуральное число А. Найти в данной...

как изменить программу?
Как мне надо поменять программу, что бы все &quot;if&quot; были бы в функции? Условия задачи: Вводится...

1
1 / 1 / 2
Регистрация: 12.04.2010
Сообщений: 121
11.06.2012, 14:49  [ТС] 2
Переделал программу. Выделил из ch z действительную и мнимую часть. Формула: ch z=ch x*cos y+i*sh x*sin y. Re: ch x*cos y; Im:sh x*sin y. ch x=(e^x+e^-x)/2; sh x=(e^x-e^-x)/2. Итоговая формула: Re(e^x+e^-x)/2)*cos y; Im(e^x-e^-x)/2)*sin y. Подставил в код но рисунок совсем другой. Уважаемые программисты помогите.
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
PROGRAM Zadanie_14a;
Uses Graph,Crt;
CONST
  iter=50;
  max=16;
TYPE
  TComplex=Record
            x:Real;
            y:Real;
           End;
VAR
  z,t,c:TComplex;
  x,y,n:Integer;
  Cancel:Boolean;
  gd,gm:Integer;
  mx,my:Integer;
BEGIN
 ClrScr;
 Cancel:=False;
 Randomize;
 gd:=Detect;
 InitGraph(gd,gm,'');
 mx:=GetMaxX div 2;
 my:=GetMaxY div 2;
 For y:=-my To my Do
  For x:=-mx To mx Do
    begin
      n:=0;
      z.x:=x*0.05;
      z.y:=y*0.05;
      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:=((exp(t.x)+exp(t.x))/2)*cos(t.y);
         z.y:=((exp(t.x)-exp(t.x))/2)*sin(t.y);
         Inc(n);
         If KeyPressed Then Cancel:=True;
       end;
      If n<iter Then PutPixel(mx+x,my+y,8+(n mod 16));
      If Cancel Then Exit;
    end;
 ReadKey;
 CloseGraph;
END.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2012, 14:49
Помогаю со студенческими работами здесь

Изменить готовую программу
Нужно изменить подпрограмму с function на Procedure function fac(x:real;n:integer):real; begin...

Изменить программу ввода
В программе написано что ввод числел производиться рандомно, но надо их вводить с клавиатуры...

Надо изменить программу
Вот задание: Дана квадратная матрица А порядка n. Составить программу, которая находит...

Как можно изменить программу?
program laba5; uses GraphABC; const n = 9; type MarkType1 = (krest,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru