Registriert seit: 29. Apr 2008
10 Beiträge
|
Re: Pascalprogramm
4. Mai 2008, 12:30
Hallo.
Irgendwie verstehe ich nicht was Hoiko da meint mit Eingabewert und so.
Vielleicht kann mir von euch noch jemand genauer weiter helfen.
Ich weiß auch nicht warum da alles doppelt steht. Wir haben das so vom Lehrer bekommen.
Hier nochmal:
Delphi-Quellcode:
program Kreuz_Produkt;
const n=3;
{Anzahl der Dimension. Man kann offentsichtlich eine beliebige natrliche
Zahl in n einsetzen. Nur die Procedure Kreuz gilt fr n=3. Fr n>3 gibts
kein Kreuz mehr!}
type Vektor=array [1..n] of real; {vektor mit n reelen Komponenten}
procedure Kreuz(a,b: Vektor; var kr: Vektor);
{die Procedure berechnet das Kreuz von 2 Vektoren a und b, welche
als KONSTANTE PARAMETER schon vorgegeben sind. Das Kreuz wird in den
VERŽNDERLICHEN PARAMETER, also Vektor kr gespeichert. Warum ist kr ein
ver„nderlicher Parameter? Denn, wenn wir sonst kr als einen Konstanten
Parameter betiteln wrden, k”nnte der Wert von kr aber nach der Ausfhrung
der Procedure nicht ver„ndert werden. Zum Probieren k”nnt ihr ja das Wort
"Var" vor kr weglassen und den Wert von kr betrachten. Der bleibt aber
unver„ndert.
}
begin
kr[1]:=a[2]*b[3]-a[3]*b[2];
kr[2]:=a[3]*b[1]-a[1]*b[3];
kr[3]:=a[1]*b[2]-a[2]*b[1];
end;
procedure Addier(a,b:Vektor;var s:vektor);
var i:integer;
begin
for i:=1 to n do s[i]:=a[i]+b[i];
end;
procedure Subtrahier(a,b:Vektor;var s:vektor);
var i:integer;
begin
for i:=1 to n do s[i]:=a[i]-b[i];
end;
procedure Skalar(a,b:Vektor;var sk:real);
var i:integer;
begin
sk:=0;
for i:=1 to n do sk:=sk+a[i]*b[i];
end;
procedure Ausgabe(a:Vektor);
{stellt a in den Bildschirm dar nach der Form (a1,a2,a3)}
begin
write (' (',a[1]:0:3,',',a[2]:0:3,',',a[3]:0:3 ,') ');
end;
procedure Eingabe(var a:vektor);
{einen Vektor von der Tastatur eingeben}
var i:integer;
begin
writeln;
for i:=1 to n do
begin
write('Die ',i,'-te Komponente:');readln(a[i]);
end;
end;
VAR
a,b,c:Vektor;t:real;
BEGIN
a[1]:=1;a[2]:=0;a[3]:=0;
write('a= ');Ausgabe(a);writeln;
b[1]:=0;b[2]:=1;b[3]:=0;
write('b= ');Ausgabe(b);writeln;
Kreuz(a,b,c);write('a * b = ');Ausgabe(c);writeln;
Skalar(a,b,t);writeln('a . b = ',t:0:3);
write('Vektor a wiederum eingeben!');Eingabe(a);
write('Vektor b wiederum eingeben!');Eingabe(b);
Kreuz(a,b,c);write('a * b = ');Ausgabe(c);writeln;
Skalar(a,b,t);write('a . b = ',t:0:3);
readln;
END.
Es wäre schön wenn ihr mit weiter helfen könnt.
Ich muss das heute Abend meinem Lehrer auf Zensoerung schicken.
Danke an alle.
|
|
Zitat
|