Úkol na procedury a funkce – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Úkol na procedury a funkce – Pascal – Fórum – Programujte.comÚkol na procedury a funkce – Pascal – Fórum – Programujte.com

 

Malirka
~ Anonymní uživatel
34 příspěvků
1. 5. 2010   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 213.168.179.–
Mircosoft+1
Věrný člen
3. 5. 2010   #2
-
0
-

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.

Nahlásit jako SPAM
IP: 130.119.248.–
Chceš-li lepší odpověď, polož lepší otázku.
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

Procedury a funkce — založil xy3000

Funkce a procedury — založil kozomelec

Procedury a funkce — založil Tomas

Procedury — založil Akk

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý