Форум программистов, компьютерный форум CyberForum.ru

Перевод из pascal в c++ (мигающие кружки) - C++

Восстановить пароль Регистрация
 
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
18.05.2014, 00:20     Перевод из pascal в c++ (мигающие кружки) #1
Здрасте, помогите переписать из паскаля в С++. Там где рисуеться можно псевдографикой, спасибо
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
Uses crt, graph; _
Const N=50; M=50; jj=1;
Var i,j,k,l,u, Gd, Gm : integer; p: real; h,E,EE,dE,x,a,п¬Ѓ,п¬Ѓ1,п¬Ѓ2 : real;
s : array [1..N,1..M] of real; Label metka;
Procedure Energy;
Var i,j : integer;
begin E:=0; dE:=O;
For i:=2 to N-1 do Forj:=2 to M-1 do begin
EI=E-ii*($[iJ1*$li+1 .J]+$[i.il*$[i~1.il+$[iJ]*$li.i+1l+$[i.il*$[i.i-1]
+0.7*(s[i,j]*s[i+1 ,j+1]+s[i,j]*s[i-1 ,j-1]+s[i,j]*s[i-1 ,j+1]+s[i,j]*s[i+1,j-1])); end
for i:=2 to N-1 do Forj:=2 to M-1 do begin
h:=0; If (i>O.6*N)and(j>0.6*M) then h:=-0.05;
If (i<O.4*N)and(j<0.4*M) then h:=0.05;
dE:=dE-h*s[i,j]; end; E:=E+dE;
end;
Procedure Draw;
Var i,j : integer;
begin cleardevice; For i:=1 to N do begin
Forj:=1 to M do begin If s[i,j]=1 then begin
circle(7*i,7*j,1); circle(7*i,7*j,2); circle(7*i,7*j,3); end;
If s[i,j]=0 then circle(7*i,7*j,1); end; end; end;
BEGIN
Gd:= Detect; lnitGraph(Gd, Gm, 'c:\bp\bgi');
If GraphResult <> grOk then Halt(1);
Randomize; for i:=1 to N do for j:=1 to M do
begin p:=Rand0m(100)/100; s[i,j]:=0;
If p<0.33 then s[i,j]:=-1; If p>0.66 then s[i,j]:=1;
end; Draw;
Repeat For k:=1 to round(N*M/10) do begin Energy; EE:=E;
i:=1+round(random(N-2)); j:=1+round(random(M-2));
If s[i,j]=1 then begin u:=1; s[i,j]:=O; goto metka; end;
If s[i,j]=-1 then begin u:=-1; s[i,j]:=0; goto metka; end;
If (s[i,j]=0)and(random(100)>50) then s[i,j]:=-1 else s[i,j]:=1;
u:=0; metka: Energy; If (E>EE) then s[i,j]:=u;
end;
Energy; Draw; until KeyPressed;
Repeat until KeyPressed; CloseGraph;
END.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2014, 00:20     Перевод из pascal в c++ (мигающие кружки)
Посмотрите здесь:

перевод из PASCAL в C++ C++
C++ Перевод из pascal в С
C++ перевод с Pascal на C++
Перевод с Pascal на С++ C++
C++ Перевод с Pascal на С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
 Аватар для volvo
21827 / 14190 / 3956
Регистрация: 22.10.2011
Сообщений: 25,075
Записей в блоге: 2
18.05.2014, 02:39     Перевод из pascal в c++ (мигающие кружки) #2
Хоть бы компилирующийся код на Паскале приводили, а не этот результат неудачного сканирования... А лучше всего - задание...
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
19.05.2014, 03:01  [ТС]     Перевод из pascal в c++ (мигающие кружки) #3
Добавлено через 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
Uses crt, graph;
Const N=50; M=50; jj=1;
Var i,j,k,l,u, Gd, Gm : integer; p: real; h,E,EE,dE,x,a,fi,fi1,fi2 : real;
s : array [1..N,1..M] of real; Label metka;
Procedure Energy;
Var i,j : integer;
begin E:=0; dE:=O;
For i:=2 to N-1 do For j:=2 to M-1 do begin
E=E-jj*(s[i,j]*s[i+1,j]+s[i,j]*s[i-1,j]+s[i,j]*s[i,j+1]+s[i,j]*s[i,j-1]
+0.7*(s[i,j]*s[i+1,j+1]+s[i,j]*s[i-1,j-1]+s[i,j]*s[i-1,j+1]+s[i,j]*s[i+1,j-1]+)); end;
for i:=2 to N-1 do For j:=2 to M-1 do begin
h:=0; If (i>0.6*N)and(j>0.6*M) then h:=-0.05;
If (i<0.4*N)and(j<0.4*M) then h:=0.05;
dE:=dE-h*s[i,j]; end; E:=E+dE;
end;
Procedure Draw;
Var i,j : integer;
begin cleardevice; For i:=1 to N do begin
Forj:=1 to M do begin If s[i,j]=1 then begin
circle(7*i,7*j,1); circle(7*i,7*j,2); circle(7*i,7*j,3); end;
If s[i,j]=0 then circle(7*i,7*j,1); end; end; end;
BEGIN
Gd:= Detect; lnitGraph(Gd, Gm, 'c:\bp\bgi');
If GraphResult <> grOk then Halt(1);
Randomize; for i:=1 to N do for j:=1 to M do
begin p:=Random(100)/100; s[i,j]:=0;
If p<0.33 then s[i,j]:=-1; If p>0.66 then s[i,j]:=1;
end; Draw;
Repeat For k:=1 to round(N*M/10) do begin Energy; EE:=E;
i:=1+round(random(N-2)); j:=1+round(random(M-2));
If s[i,j]=1 then begin u:=1; s[i,j]:=O; goto metka; end;
If s[i,j]=-1 then begin u:=-1; s[i,j]:=0; goto metka; end;
If (s[i,j]=0)and(random(100)>50) then s[i,j]:=-1 else s[i,j]:=1;
u:=0; metka: Energy; If (E>EE) then s[i,j]:=u;
end;
Energy; Draw; until KeyPressed;
Repeat until KeyPressed; CloseGraph;
END.
Добавлено через 1 минуту
Нечайно редактировал пост, тема не апнулась. Еще раз прошу помощи, спасибо
Ето модель Изинга для феромагнетика

Добавлено через 10 часов 31 минуту
Программа 100% работает, проверьял. Прошу помощи в переводе на С++
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
program dd;
Uses crt, Graph;
Const N=10; M=10; jj=1;
Var i,j,k,l,u, Gd, Gm : integer; p: real; h,E,EE,dE,x,a,fi,fi1,fi2 : real;
s : array [1..N,1..M] of real; Label metka;
Procedure Energy;
Var i,j : integer;
begin E:=0; dE:=0;
For i:=2 to N-1 do For j:=2 to M-1 do begin
E:=E-jj*(s[i,j]*s[i+1,j]+s[i,j]*s[i-1,j]+s[i,j]*s[i,j+1]+s[i,j]*s[i,j-1]
+0.7*(s[i,j]*s[i+1,j+1]+s[i,j]*s[i-1,j-1]+s[i,j]*s[i-1,j+1]+s[i,j]*s[i+1,j-1]));
end;
for i:=2 to N-1 do For j:=2 to M-1 do begin
h:=0; If (i>0.6*N)and(j>0.6*M) then h:=-0.05;
If (i<0.4*N)and(j<0.4*M) then h:=0.05;
dE:=dE-h*s[i,j]; end; E:=E+dE;
end;
Procedure Draw;
Var i,j : integer;
begin For i:=1 to N do begin
For j:=1 to M do begin If s[i,j]=1 then begin
Circle(15*i,15*j,5); circle(15*i,15*j,6); circle(15*i,15*j,7); end;
If s[i,j]=0 then circle(15*i,15*j,5); end; end; end;
begin
Randomize; for i:=1 to N do for j:=1 to M do
begin p:=Random(100)/100; s[i,j]:=0;
If p<0.33 then s[i,j]:=-1; If p>0.66 then s[i,j]:=1;
end; Draw;
Repeat For k:=1 to round(N*M/10) do begin Energy; EE:=E;
i:=1+round(random(N-2)); j:=1+round(random(M-2));
If s[i,j]=1 then begin u:=1; s[i,j]:=0; goto metka; end;
If s[i,j]=-1 then begin u:=-1; s[i,j]:=0; goto metka; end;
If (s[i,j]=0)and(random(100)>50) then s[i,j]:=-1 else s[i,j]:=1;
u:=0; metka: Energy; If (E>EE) then s[i,j]:=u;
end;
Energy; Draw; until keypressed;
Repeat until keypressed ;
END.
nmcf
4315 / 3736 / 1259
Регистрация: 14.04.2014
Сообщений: 14,642
19.05.2014, 09:01     Перевод из pascal в c++ (мигающие кружки) #4
Графика в DOS, что ли? Никто таким уже не занимается.
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
19.05.2014, 11:26  [ТС]     Перевод из pascal в c++ (мигающие кружки) #5
та графика ето такое, мне б алгоритм переписать
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
19.05.2014, 21:36     Перевод из pascal в c++ (мигающие кружки) #6
C++
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
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <Windows.h>
#include <ctime>
#include <cstdlib>
#include <conio.h>
const int n = 10, m = 10, jj = 1;
double energy(double s[10][10],double& E)
{
    double dE = 0; int i; int j, h;
    E = 0;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            E = E - jj*(s[i][j] * s[i + 1][j] + s[i][j] * s[i - 1][j] + s[i][j] * s[i][j + 1] + s[i][j] * s[i][j - 1]
                + 0.7*(s[i][j] * s[i + 1][j + 1] + s[i][j] * s[i - 1][j - 1] + s[i][j] * s[i - 1][j + 1] + s[i][j] * s[i + 1][j - 1]));
        }
    }
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if ((i>0.6*n) && (j>0.6*m)) h = -0.05;
            else if ((i<0.4*n) && (j<0.4*m)) h = 0.05;
            dE = dE - h*s[i][j];
        }
        E = E + dE;
    }
    return E;
}
void draw(double s[10][10])
{
    HWND handle = FindWindow("ConsoleWindowClass", NULL);
    HDC dc = GetDC(handle);
    int i, j;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if (s[i][j] == 1) { Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 5, 5); Ellipse(dc, 15 * i - 6 / 2, 15 * j - 6 / 2, 6, 6); Ellipse(dc, 15 * i - 7 / 2, 15 * j - 7 / 2, 7, 7); }
            else if (s[i][j] == 0) Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 5, 5);
        }
    }
}
int main()
{
    srand(time(0));
    double s[n][m];
    double p;
    int i, j;
    for (i = 1; i < n - 1; i++)
    {
        for (j = 1; j < m - 1; j++)
        {
            p = rand() % 100;
            if (p < 0.33) s[i][j] = -1;
            else if (p>0.66) s[i][j] = 1;
            else s[i][j] = 0;
        }
    }
    draw(s);
    int u;
    double EE;
    double E;
    while (_kbhit())
    {
    for (int k = 1; k < n*m; k++)
    {
        energy(s, EE);
        i = 1 + rand() % (n - 2);
        j = 1 + rand() % (m - 2);
        if (s[i][j]){ u = s[i][j]; s[i][j] = 0; }
        else
        {
            u = 0;
            if (rand() % 100>50) s[i][j] = -1;
            else s[i][j] = 1;
        }
 
    }
    energy(s, E);
    if (E > EE) s[i][j] = u;
    energy(s, E);
    draw(s);
}
    _getch();
}
попробуй так, правда я не совсем понял, что программа должна делать, поэтому может работать неправильно
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 00:29  [ТС]     Перевод из pascal в c++ (мигающие кружки) #7
Спасибо конечно, можно вопросик, копирую код, жму Ф5 а мне компилируеться предедущий вариант (мой недоделанный), создаю новый прожект вобще матюкаеться что ехе файла найти неможет , задолбался уже вчем проблемма
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 00:35     Перевод из pascal в c++ (мигающие кружки) #8
какой компилятор?
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 00:57  [ТС]     Перевод из pascal в c++ (мигающие кружки) #9
visual studio 2010
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 01:18     Перевод из pascal в c++ (мигающие кружки) #10
попробуйте нажать построение->очистить, а потом построение-> перестроить, если не поможет попробуйте перезапустить visual studio, создать приложение, используя шаблон консольное приложение, при этом поставить галочку пустой проект. Также нужно в свойствах проекта поставить в пункте свойства конфигурации->общие->набор символов использовать многобайтовую кодировку, но сейчас у вас не поэтому не компилируется
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 01:54  [ТС]     Перевод из pascal в c++ (мигающие кружки) #11
да не работает , блин , тупая студия
а что значит
C++
1
2
    HWND handle = FindWindow("ConsoleWindowClass", NULL);
    HDC dc = GetDC(handle);
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 02:01     Перевод из pascal в c++ (мигающие кружки) #12
C++
1
  HWND handle = FindWindow("ConsoleWindowClass", NULL);
получение дескриптора для консольного окна, здесь нужен для того, чтобы получить дескриптора контекста устройства.
C++
1
HDC dc = GetDC(handle);
описатель контекста устройства, здесь нужен для вывода графики
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 02:06  [ТС]     Перевод из pascal в c++ (мигающие кружки) #13
Ошибку выдает: ((
Error 3 error C2664: 'FindWindowW' : cannot convert parameter 1 from 'const char [19]' to 'LPCWSTR' d:\worker\mywork\cpp\ining\ining\ining.cpp 34 1 ining
6 IntelliSense: argument of type "const char *" is incompatible with parameter of type "LPCWSTR" d:\worker\mywork\cpp\ining\ining\ining.cpp 34 30 ining
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 02:55     Перевод из pascal в c++ (мигающие кружки) #14
C++
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
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <Windows.h>
#include <ctime>
#include <cstdlib>
#include <conio.h>
#include <tchar.h>
const int n = 10, m = 10, jj = 1;
double energy(double s[10][10],double& E)
{
    double dE = 0; int i; int j, h;
    E = 0;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            E = E - jj*(s[i][j] * s[i + 1][j] + s[i][j] * s[i - 1][j] + s[i][j] * s[i][j + 1] + s[i][j] * s[i][j - 1]
                + 0.7*(s[i][j] * s[i + 1][j + 1] + s[i][j] * s[i - 1][j - 1] + s[i][j] * s[i - 1][j + 1] + s[i][j] * s[i + 1][j - 1]));
        }
    }
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if ((i>0.6*n) && (j>0.6*m)) h = -0.05;
            else if ((i<0.4*n) && (j<0.4*m)) h = 0.05;
            dE = dE - h*s[i][j];
        }
        E = E + dE;
    }
    return E;
}
void draw(double s[10][10])
{
    HWND handle = FindWindow(_T("ConsoleWindowClass"), NULL);
    HDC dc = GetDC(handle);
    int i, j;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if (s[i][j] == 1) { Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 5, 5); Ellipse(dc, 15 * i - 6 / 2, 15 * j - 6 / 2, 6, 6); Ellipse(dc, 15 * i - 7 / 2, 15 * j - 7 / 2, 7, 7); }
            else if (s[i][j] == 0) Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 5, 5);
        }
    }
}
int main()
{
    srand(time(0));
    double s[n][m];
    double p;
    int i, j;
    for (i = 1; i < n - 1; i++)
    {
        for (j = 1; j < m - 1; j++)
        {
            p = rand() % 100;
            if (p < 0.33) s[i][j] = -1;
            else if (p>0.66) s[i][j] = 1;
            else s[i][j] = 0;
        }
    }
    draw(s);
    int u;
    double EE;
    double E;
    while (_kbhit())
    {
    for (int k = 1; k < n*m; k++)
    {
        energy(s, EE);
        i = 1 + rand() % (n - 2);
        j = 1 + rand() % (m - 2);
        if (s[i][j]){ u = s[i][j]; s[i][j] = 0; }
        else
        {
            u = 0;
            if (rand() % 100>50) s[i][j] = -1;
            else s[i][j] = 1;
        }
 
    }
    energy(s, E);
    if (E > EE) s[i][j] = u;
    energy(s, E);
    draw(s);
}
    _getch();
}
попробуйте этот вариант кода, либо
Также нужно в свойствах проекта поставить в пункте свойства конфигурации->общие->набор символов использовать многобайтовую кодировку
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 20:20  [ТС]     Перевод из pascal в c++ (мигающие кружки) #15
Спасибо тебе , добрый человек))) прога работает токо както криво не так как в паскале ))))))
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 20:27     Перевод из pascal в c++ (мигающие кружки) #16
а что именно криво?
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 21:22  [ТС]     Перевод из pascal в c++ (мигающие кружки) #17
Там там должны кружки мигать))) а на С++ рисует одно большое колесо ))))
Это модель Изинга
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
20.05.2014, 22:08     Перевод из pascal в c++ (мигающие кружки) #18
Т.е каждый новый кружок должен выводится на чистый фон? С какой частотой они должны мигать?
mariklozik
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 52
20.05.2014, 23:24  [ТС]     Перевод из pascal в c++ (мигающие кружки) #19
Перевод из pascal в c++ (мигающие кружки)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2014, 02:27     Перевод из pascal в c++ (мигающие кружки)
Еще ссылки по теме:

C++ Перевод с Pascal на С++
Перевод из Pascal в C++ C++
C++ Перевод c Pascal на С++

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

Или воспользуйтесь поиском по форуму:
Denis123456789
43 / 43 / 17
Регистрация: 02.06.2013
Сообщений: 180
21.05.2014, 02:27     Перевод из pascal в c++ (мигающие кружки) #20
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <Windows.h>
#include <ctime>
#include <cstdlib>
#include <conio.h>
#include <tchar.h>
const int n = 10, m = 10, jj = 1;
double energy(double s[10][10],double& E)
{
    double dE = 0; int i; int j, h;
    E = 0;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            E = E - jj*(s[i][j] * s[i + 1][j] + s[i][j] * s[i - 1][j] + s[i][j] * s[i][j + 1] + s[i][j] * s[i][j - 1]
                + 0.7*(s[i][j] * s[i + 1][j + 1] + s[i][j] * s[i - 1][j - 1] + s[i][j] * s[i - 1][j + 1] + s[i][j] * s[i + 1][j - 1]));
        }
    }
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if ((i>0.6*n) && (j>0.6*m)) h = -0.05;
            else if ((i<0.4*n) && (j<0.4*m)) h = 0.05;
            dE = dE - h*s[i][j];
        }
        E = E + dE;
    }
    return E;
}
void draw(double s[10][10])
{
    HWND handle = FindWindow(_T("ConsoleWindowClass"), NULL);
    HDC dc = GetDC(handle);
    int i, j;
    for (i = 2; i < n - 1; i++)
    {
        for (j = 2; j < m - 1; j++)
        {
            if (s[i][j] == 1) { Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 15 * i + 5 / 2, 15 * j + 5 / 2); Ellipse(dc, 15 * i - 6 / 2, 15 * j - 6 / 2, 15 * i + 6 / 2, 15 * j + 6 / 2); Ellipse(dc, 15 * i - 7 / 2, 15 * j - 7 / 2, 15 * i + 7 / 2, 15 * j + 7 / 2); }
            else if (s[i][j] == 0) Ellipse(dc, 15 * i - 5 / 2, 15 * j - 5 / 2, 15 * i +5 / 2, 15 * j +5 / 2);
        }
    }
}
int main()
{
    srand(time(0));
    double s[n][m];
    double p;
    int i, j;
    for (i = 1; i < n - 1; i++)
    {
        for (j = 1; j < m - 1; j++)
        {
            p = rand() % 100;
            if (p < 33) s[i][j] = -1;
            else if (p>66) s[i][j] = 1;
            else s[i][j] = 0;
        }
    }
    draw(s);
    int u;
    double EE;
    double E;
    HWND hconsol = FindWindow(_T("ConsoleWindowClass"),NULL);
    while (!_kbhit())
    {
    for (int k = 1; k < n*m; k++)
    {
        energy(s, EE);
        i = 1 + rand() % (n - 2);
        j = 1 + rand() % (m - 2);
        if (s[i][j]){ u = s[i][j]; s[i][j] = 0; }
        else
        {
            u = 0;
            if (rand() % 100>50) s[i][j] = -1;
            else s[i][j] = 1;
        }
 
    }
    energy(s, E);
    if (E > EE) s[i][j] = u;
    energy(s, E);
    Sleep(1000);
    InvalidateRect(hconsol, 0, 1);
    UpdateWindow(hconsol);
    draw(s);
}
    _getch();
}
Так?
Yandex
Объявления
21.05.2014, 02:27     Перевод из pascal в c++ (мигающие кружки)
Ответ Создать тему
Опции темы

Текущее время: 06:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru