Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Pascalprogramm

  Alt 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
  Mit Zitat antworten Zitat