Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Математические функции


Автор: Sunvas 26.11.2006, 21:42
user posted image

Автор: volvo877 26.11.2006, 23:48
Ну, здесь гораздо проще:

Код

type
  complex = record
    re, im: real;
  end;
  coeff = record
    a, b, c: complex;
  end;

procedure Value(p: coeff; x: complex; var y: complex);

  procedure mult(var res: complex; _1, _2: complex);
  begin
    res.re := _1.re*_2.re - _1.im*_2.im;
    res.im := _1.re*_2.im + _2.re*_1.im;
  end;
  procedure add(var res: complex; _1, _2: complex);
  begin
    res.re := _1.re + _2.re;
    res.im := _1.im + _2.im;
  end;

var
  T1, T2: complex;

begin
  mult(T1, x, x);
  mult(T1, p.a, T1); { T1 = a * x^2 }

  mult(T2, p.b, x);  { T2 = b * x }
  add(y, T1, T2);
  add(y, y, p.c)


end;
 
{ Тестовые значения: }
const
  test: coeff = (
    a:(re:2; im:3);
    b:(re:4; im:2);
    c:(re:5; im:7)
  );
  x: complex = (
    re:1; im:2
  );

var
  res: complex;
begin
  Value(test, x, res);
  writeln('complex value = ', res.re:6:2, ' + i*':2, res.im:6:2);
end.

(можно, конечно, сделать еще и процедурку красивого вывода, но насколько видно из задания - это не главное, задача стоит - написать процедуру Value)  smile 

Автор: Sunvas 27.11.2006, 00:34
Спасибо еще раз volvo877! Будь всегда таким щедрым.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)