Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Pascalprogramm (https://www.delphipraxis.net/112922-pascalprogramm.html)

recht_250 29. Apr 2008 18:03


Pascalprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich brauche unbedingt Hilfe.

Ich bin Student am Studienkolleg und habe dieses Jahr zum erstenmal Informatik.
Im Unterricht machen wir gerade Pascalprgramme.
das ist eine Aufgabe, die ich bis Freitag unbedingt lösen muss, aber es klappt nicht bei mir und ich finde den Fehler nicht.

Es wäre schön, wenn ihr euch das mal anschaut und mir den Fehler sagt und mir hilfe geben kann.

Danke.

PS: Im Anhang unten, ist die Datei als Text.

hoika 29. Apr 2008 18:05

Re: Pascalprogramm
 
Hallo,

wo ist denn ein Fehler ?

- deine Eingabewerte -> fehlt
- aktuelle Ausgabe des Programms -> fehlt
- was soll rauskommen -> fehlt

der Hausaufgaben-Löser (jaja, musste sein ;) )



Heiko

Nuclear-Ping 29. Apr 2008 19:15

Re: Pascalprogramm
 
Was für'n Kauderwelsch der Code ist ... wer soll denn da durchblicken? :shock:

hoika 29. Apr 2008 19:26

Re: Pascalprogramm
 
Hallo,

procedure Eingabe(var al,be:vektor);


Eingabe (a);


2 Parameter werdne erwartet, einer übergeben ???


Heiko

DeddyH 29. Apr 2008 19:29

Re: Pascalprogramm
 
Das ist bei den anderen Prozeduren genauso. Ich denke, man müsste sich mal über Gültigkeitsbereiche von Variablen schlau machen.

Klaus01 29. Apr 2008 19:42

Re: Pascalprogramm
 
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

recht_250 4. Mai 2008 12:30

Re: Pascalprogramm
 
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.

mkinzler 4. Mai 2008 12:32

Re: Pascalprogramm
 
Wie wäre es, wenn du deinen Quellcode richtig formatieren/den Delphi-Tag verwenden würdest?

recht_250 4. Mai 2008 12:40

Re: Pascalprogramm
 
sorry, ich versteh nicht was du meinst.

mkinzler 4. Mai 2008 12:52

Re: Pascalprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Markiere deinen Code und Klicke auf Delphi-Code


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz