Alle Dateien dieses Themas
| Dateiname | Dateigröße | geschrieben von | Datum | |
|---|---|---|---|---|
| test.pas | 683 bytes | Gloob | 17.05.10 22:00 | Nachricht lesen |
1 Hab ein Probelm
Autor: NF
(G)
(IP bekannt)
Datum: 17. Mai. 2010 20:53
Hallo ,
ich habe folgenden Quellcode :
Program Riversv2 ;
uses wincrt;
function Mittelwert ( n, s: real):real;
Var M: real;
Begin
Mittelwert:= 1/n * s;
End;
Begin
n:= 3;
s:= 4+8+12;
M:= Mittelwert;
Writeln(M);
End.
Leider funktioniert das ganze nicht .
Ich weiß für viele hier ist das bestimmt ganz einfach ,aber ich fange gerade erst mit Pascal an und leider weiß ich nicht was ich machen soll damit ich den Mittelwert raus bekomme.
Hoffe mir kann jemand helfen
MFG
2 Re: Hab ein Probelm
Autor: BP92
(R)
(IP bekannt)
Datum: 17. Mai. 2010 21:47
Hallo,
also so wie dein Quelltext bisher aussieht, weisst du doch zumindest schon mal, wie so ein Programm aufgebaut sein soll.
Der erste Fehler ist z.B. der Aufruf der Funktion "Mittelwert". Die Funktion bekommt keine Variablen uebergeben, die im Funktionskopf angegeben sind. Du muesstest Mittelwert also mit zwei Variablen aufrufen, naemlich einmal mit der Anzahl der Elemente und dann mit dem errechneten Summenwert. Das kann so aussehen:
M:=Mittelwert(anzahl,summe);
Um mal ein kleines Beispielprogramm zu zeigen, diese Zeilen hier:
PROGRAM Mittel;
FUNCTION Mittelwert(n: INTEGER; s: REAL): REAL;
BEGIN
Mittelwert:=(1/n)*s;
END;
VAR
summe, wert: REAL;
anzahl: INTEGER;
durchschnitt: REAL;
BEGIN
summe:=0;
anzahl:=0;
wert:=0;
WRITELN('Mittelwertberechnung');
REPEAT
WRITE('Zahl eingeben: '); READLN(wert);
summe:=summe+wert;
anzahl:=anzahl+1;
UNTIL (wert=0);
durchschnitt:=Mittelwert(anzahl,summe);
WRITELN('Der Mittelwert ist: ',durchschnitt:0:2);
READLN;
END.
So oder so aehnlich koennte dein Programm aussehen 
--
PASCAL Programmierer aus Leidenschaft
Turbo Pascal Beispiele fuer Anfaenger: [www.webplain.de]
Momentane Projekte:
-----------------------
Konsolen-Adventure Game mit FreePascal (im Denkpause-Forum) [www.webplain.de]
Funktionsplotter und -rechner; Vorabversion gibt's hier: [www.webplain.de]
Objektorientierte Textmodus-GUI; Release-Termin: groesstenteils fertig
2 mal bearbeitet. Zuletzt am 17.05.10 21:50 von BP92.
3 Re: Hab ein Probelm
Autor: dudefan
(R)
(IP bekannt)
Datum: 17. Mai. 2010 21:47
Also, da waren einige Fehler drinne! Ich werde mal versuchen dir es so gut wie möglich zu erklären, bin da sehr ausdrucksschwach
Als erstes hier erstmal der funktionierende Code:
Program Riversv2 ;
uses wincrt;
Var n,s: real;
function Mittelwert ( n, s: real):real;
Begin
Mittelwert:= 1/n * s;
End;
Begin
n:= 3;
s:= 4+8+12;
Writeln(Mittelwert(n,s):0:0);
End.
1. Du hast die Variable M in der Function deklariert, sprich als eine lokale Variable. Da du diese Variable aber im Hauptprogramm aufrufst und nicht in der Function, musst du diese als eine Globale Variable deklarieren. Also am besten gleich nach dem uses wincrt; die Variable deklarieren und nicht unter dem Begriff Function.
Aber dann muss man weitersehen, wenn du solch ein Function hast, dann musst du einer Variable nicht den Wert der Function aufbrummen, sondern kannst die Function so nutzen wie eine Variable. das siehst du auch in meinen Code, wie ich es meine. Somit brauchst du auch nicht mehr die Zeile
M:= Mittelwert; und schreibst es wie in meinen Quellcode: Writeln(Mittelwert(n,s):0:0);
2. Dann rufst du im Hauptprogramm die Variablen n und s auf. Nur diese sind nirgendwo deklariert. Solange wie du Anfangs keine Variable deklarierst, kannst du auch keine nutzen. Deswegen schön wieder als globale Variablen deklarieren. Somit kannst du diese dann auch nutzen
3. Ich weiß zwar grad net ob die Berechnung des Mittelwerts richtig ist, aber mir gehts erstmal um die Syntax Fehler.
Wenn du jetzt nähere Fragen hast, warum oder wie ich etwas bestimmtes gemacht habe, dann sag was. Vielleicht kann ich ja auf die konkrete Frage besser antworten, als dir hier jedes einzelne Detail zu erläutern
MfG dudefan
#edit: Uii da war wohl der BP92 etwas schneller, aber trotzdem haben wir beide 21.47 abgeschickt^^ naja das Programm vom BP92 ist etwas anders, aber OK :-D Ich hab nur versucht genau das selbe zu machen wie NF, nur ohne Fehler 
2 mal bearbeitet. Zuletzt am 17.05.10 21:51 von dudefan.
4 Re: Hab ein Probelm
Autor: BP92
(R)
(IP bekannt)
Datum: 17. Mai. 2010 21:52
@ dudefan: macht ja nix 
--
PASCAL Programmierer aus Leidenschaft
Turbo Pascal Beispiele fuer Anfaenger: [www.webplain.de]
Momentane Projekte:
-----------------------
Konsolen-Adventure Game mit FreePascal (im Denkpause-Forum) [www.webplain.de]
Funktionsplotter und -rechner; Vorabversion gibt's hier: [www.webplain.de]
Objektorientierte Textmodus-GUI; Release-Termin: groesstenteils fertig
5 Re: Hab ein Probelm
Autor: Horst
(R)
(IP bekannt)
Datum: 17. Mai. 2010 21:56
Erledigt
1 mal bearbeitet. Zuletzt am 17.05.10 21:57 von Horst.
6 Re: Hab ein Probelm
Autor: Gloob
(R)
(IP bekannt)
Datum: 17. Mai. 2010 22:00
Menno, ihr wart alle schneller >.<
Ich hänge meinen QT trotzdem mal an
Anhänge:
7 Re: Hab ein Probelm
Autor: NF
(G)
(IP bekannt)
Datum: 17. Mai. 2010 22:14
Danke Danke Danke , das ist wirklich super lieb ,
hab beide Programme ausprobiert und auch verstanden.
So und kann ich jetzt auch meinen Aufgabenzettel für die Uni bei einem von euch abgeben und er macht ihn mir
Nein ,wenn ich wieder Probleme habe dann weiß ich ja wo ich mich melden kann ,aber ich probiere erstmal schön selber rum ,den sonst lerne ich ja nichts .
Aber eine Frage noch ich muss in dem Programm noch zusätzlich das Minimum bestimmen , gibt es da eine vordefinierte Funktion die ich benutzen kann oder hat einer nen kleinen Denkanstoss für mich ?
MFG
8 Re: Hab ein Probelm
Autor: Samolex
(R)
(IP bekannt)
Datum: 17. Mai. 2010 22:50
Hi,
du musst das minimum aus einer Zahlenfolge bestimmen ?
dann sollten die Zahlen aber in einem Array gespeichert sein:
Var Zahlen : Array [0..5] of Real; // kann 6 Werte aufnehmen
Zalen[2] := 4.45; // 3. Element mit einem Wert belegen Index = 2
oder wenn die werte nacheinander eingegeben werden dann kannst du auch immer den letzen wert mit nen neuen vergleichen:
Var i : Integer;
Wert, Summe, Min : Real;
...
Readln (Min);
Summe := Min;
For i := 1 to anzahl-1 do Begin
ReadLn (Wert);
IF Wert < Min then Min := Wert;
Summe := Summe+Wert;
end;
MfG
Samolex
--
Computer helfen uns Probleme zu lösen,
die wir vorher nicht hatten.
Retrokuhn
Hey du, isch mach dich Zweierkomplement...
9 Re: Hab ein Probelm
Autor: NF
(G)
(IP bekannt)
Datum: 18. Mai. 2010 09:40
Na ja das mit dem arry geht doch hier nicht ,da ich das Minimum aus den werten 4,8 und 12 bestimmen soll in dem Quellcode wo ich auch schon den mittelwert aus diesen zahlen bestimmt habe , da kann ich das doch nicht mit dem arry oder mit der schleife machen ??
MFG
10 Re: Hab ein Probelm
Autor: BP92
(R)
(IP bekannt)
Datum: 18. Mai. 2010 13:45
Wie meinen?
Also die Werte 4, 8 und 12 sind dir vorgegeben, und aus diesen drei Zahlen sollst du das Minimum bestimmen? (aus drei einzelnen Variablen/Zahlen/...) Diese Aufgabenstellung erscheint mir aber etwas merkwuerdig...
Entweder, du deklarierst eine zusaetzliche Variable, setzt diese auf den ersten eingegebenen Wert, liest die Zahlen in einer Schleife ein und vergleichst die eingegebene Zahl mit dem Wert der Variable, aenderst ggf. diese Variable usw...
Oder du definierst ein ARRAY[1..MAX] OF INTEGER; und nimmt ebenfalls eine Variable, belegst diese mit dem ersten Arrayindex, gehst das Array bis zur letzten Stelle durch und ermittelst wieder mit vergleichen, ob ein Wert noch kleiner ist oder nicht...
--
PASCAL Programmierer aus Leidenschaft
Turbo Pascal Beispiele fuer Anfaenger: [www.webplain.de]
Momentane Projekte:
-----------------------
Konsolen-Adventure Game mit FreePascal (im Denkpause-Forum) [www.webplain.de]
Funktionsplotter und -rechner; Vorabversion gibt's hier: [www.webplain.de]
Objektorientierte Textmodus-GUI; Release-Termin: groesstenteils fertig
2 mal bearbeitet. Zuletzt am 18.05.10 13:46 von BP92.
11 Re: Hab ein Probelm
Autor: NF
(G)
(IP bekannt)
Datum: 18. Mai. 2010 19:46
@BP92:
Also in meine Aufgabe steht einfach:
Erstelle ein Programm das aus ihren drei Glückszahlen (bei mir eben 4,8,12)das Minimum und den Mittelwert berechnet.
DAs mit dem MIttelwert habe ich ja jetzt verstanden,aber ehrlich gesagt weiß ich immer noch nicht genau wie ich das mit dem Minimum da einbaue ??(sorry ,Informatik ist einfach nicht mein ding)
MFG
12 Re: Hab ein Probelm
Autor: Samolex
(R)
(IP bekannt)
Datum: 18. Mai. 2010 20:20
Hi,
ist etwas dürftig die Aufgabenstellung
Naja dan mach einfach eine IF konstruction:
Zahl1, Zahl2, Zahl3, Min : Integer;
...
Zahl1 := 4;
Zahl2 := 8:
Zahl3 := 12;
IF (Zahl1 < Zahl2) and (Zahl1 < Zahl3) Then Min := Zahl1 else
IF (Zahl2 < Zahl1) and (Zahl2 < Zahl3) Then Min := Zahl2 else
IF (Zahl3 < Zahl1) and (Zahl3 < Zahl2) Then Min := Zahl3;
MfG
Samolex
--
Computer helfen uns Probleme zu lösen,
die wir vorher nicht hatten.
Retrokuhn
Hey du, isch mach dich Zweierkomplement...
13 Re: Hab ein Probelm
Autor: NF
(G)
(IP bekannt)
Datum: 18. Mai. 2010 22:25
Okey jetzt hat es geklappt ,Danke Danke Danke
Hinweise
- Das hier ist kein Hausaufgabenservice. Konkrete Fragen werden natürlich gerne beantwortet.
- Probieren Sie doch zuerst die Suchfunktion aus und werfen Sie einen Blick in die FAQ.
- Ein aussagekräftiger Betreff ist wichtig, unter »HILFE!!!« kann man sich nichts vorstellen. Bitte nicht nur Großbuchstaben.
- Anhänge zu Ihrem Projekt (max. 250 KB) können helfen, das Problem schnell zu lösen.
- HTML-Tags sind aus Sicherheitsgründen nicht möglich.
- Quelltext können Sie mit
[code]Quelltext[/code]formatieren. - Alle weiteren möglichen Forum-Tags können Sie hier nachlesen.
Nach oben
© 2000-2010 Clemens Weiß | Webplain.de
Link zu dieser Seite | Letzte Änderung: 26. Okt. 2008
