type tKomplex = record {typ komplexni cislo}
Re : real;
Im : real;
end;
const KomplexniNula:tKomplex=(Re:0;Im:0); {typova konstanta}
Algoritmy:
Reálná a imaginární složka
Výpočet velikosti a argumentu
Výpis komplexního čísla
Číslo komplexně sdružené
Početní operace s komplexními čísly
Zadání:
Function Re(Cislo:tKomplex):real;
{Funkce urci realnou cast komplexniho cisla}
begin {Re}
Re:=Cislo.Re;
end; {Re}
Function Im(Cislo:tKomplex):real;
{Funkce urci imaginarni cast komplexniho cisla}
begin {Im}
Im:=Cislo.Im;
end; {Im}
Seznam algoritmů
Zadání:
Function Velikost(Cislo:tKomplex):real;
{Funkce urci velikost komplexniho cisla}
begin {Velikost}
Velikost:=sqrt(sqr(Re(Cislo))+sqr(Im(Cislo)));
end; {Velikost}
Function Argument(Cislo:tKomplex):real;
{Funkce urci argument komplexniho cisla}
var pom:real;
begin {Argument}
if Cislo.Re < > 0 then
begin
pom:=arctan(abs(Cislo.im)/abs(Cislo.re));
if (Cislo.re > 0) and (Cislo.im < 0) then pom:=-pom;
if (Cislo.re < 0) and (Cislo.im > 0) then pom:=PI-pom;
if (Cislo.re < 0) and (Cislo.im < 0) then pom:=-PI+pom;
Argument:=pom;
end {Realna slozka je nulova}
if Cislo.Im > 0 then Argument:=Pi/2 else
if Cislo.Im < 0 then Argument:=3*Pi/2 else
if Cislo.Im = 0 then Argument:=0;
end; {Argument}
Seznam algoritmů
Zadání:
Procedure Pis_Slozkove(Cislo:tKomplex);
{Procedura vypise komplexni cislo ve slozkovem tvaru.}
var zn:string;
begin {Pis_Slozkove}
if Im(Cislo)< 0 then zn:='-'
else zn:='+';
write(Re(Cislo),' ',zn,' ',abs(Im(Cislo)),' j');
end; {Pis_Slozkove}
Procedure Pis_Exponencialne(Cislo:tKomplex);
{Procedura vypise komplexni cislo v exponencialnim tvaru.}
begin {Pis_Exponencialne}
Write(Velikost(Cislo):5:5,' e^(j * ',Argument(Cislo):3:3,' )')
end; {Pis_Exponencialne}
Seznam algoritmů
Zadání:
Procedure Sdruzene(Cislo:tKomplex;var Sdruzene:tKomplex);
{Procedura vrati cislo komplexne sdruzene}
begin {Sdruzene}
Sdruzene.Re:=Cislo.Re;
Sdruzene.Im:=-(Cislo.Im);
end; {Sdruzene}
Seznam algoritmů
Zadání:
Procedure Soucet(A,B:tKomplex;var C:tKomplex);
{Procedura vrati soucet dvou komplexnich cisel}
begin {Soucet}
C.Re:=A.Re+B.Re;
C.Im:=A.Im+B.Im;
end; {Soucet}
Procedure Rozdil(A,B:tKomplex;var C:tKomplex);
{Procedura vrati rozdil dvou komplexnich cisel}
begin {Rozdil}
C.Re:=A.Re-B.Re;
C.Im:=A.Im-B.Im;
end; {Rozdil}
Procedure Soucin(A,B:tKomplex;var C:tKomplex);
{Procedura vrati soucin dvou komplexnich cisel}
begin {Soucin}
C.Re:=(A.Re*B.Re)-(A.Im*B.Im);
C.Im:=(A.Re*B.Im)+(A.Im*B.Re);
end; {Soucin}
Procedure Podil(A,B:tKomplex;var C:tKomplex);
{Procedura vrati pozdil dvou komplexnich cisel}
begin {Podil}
C.Re:=((A.Re*B.Re)+(A.Im*B.Im))/(Sqr(B.Re)+Sqr(B.Im));
C.Im:=((A.Im*B.Re)-(A.Re*B.Im))/(Sqr(B.Re)+Sqr(B.Im));
end; {Podil}
Seznam algoritmů
|
|
21. 10. 1999 |
|
|
||
|
|