![]() |
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. |
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 |
Re: Pascalprogramm
Was für'n Kauderwelsch der Code ist ... wer soll denn da durchblicken? :shock:
|
Re: Pascalprogramm
Hallo,
procedure Eingabe(var al,be:vektor); Eingabe (a); 2 Parameter werdne erwartet, einer übergeben ??? Heiko |
Re: Pascalprogramm
Das ist bei den anderen Prozeduren genauso. Ich denke, man müsste sich mal über Gültigkeitsbereiche von Variablen schlau machen.
|
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:
Grüße
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. Klaus |
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. |
Re: Pascalprogramm
Wie wäre es, wenn du deinen Quellcode richtig formatieren/den Delphi-Tag verwenden würdest?
|
Re: Pascalprogramm
sorry, ich versteh nicht was du meinst.
|
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. |
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