Dobrý den, prosím o pomoc s tímto programem:
Sestavte proceduru pro výpočet součinu dvou komplexních čísel a použijte ji pro řešení následující úlohy: jsou dána tři komplexní čísla, vynásobte nejprve ta dvě čísla, která mají největší reálnou část, a potom ta dvě čísla, která mají nejmenší imaginární část.
Udělal jsem proceduru, doufám, že aspoň tu dobře, ale dál si nevím rady.
type Komplex
Procedure Soucin(A,B:Komplex;var C:Komplex);
begin
C.R:=A.R*B.R-A.I*B.I;
C.I:=A.R*B.I+A.I*B.R;
end;
begin
n:=3
for i:=1 to n do
begin
Fórum › Delphi
Komplexní čísla
Asi je to trochu divně zadáno, možná tím zadavatel myslel "vynásobte nejprve ta dvě čísla, která mají větší reálnou část"...
Třeba by to bylo jednodušší říct obráceně:"zjistěte, které z těch tří čísel má nejmenší reálnou část a ta zbývající dvě vynásobte".
Takže prostě přečti ty tři čísla (asi do tří proměnných třeba c1, c2, c3) a třeba větvením najdi tu dvojici větších čísel (neřeším, když jsou stejný):
jestliže c1.re>c3.re a_zároveň c2.re>c3.re
tak Soucin(c1,c2,soucin_vetsich)
jinak
jestliže c1.re>c2.re a_zároveň c3.re>c2.re
tak Soucin(c1,c3,soucin_vetsich)
jinak Soucin(c2,c3,soucin_vetsich)
ta druhá část analogicky
Já v tom moc neumím a musím udělat tenhle poslední program právě. Děkuji, že mi radíš. Chtěl bych tě poprosit, jestli by jsi mi to nezprovoznil..pořád nad tym přemýšlím..hledám po netu..jedinné co jsem dal dohromady je tohle, ale nevim jak to poskladat, nějak deklarovat ty proměnné. :(
type Komplex
Function re(Cislo:Komplex):real;
begin
Re:=Cislo.re;
end;
Function im(Cislo:Komplex):real;
begin
Im:=Cislo.im;
end;
Procedure soucin(A,B:Komplex;var V:Komplex);
begin
V.re:=A.re*B.re-A.im*B.im;
V.im:=A.re*B.im+A.im*B.re;
end;
var c1,c2,c3:Komplex;
begin
readln(c1);
readln(c2);
readln(c3);
if (c1.re>c3.re) and (c2.re>c3.re) then Soucin(c1,c2,soucin_vetsich);
else
if(c1.re>c2.re) and (c3.re>c2.re) then soucin(c1,c3,soucin_vetsich);
else soucin(c2,c3,soucin_vetsich);
if (c1.im<c3.im) and (c2.im<c3.im) then soucin(c1,c2,soucin_mensich);
else
if(c1.im<c2.im) and (c3.im<c2.im) then soucin(c1,c3,soucin_mensich);
else soucin(c2,c3,soucin_mensich);
writeln(V.im,V.re);
end.
A to si jen tak píšeš, nebo to taky zkoušíš překládat, ladit a spouštět v nějakém IDE?
Chybí ti tam deklarace toho typu komplex a samozřejmě deklarace výstupních proměnných.
Funkce Re a Im máš deklarovány zbytečně, vždyť je tam nikde nepoužíváš...
Koukni se na typ záznam (record) a taky jak se u něj čtou a vypisují položky.
No musím to odevzdat ve škole, abych dostal zápočet. Já tomu právě moc nerozumim. Mám to jen jeden semestr právě. Snažím se na to přijít, ale nejde mi to. Zadávám to do delphi a zkouším to zpouštět. Jako aby to byl funkční program.
jo ty funkce by měli být asi takhle si myslim:
FUNCTION CastReal(r1,i1,r2,i2 :real):real;
Begin
CastReal:= (r1*r2)-(i1*i2);
End;
FUNCTION CastImag(r1,i1,r2,i2 :real):real;
Begin
CastImag:= (r1*i2)+(i1*r2);
End;
To Radek :
Když odhlédnu od toho, že na VŠ děláte ty samé příklady jako na SŠ, tak je trochu smutné, žes nepochopil princip.
Abys dostal zápočet a mohl jít dál, musíš tomu porozumět. Programování není kategorie typu: večer před zkouškou se to našrotím a pak to už můžu zapomenout...
Jestli to není tajný, co studuješ za školu? Seš si jistý, že programování máte jen jeden semestr a pak už k němu ani nečuchneš?
K tomu cos napsal, zatím všechno mimo.
Ty funkce opravdu nemají být tak, jak jsi napsal, to by zas byla úplně zbytečná procedura Soucin.
A místo teho komplex nemá být real, protože komplexní číslo má dvě položky, real jen jednu asi...
Přijde mi, žes to odněkud zkopíroval a ani nevíš co a jak to použít.
Takže ještě jednou:
Koukni se na typ záznam (record) a taky jak se u něj čtou a vypisují položky.
Doufám, že aspoň nějakou příručku, nebo skripta na to programování máš, pokud ne, na internetu to najdeš...
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Komplexní čísla — založil Kuře
Maple 13...komplexní cisla — založil Fridrich Tomas
Komplexní šísla — založil lekejs
Komplexní číslo — založil Adam