Рассматривая комплексное число как запись, состоящую из двух вещественных полей, составить функции выполнения четырёх арифметических операций с комплексными числами.
volvo
21.08.2005 17:53
Цитата(eugenek @ 21.08.05 13:49)
Рассматривая комплексное число как запись, состоящую из двух вещественных полей, составить функции выполнения четырёх арифметических операций с комплексными числами.
Ну, так в чем проблема?
Type Complex = Record re, im: Double; End;
{ И реализуй процедуры сложения, вычитания, умножения и деления... } Procedure complexAdd(Var res: Complex; a, b: Complex); ... Procedure complexSub(Var res: Complex; a, b: Complex); ... Procedure complexMult(Var res: Complex; a, b: Complex); ... Procedure complexDiv(Var res: Complex; a, b: Complex); ...
Полностью-то ЗА ТЕБЯ этого делать никто не будет...
eugenek
21.08.2005 23:38
Цитата(volvo @ 21.08.05 13:53)
Ну, так в чем проблема?
Правильно?
Program lab_45;
Type Complex = Record re, im: Double; End;
var res,a,b,d : Complex; zero : boolean;
Procedure print(d: Complex); begin if d.re<>0 then write ('(',d.re:5:5) else write ('(0'); if d.im=0 then write (')') else begin if d.im<0 then write(' - ') else write(' + '); write('j',abs(d.im):5:5,')'); end; end;
Procedure complexAdd(Var res: Complex; a, b: Complex); begin res.re:= a.re + b.re; res.im:= a.im + b.im; end;
Procedure complexSub(Var res: Complex; a, b: Complex); begin res.re:= a.re - b.re; res.im:= a.im - b.im; end;
Procedure complexMult(Var res: Complex; a, b: Complex); begin res.re:= (a.re*b.re)-(a.im*b.im); res.im:= (a.re*b.im)+(a.im*b.re); end;
Procedure complexDiv(Var res: Complex; a, b: Complex); begin if ((b.re=0) and (b.im=0)) then zero:=true else begin res.re:= ((a.re*b.re)+(a.im*b.im))/((b.re*b.re)+(b.im*b.im)); res.im:= ((a.im*b.re)-(a.re*b.im))/((b.re*b.re)+(b.im*b.im)); end; end;