Найти значение комплексной функции - Free Pascal

Узнай цену своей работы

Формулировка задачи:

1. Найти значение переменной Необходимо создать: несколько подпрограмм, которые позволяют складывать, вычитать, умножать и делить комплексные числа; функции, возвращающие аргумент и модуль комплексного числа; процедуры, позволяющие ввести комплексное число с клавиатуры и вывести его на экран. Также потребуется описать пользовательский тип TComplex (запись).

Решение задачи: «Найти значение комплексной функции»

textual
Листинг программы
uses
  ucomplex;
 
// Ввод оставил без изменений
procedure readlnc(t: string; var a: complex);
var s, n: string;
    are, aim: real;
    i, err: integer;
begin
  repeat
    err := 0;
    write(t);
    readln(s);
    while pos(' ', s) > 0 do delete(s, pos(' ', s), 1);
    i := pos('i', s);
    if i = 0
      then s := s + '+i0'
      else if i = 1
        then s := '0+' + s
          else if i = 2
            then s := '0' + s;
    i := pos('i', s);
    if not(s[i - 1] in ['+', '-'])
      then err := 1
      else begin
        n := copy(s, 1, i - 2);
        delete(s, 1, i - 2);
        delete(s, 2, 1);
        val(n, are, err);
        if err = 0 then val(s, aim, err)
      end;
    if err > 0 then writeln('Input error, reenter.')
  until err = 0;
  a.re := are;
  a.im := aim
end;
 
var
  x, y: complex;
 
begin
  readlnc('x = ', x);
  readlnc('y = ', y);
 
  writeln('x = ', cstr(x, 6, 3));
  writeln('x = ', cstr(y, 6, 3));
 
  if cmod(x) > cmod(y) then
  begin
    if cmod(x * y) = 0 then writeln('undefined')
    else writeln('z = ', cstr((x + y) / (x * y), 6, 3))
  end
  else
  begin
    if cmod(y) = 0 then writeln('undefined')
    else writeln('z = ', cstr((y - x) / y, 6, 3));
  end;
  write('Press <Enter> to exit');
  readln
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы