IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи, комплексные числа
eugenek
сообщение 21.08.2005 13:49
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Рассматривая комплексное число как запись, состоящую из двух вещественных полей, составить функции выполнения четырёх арифметических операций с комплексными числами.


--------------------
Это не деньги...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 21.08.2005 13:53
Сообщение #2


Гость






Цитата(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 19:38
Сообщение #3





Группа: Пользователи
Сообщений: 9
Пол: Мужской

Репутация: -  0  +


Цитата(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;



begin
zero:=false;
writeln('');
write('a.re=');readln(a.re);
write('a.im=');readln(a.im);
writeln('');
write('b.re=');readln(b.re);
write('b.im=');readln(b.im);
writeln('');
complexAdd(res,a,b);
print(a);write(' + ');print(b);write(' = ');print(res);writeln('');
complexSub(res,a,b);
print(a);write(' - ');print(b);write(' = ');print(res);writeln('');
complexMult(res,a,b);
print(a);write(' * ');print(b);write(' = ');print(res);writeln('');
complexDiv(res,a,b);
print(a);write(' / ');print(b);write(' = ');
if zero=false then print(res)else write ('Division by zero');
writeln('');
end.



Сообщение отредактировано: eugenek - 24.08.2005 19:49


--------------------
Это не деньги...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 10:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"