Ahoj.Mám dle daných instrukcí předělat jeden program vektory, ale nějak se mi to nedaří. Výchozí program je v připojeném souboru a nějaký můj výtvor zde hned dám.
Mezi ty instrukce jak mám program opravit jsou zde:
- vytvořte proceduru nebo funkci VELIKOST, která vypočte velikost zadaného vektoru, začleňte ji do programu tak, aby se postupně vypočetly a zobrazily velikosti vektorů u, v, u+v, u-v.
- vytvořte proceduru VSTUP s jedním parametrem volaným odkazem typu VEKTOR, která zajistí vyžádání a uložení souřadnic daného vektoru
- upravte první řádky hlavního programu tak, aby pro vstup souřadnic vektorů u a v byla využita procedura VSTUP.
Moc Vám děkuju jestli mi s tím někdo poradíte. Zde je nějaký můj výtvor, ale moc toho není:
Uses crt;
TYPE vektor=record
x,y:real;
end;
var u,v,w:vektor;
S:real;
procedure SOUCET(A,B:vektor;var C:vektor);
begin
c.x:= a.x+b.x;
c.y:= a.y+b.y;
end;
procedure ROZDIL(A,B:vektor;var C:vektor);
begin
c.x:= a.x-b.x;
c.y:= a.y-b.y;
end;
procedure SKSOUCIN(U,V:vektor;var S:real);
begin
S:= u.x*v.x+u.y*v.y;
end;
function SKSOUCIN1(U,V:vektor):real;
begin
SKSOUCIN1:= u.x*v.x+u.y*v.y;
end;
function KOLME(u,v:vektor):boolean;
begin
KOLME:= SKSOUCIN1(u,v)=0 ;
end;
function KOLME1(u,v:vektor):string;
begin
IF SKSOUCIN1(u,v)=0 then KOLME1:='Zadane vektory jsou kolme.'
else KOLME1:='Zadane vektory nejsou kolme.';
end;
procedure VYSTUP(v:vektor);
begin
writeln(' = (',v.x:4:1,'; ',v.y:4:1,')');
end;
function VELIKOST(u,v: Vektor):Real;
begin
VELIKOST:= Sqrt(u.x*u.x + u.y*u.y);
end;
function VELIKOST1(u,v: Vektor):Real;
begin
VELIKOST1:= Sqrt(v.x*v.x + v.y*v.y);
end;
procedure VSTUP(m: Vektor);
begin
end;
begin
writeln('Vektory:');
Writeln;
write('Zadejte prvni souradnici vektoru u: ');
readln(u.x);
write('Zadejte druhou souradnici vektoru u: ');
readln(u.y);
write('Zadejte prvni souradnici vektoru v: ');
readln(v.x);
write('Zadejte druhou souradnici vektoru v: ');
readln(v.y);
writeln;
Write('Velikost souradnic u pomoci funkce: ');
Writeln('u = ',VELIKOST(u,v):3:2);
Write('Velikost souradnic v pomoci funkce: ');
Writeln('v = ',VELIKOST1(u,v):3:2);
Writeln;
write('u'); VYSTUP(u);
write('v'); VYSTUP(v);
SOUCET(u,v,w);
write('u + v'); VYSTUP(w);
ROZDIL(u,v,w);
write('u - v'); VYSTUP(w);
Writeln;
write('Skalarni soucin pomoci procedury: ');
SKSOUCIN(u,v,S);
writeln('u.v = ',S:3:1);
write('Skalarni soucin pomoci funkce: ');
writeln('u.v = ',SKSOUCIN1(u,v):3:1);
Writeln;
write('Kolmost vektoru pomoci funkce KOLME(u,v): ');
if KOLME(u,v) then writeln('Zadane vektory jsou kolme.')
else writeln('Zadane vektory nejsou kolme.');
write('Kolmost vektoru pomoci funkce KOLME1(u,v): ');
writeln(KOLME1(u,v));
readln;
end.
Fórum › Pascal
Úkol na procedury a funkce
Ve funkci Velikost máš nějak moc parametrů, má tam být jenom jeden:
function VELIKOST(u:Vektor):Real;
begin
VELIKOST:= Sqrt(u.x*u.x + u.y*u.y);
end;
A Velikost1 je zbytečná, smaž ji. Jinak to vypadá dobře.
Procedura pro zadání vektoru by mohla začínat třeba takhle:
procedure VSTUP(m: Vektor);
begin
write('Zadejte prvni souradnici vektoru: ');
readln(m.x);
...
Zbytek už zvládneš, stačí to vytáhnout z hlavního programu a změnit jméno proměnné na m.
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Moje stránka.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 21 hostů
Podobná vlákna
Procedury a funkce — založil xy3000
Funkce a procedury — založil kozomelec
Procedury a funkce — založil Tomas
čas vykonání procedury/funkce — založil Ed
Moderátoři diskuze