Zespolone oraz macierze w delphi

0

Witam posiadam delphi 3 Standard(wiem ze w nowszych delphi jest łatwiej to zrobić ale nie mogę niestety, bo promotor pracy licencjackiej uparł się na tą wersję, bo na nią ma papiery uczelnia), i mam pytanie, chodiz konkretnie o podpowiedź, bądź krótki przykład jak zrobić coś takiego:

-muszę zadeklarować liczbę zespoloną, mającą wartość j:=sqrt(-1)

-muszę zbudować macierz, tu wrzucę przykład tylko:
zm= [z^-1j , z]
[z , -z^-1
j]

-odwrócić tą macierz przez: zm2:=zm^-1.

Proszę o pomoc, głównie odnośnie liczby zespolonej, szukałem w intenecie i nie znalazłem jednomyślnej odpowiedzi. Jeśli nie wiecie, to może chociaż jakieś sugestie, lub pomysły. Pozdrawiam

0

buuuuuu delphi i zespolone to ciezki pomysl (Sam sie przekonalem)
na http://www.efg2.com/Lab/ sa unity do obslugi zespolonych (complex)

tu np elimnacja gaussa dla macierzy trojdiag z przykladem uzycia
ComplexMathLibrary.pas (z efg)

procedure TForm1.GaussTriDiag(Mat:TMatrixComplex; Vec: array of TComplex;var Rez: array of TComplex; Size:Integer);
var
 p,S:Array of TComplex;
 i,n:Integer;
begin

SetLength(p,Size+1);
SetLength(S,Size+1);

try
 n := Size;//

 p[1] := Mat[2][1];
 S[1] := Vec[1];

 for i:= 2 to n do
 begin
     p[i] := CSub(Mat[2][i],  CDiv(CMult(Mat[1][i],Mat[3][i-1]),p[i-1]));
     S[i] := CSub(Vec[i],  CDiv(CMult(Mat[1][i],S[i-1]), p[i-1]));
 end;

 Rez[n] := CDiv(S[n], p[n]);


 for i:=n-1 downto 1 do
 begin
   Rez[i] := CDiv(CSub(S[i], CMult(Mat[3][i],Rez[i+1])),  p[i]);
 end;

finally
 SetLength(p,0);
 SetLength(S,0);
end;

end;

uparl sie na delphi???? mozna w c++ jest darmowy mozna freepascal rowniez darmowy
no i w koncu mozna w fortranie gdzie operacje na liczbach zespolonych sa naturalne (w tym przypadku polecam !!!!)

w delphi latwo sie pomylic przy bardziej skomplikowanych obliczeniach

0

No niestety nie mogę zrobić tego w niczym innym jak w delphi 3, bo jak mówi na to szkoła ma 'papiery', i to mnie wkurza właśnie bo w wyższych wersjach delphi jest łątwiej to zrobić, a tu trzeba wszytsko na piechotę :[ Dzięki za info.

0

Budzik-X: Właśnie reichel przedstawił Ci propozycje DARMOWYCH języków. Na nie żadna szkoła/uczelnia/firma ani nic innego nie musi mieć papierów. Ostatecznie jak już koniecznie chcą, to niech sobie licencję GPL czy inną dotyczącą pozostałych języków wydrukują i mają wszystko legalnie. Jeśli Twój nauczyciel/wykładowca/promotor tego nie pojmuje (a są tacy, co nie rozumieją czegoś takiego jak "darmowe oprogramowanie" - zapewniam), to możesz go o tym uświadomić.
//Deti - autor nawiązuje do tego, że "łatwiej to by było zrobić w wyższych wersjach Delphi". My zaś proponujemy inne rozwiązania, o których możliwe, że w ogóle z osobą zlecającą nie rozmawiał, bo argumentuje (a właściwie przekazuje argumenty odgórne), że jest to spowodowane licencją. I całkiem to rozumiem, ale na rozwiązania podawane przez nas licencji nie trzeba... But never mind...

0

Ludzie? .. o czym Wy piszecie .. - autor postu zadał problem i musi to mieć w Delphi 3 .. a wy koniecznie wciskacie swoje darmowe oprogramowanie ni z gruszki ni z pietruszki.. ręce opadają..

Zadeklaruj sobie liczbę zespoloną jako TPoint, albo jako rekord dwóch pól Integer i wstawiaj ten typ do macierzy. Operacje można sobie napisać w osobne funkcje i mamy gotowy program - w czym problem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1