Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 06.04.2009, 16:06   #1
arthur457
 
Регистрация: 17.03.2009
Сообщений: 5
По умолчанию Помогите плиз ..

Необходимо с языка С++ переделать на Турбо Паскаль.

Код:
#include <iostream.h>
#include <math.h>
#include <conio.h>
void main()
{ double a, b, c, d;
  const double e=0.0001;
  long double l, x, y, x0, y0;
  cout<<"a="; cin>>a;
  cout<<"b="; cin>>b;
  cout<<"c="; cin>>c;
  cout<<"d="; cin>>d;
  l=1.0;
  x=0;
  y=0;
  while(fabs(a+exp(c*pow(x,2)+d*pow(y,2))*2*c*x)>=e/2||fabs(b+exp(c*pow(x,2)+d*pow(y,2))*2*d*y)>=e/2)
  { x0=x-l*(a+exp(c*pow(x,2)+d*pow(y,2))*2*c*x);
    y0=y-l*(b+exp(c*pow(x,2)+d*pow(y,2))*2*d*y);
    if((a*x0+b*y0+exp(c*pow(x0,2)+d*pow(y0,2)))>(a*x+b*y+exp(c*pow(x,2)+d*pow(y,2))))
    l=l/2;
    else {x=x0; y=y0;} //cout<<x<<" "<<y; getch();}
  }
  cout<<"xmin="<<x<<endl<<"ymin="<<y;
  getch();
}

Последний раз редактировалось MaTBeu; 06.04.2009 в 18:56.
arthur457 вне форума
Старый 06.04.2009, 18:29   #2
Pashan
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 89
По умолчанию

Давно не писал на паскале, а проверять негде, поэтому могу что-то напутать. Но в общем примерно так:

Код:
uses
  crt, math; { ??? }

const
  e = 0.0001;

var
  a, b, c, d: Real;
  l, x, y, x0, y0: Real;

begin
  write('a='); read(a);
  write('b='); read(b);
  write('c='); read(c);
  write('d='); read(d);
  l := 1.0;
  x := 0;
  y := 0;
  while (...) do begin
    x0 := ...;
    y0 := ...;
    if (...)
      l := l / 2
    else begin
      x := x0;
      y := y0;
    end;
  end;
  write('xmin=', n, 'ymin', y);
  readln;
end.
Не помню, какие типы с плавающей точкой есть кроме Real. В Delphi есть Extended, но не факт, что он есть в паскале.
Математические функции должны быть примерно такие же, как и в C++.
Только вроде вместо fabs просто abs. Возведение в степень не помню.
С названиями модулей тоже не уверен.
Pashan вне форума
Старый 06.04.2009, 18:35   #3
arthur457
 
Регистрация: 17.03.2009
Сообщений: 5
По умолчанию

Cпасибо большое )))кажись все догнал
arthur457 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите плиз Loke Свободное общение 3 14.07.2008 09:08
Помогите плиз Victoria Паскаль, Turbo Pascal, PascalABC.NET 1 23.05.2008 22:48