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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2015, 12:26   #1
bublegoom
 
Регистрация: 19.05.2015
Сообщений: 3
Сообщение Pascal Abc. Вычисления с комплексными числами

Нужна помощь с комплексными числами. Можете подсказать,что нужно исправить в программе и что добавить,чтобы выводился результат. Очень нужно. Заранее спасибо!
Код:
Program CL;
type
tComplex = class
private
 x,y : real;
 
constructor create (a,b :real);
begin
 x:=a;
 y:=b;
end;
procedure Write (c:tComplex);
 begin
  writeln ('Введите комплексное число x+yi: ');
  case (c.y) of
    -1 : Write(c.x,' + ', Abs(c.y), 'i·');
     0 : Write(c.x);
    +1 : Write(c.x,' + ', c.y, 'i·');
  end;
 end;
procedure Writeln (c:tComplex);
 begin
 write('Комплексное число  ',c);
 end;
procedure PrintMod (a,b : tComplex);
 var a,b,M :real;
 begin
 M:= sqrt(a*a + b*b);
 writeln('Модуль комплексного числа равен: ', M);
 end;
procedure PrintArg( a,b : tComplex);
var a, b, Ar : real;
 begin
 if a>0 then
  Ar := arcTan (b/a)
 else
  if (a<0) and (b>0) then
   Ar := Pi + arcTan(b/a)
  else
   Ar := -Pi + arcTan(b/a);
writeln ('Аргумент комплексного числа равен:', Ar);


end.

Последний раз редактировалось Poma][a; 19.05.2015 в 12:35.
bublegoom вне форума Ответить с цитированием
Старый 19.05.2015, 13:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Жуть. Очень много косяков! ошибок выше крыши!
процедуру procedure Write (c:tComplex);
выкиньте ПОЛНОСТЬЮ!

вместо
Цитата:
Код:
procedure Writeln (c:tComplex);
 begin
 write('Комплексное число  ',c);
 end;
напишите примерно так:
Код:
procedure WritelnComplex (c:tComplex);
begin
 write('Комплексное число ', c.x:0:5, ' '); {выводим 5 знаков после десятичной запятой}
 if c.y=>0 then Write('+');
 WriteLn(c.y:0:5,'*i);
end;

хотя, думаю, что и это надо изменять, скорее всего это всё должны быть методы класса tComplex.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2015, 21:13   #3
bublegoom
 
Регистрация: 19.05.2015
Сообщений: 3
По умолчанию

Это моя первая объектная программа старалась как могла
Спасибо за помощь, только может еще добавить в конец нужно?чтобы программа выводила результат. Я просто что-то не могу разобраться

теперь он выдает ошибку,что "Undefined FileName" не найден. Что делать?

Код:
Program CL;
type
tComplex = class
private
 x,y : real;
 
constructor create (a,b :real);
begin
 x:=a;
 y:=b;
end;

procedure WritelnComplex (c:tComplex);
begin
 write('Комплексное число ', c.x:0:5, ' '); {выводим 5 знаков после десятичной запятой}
 if (c.y)=>0 then Write('+');
 WriteLn(c.y:0:5,i);
end;
procedure PrintMod (a,b : tComplex);
 var a,b,M :real;
 begin
 M:= sqrt(a*a + b*b);
 writeln('Модуль комплексного числа равен: ', M);
 end;
procedure PrintArg( a,b : tComplex);
var a, b, Ar : real;
 begin
 if a>0 then
  Ar := arcTan (b/a)
 else
  if (a<0) and (b>0) then
   Ar := Pi + arcTan(b/a)
  else
   Ar := -Pi + arcTan(b/a);
writeln ('Аргумент комплексного числа равен:', Ar);
end;
end;
Var
x,y,a,b,M,Ar: real; 

begin
read(x,y);
c : new tComplex(x,y);
c.PrintMod;
c.PrintArg;

end.

Последний раз редактировалось Stilet; 20.05.2015 в 10:02.
bublegoom вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто работал с комплексными числами? Smitt&Wesson Общие вопросы C/C++ 7 23.08.2014 15:56
задача с комплексными числами.... *DImKa* Помощь студентам 6 05.01.2012 03:07
Работа с комплексными числами Аким Ба Паскаль, Turbo Pascal, PascalABC.NET 0 18.10.2011 23:45
Программа вычисления нулей функции с комплексными числами! denismax Фриланс 3 04.04.2011 11:33
Проблема с комплексными числами -=aHTPoПоС=- Помощь студентам 3 08.12.2009 21:02