Найти значение комплексной функции - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д