Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Перевод с Pascal на C++ (http://forum.oszone.net/showthread.php?t=253889)

sleepking89 13-02-2013 08:56 2089266

Перевод с Pascal на C++
 
Народ трабл с переводом...

Код:

Program LAB3_4;
Var x,f,eps,a,n:real;
Begin
Write('Введите значение аргумента: x = ');
 Readln(x);
Write('Введите значение точности: eps = ');
 Readln(eps);
f:=x;
 A:=x;
n:=3;
 repeat a:=(-a)*x*x*(n-2)/n;
f:=f+a;
n:=n+2;
until abs(a)<eps;
Writeln('Арктангенс Х: ',f);
Writeln('Контрольное значение вычисленной функции: ',arctan(x));
End.


Tonny_Bennet 13-02-2013 09:20 2089272

sleepking89, и в чём трабл? Вы понимаете как работает эта программа? Что делает каждый оператор?

Drongo 15-02-2013 16:28 2091245

Не уверен что правильно переведу, но попробую.

Код:

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <math.h>

int main()
{
  int x, f, esp, a, n;

  cout << "Введите значение аргумента Х = ";
  cin >> x;
  cout << "Введите значение агрумента точности esp = ";
  cin >> esp;

  f = x;
  a = esp;
  n = 3;
 
  do{
      a = (-a) * x * x * (n - 2) / n;
      f += a;
      n += 2;
    } while(abs(a) < eps);

  cout << "Арктангенс Х = " << f << endl;
  cout << "Контрольное значение вычисленной функции = " << arctan(x) << endl;
  cin >> a;
  return 0;
}

p.s. Не проверял тригонометрические функции, это вы уже сами.

novashdima 16-02-2013 04:32 2091691

Цитата:

Цитата Drongo
using std::cout;
using std::cin;
using std::endl; »

Вместо этого лучше написать:
Код:

using namespace std;
еще у него переменные типа real, а вы написали int, и еще парочка замечаний, так что конечный вариант будет примерно таким(имхо):
Код:

#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;

int main()
{
  float x, f, esp, a, n;

  cout << "Введите значение аргумента Х = ";
  cin >> x;
  cout << "Введите значение агрумента точности esp = ";
  cin >> esp;

  f = x;
  a = esp;
  n = 3;
 
  do{
      a = (-a) * x * x * (n - 2) / n;
      f += a;
      n += 2;
    } while(abs(a) < eps);

  cout << "Арктангенс Х = " << f << endl;
  cout << "Контрольное значение вычисленной функции = " << arctg(x) << endl;
  getch();
  return 0;
}



Время: 21:18.

Время: 21:18.
© OSzone.net 2001-