Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
Delphi 10.4 Sydney
|
Re: Pascalprogramm
29. Apr 2008, 19:42
Guten Abend,
habe es mal etwas kommentiert.
Es hängt noch irgendwo.Korrektur, es hängt nicht, es wartet auf Benutzereingaben.
Etwas sprechendere Prozedure- und Variablennamen wären nicht schlecht.
Die Eingabe ist etwas unglücklich, und wird des öfteren wiederholt, den Grund
dafür sehe ich nicht.
Delphi-Quellcode:
program vektrech;
{Programmtext(Susila), Erklärung(Revilla), Eingabe (Ali, Oentari), Summe (Ren, Kambang, Abuali), Differenz(Mewara, Sthapit, Zhong), Skalarprodukt(Habig, Keshmiri, Younes), Kreuzprodukt(Gregoryev, Nguyen, Tognia)}
const n=3;
type
vektor = array[1..n] of real;
var
a, b, s, d, k : vektor;
sp:real;
procedure Eingabe(var al,be:vektor);
{var a1,a2,a3,b1,b2,b3:real;}
var
i: integer;
begin
writeln('Geben sie die Komponenten der vektoren ''al'' und ''be''ein');
for i:=1 to n do
begin
{al:=a;be:=b;}
write('a:');
readln(al[i]);
write('b:');
readln(be[i]);
end;
end;
procedure sum(al,be:vektor;var su: vektor);
var
k:integer;
begin
for k:= 1 to n do
begin
read (al[k],be[k]); // warum werden hier die Wert nocheinmal eingelesen
su[k]:= al[k]+be[k];
write(su[k]);
end;
end;
procedure di(al,be:vektor; var di: vektor);
var k: integer;
begin
for k:=1 to n do
begin
read(al[k]); // warum hier auch noch einmal einlesen?
read(be[k]); // warum hier auch noch einmal einlesen?
di[k{i}]:=al[k]-be[k]; // wo kommt das i her ??
write(di[k]);
end;
end;
procedure skal (var skap: real; al, be: vektor);
begin
skap:=al[1]*be[1]+al[2]*be[2]+al[3]*be[3];
end;
procedure Kreuz(a,b: Vektor; var kr: Vektor);
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;
begin // Hauptprogramm
// die Parameterübergabe war im original falsch
// ob sie jetzt richtig ist ??
Eingabe(a,b);
sum (a,b,s);
di(a,b,s);
skal(sp,a,b);
kreuz (a,b,k);
end.
Grüße
Klaus
Klaus
|