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

Перевод из Pascal в C++ - C++

Восстановить пароль Регистрация
 
Сергей111111212
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 6
15.11.2013, 12:33     Перевод из 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
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
program Adam;
uses crt;
var
 func,x,y,yp:array[1..100] of real;
 proiz:array[1..4] of real;
 h,a,b,maxfp,maxp:real;
 i,n:integer;
{---------------------------------------------------------------------}
function f(x,y:real):real; {functia proizvodnoi}
begin
 y:=x+sin(x);        {-zadacha Koshi}
 f:=y;
end;
{---------------------------------------------------------------------}
function FP(x:real):real;
begin
    FP:=(x*x)/2-cos(x)   {reshenie zadachi Koshi}
end;
{---------------------------------------------------------------------}
procedure Adams;
begin
 writeln('metod Adamsa for reshenia zadachi Koshi');
 writeln('nachalnie proizvodnie');
for i:=1 to 4 do
 writeln('x[',i,']=',x[i]:2:3,'      f(x[',i,'],y[',i,'])=',f(x[i],y[i]):2:3);
 writeln('nachalnoe znachenie Y=',y[4]:2:3);
 for i:=4 to n do
  begin
   y[i+1]:=y[i]+h/24*(55*f(x[i],y[i])-59*f(x[i-1],y[i-1])+37*f(x[i-2],y[i-2])-9*f(x[i-3],y[i-3]));
   x[i+1]:=x[i]+h;
   writeln('x[',i+1,']=',x[i+1]:2:3,'    y[',i+1,']=',y[i+1]:2:3);
  end;
end;
{---------------------------------------------------------------------}
begin
 clrscr;
 writeln('vvedite znachenie granic otrezka a-nachalo,b-konec');
 readln(a,b);
 writeln('kol-vo razbienia otrezka (a,b] :n');
 readln(n);
 h:=(b-a)/n;
 writeln('znachenie shaga',h:2:3);
 writeln('vvedem znachenie nachalnix proizvodnix');
 x[1]:=a;
for i:=1 to 4 do  {}
 begin            {}
  f(x[i],y[i]);   {}
  x[i+1]:=x[i]+h; {opredelaem nachalnie znachenia}
 end;             {}
 y[4]:=x[4]*x[4]/2-cos(x[4]); {}
 Adams;
 for i:=4 to n do
    yp[i]:=FP(x[i]);
  MaxP:=abs(y[4]-yp[4]);
 for i:=5 to n do
  if MaxP<abs(y[i]-yp[i]) then
      MaxP:=abs(y[i]-yp[i]);
 writeln('practicheskaia pogreshnost',MaxP:2:6);
{ writeln(y[i]);
 writeln(yp[i]);}
 MaxP:=abs(y[4]-yp[4])/(h*h*h*h);
 for i:=5 to n do
  if MaxP<abs(y[i]-yp[i])/(h*h*h*h) then
      MaxP:=abs(y[i]-yp[i])/(h*h*h*h);
  writeln('teoreticheskaia pogreshnost',MaxP:2:6);
 readkey;
end.
Спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2013, 12:33     Перевод из Pascal в C++
Посмотрите здесь:

C++ перевод с Pascal на C++
C++ Перевод с Pascal на C++
Перевод с pascal на c++ C++
Перевод из Pascal в C++ C++
C++ Перевод с pascal на c++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мотороллер
428 / 240 / 37
Регистрация: 05.08.2013
Сообщений: 1,629
Завершенные тесты: 1
15.11.2013, 12:40     Перевод из Pascal в C++ #2
с выводом мне влом писать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;
 
double func[100], x[100], y[100], yp[100], proiz[4], h, a, b, maxfp, maxp;
int i, n;
 
double f(double x, double y)
{
    return x+sin(x);
}
 
double FP(double x)
{
    return pow(x, 2)/2-cos(x);
}
Сергей111111212
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 6
15.11.2013, 12:42  [ТС]     Перевод из Pascal в C++ #3
Вот с выводом у меня проблема )
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
15.11.2013, 13:03     Перевод из Pascal в C++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Adams()
{
 cout << "metod Adamsa for reshenia zadachi Koshi" << endl;
 cout << "nachalnie proizvodnie" << endl;
for( int i=1; i<=4; i++ )
 {
 cout.width( 3 );
 cout << "x[" << i << "]=" << x[i] << "      f(x[" << i << " ],y[ " << i << "])=" << f(x[i],y[i]) << endl;
 }
 cout.width( 3 );
 cout << "nachalnoe znachenie Y=" << y[4] << endl;
 for( int i=4; i<=n; i++ )
  {
   y[i+1]=y[i]+h/24*(55*f(x[i],y[i])-59*f(x[i-1],y[i-1])+37*f(x[i-2],y[i-2])-9*f(x[i-3],y[i-3]));
   x[i+1]=x[i]+h;
   cout.width( 3 );
   cout << "x[" << i+1 << "]=" << x[i+1] << "    y[" << i+1 << "]=" << y[i+1] << endl;
  }
}
Но имейте в виду, что нумерация массивов в C++ начинается с нуля.
Сергей111111212
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 6
15.11.2013, 13:13  [ТС]     Перевод из Pascal в C++ #5
Спасибо )
Хотелось бы что бы до конца код переделать))
Yandex
Объявления
15.11.2013, 13:13     Перевод из Pascal в C++
Ответ Создать тему
Опции темы

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