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

Перевод кода с Pascal - C++

Восстановить пароль Регистрация
 
кок
0 / 0 / 0
Регистрация: 01.07.2014
Сообщений: 53
01.07.2014, 21:47     Перевод кода с Pascal #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
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
uses crt,graphABC;
function y(x:real):real;
begin
if x<0 then y:=1+sqrt(abs(cos(x*x+1)))
else if x<=1 then y:=-2*x-sqr(sin(x))
else y:=exp(-sqr(cos(x)))
end;
var a,b,x,h,max,min,mx,my,dx:real;
    x0,y0,n,i:integer;
    s:string;
begin
a:=-1;
b:=1.5;
h:=0.1;
x:=a;
while x<=b+h/2 do
 begin
  writeln('x=',x:5:1,'  y=',y(x):7:3);
  if x=1.2 then
   begin
    write('Press Enter');
    readln
   end;
  x:=x+h
 end;
write('Нажмите Enter для просмотра графика');
readln;
hidecursor;
clrscr;
x0:=round(-windowwidth*a/(b-a));
y0:=windowheight div 2;
mx:=(windowwidth-60)/(b-a);{масштаб по Х}
x:=a;
max:=y(x);
min:=max;
while x<b do
 begin
  x:=x+0.01;
  if y(x)>max then max:=y(x);
  if y(x)<min then min:=y(x);
 end;
if max>abs(min) then my:=(y0+20)/max {масштаб по Y}
else my:=(y0+20)/abs(min);
n:=16;
if max>n then n:=trunc(max)+1;
if abs(min)>n then n:=trunc(abs(min))+1;
line(0,y0,windowwidth,y0);{оси}
line(x0,0,x0,windowheight);
for i:=1 to n do{максимальное количество засечек в одну сторону}
  begin
    line(x0+round(i*mx/10),y0-3,x0+round(i*mx/10),y0+3); {засечки на оси Х}
    line(x0-round(i*mx/10),y0-3,x0-round(i*mx/10),y0+3);
    line(x0+3,y0-round(i*my/2),x0-3,y0-round(i*my/2)); {засечки на оси Y}
    line(x0+3,y0+round(i*my/2),x0-3,y0+round(i*my/2));
    {подпись оси Х}
    if i mod 2=0 then
     begin
      str(i/10:0:1,s);
      textout(x0+round(i*mx/10)-15,y0+10,s);
      textout(x0-round(i*mx/10)-15,y0+10,'-'+s);
     end;
   {подписи по оси Y}
    str(i/2:0:1,s);
    textout(x0-25,y0-round(i*my/2)-10,s);
    textout(x0-30,y0+round(i*my/2)-10,'-'+s);
  end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-15,y0-25,'X');
textout(x0+5,8, 'Y');
{график}
x:=a;
dx:=0.001;
while x<=b do
 begin
  x:=x+dx;
  setpixel(x0+round(x*mx),y0-round(y(x)*my),clBlue);
 end;
setfontsize(12);
setfontcolor(clBlue);
textout(x0+30,10,'       x<0  y=1+sqrt(|cos(x^2+1)|)');
textout(x0+30,30,'   0<=x<=1  y=-2*x-sqr(sin(x))');
textout(x0+30,50,'       x>1  y=e^(-cos^2(x))');
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 21:47     Перевод кода с Pascal
Посмотрите здесь:

C++ Перевод кода из Pascal/VB в C++
C++ Перевод кода из Pascal в C++
C++ Перевод кода из Pascal в С++
C++ Перевод кода с Pascal на С++
C++ Перевод кода с Pascal
C++ Перевод кода с Pascal
Перевод кода с Pascal C++
C++ Перевод кода с Pascal

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4270 / 3701 / 1246
Регистрация: 14.04.2014
Сообщений: 14,495
03.07.2014, 07:25     Перевод кода с Pascal #2
Из-за graphABC программу надо переделывать, простым консольным приложением не заменишь.
Yandex
Объявления
03.07.2014, 07:25     Перевод кода с Pascal
Ответ Создать тему
Опции темы

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