Zum Navigations-Menü
Kein Layout? Lesen Sie hier, warum...

Turbo Pascal

Forum



Alle Dateien dieses Themas

Dateiname Dateigröße geschrieben von Datum
test.pas683 bytesGloob17.05.10 22:00Nachricht 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

Antworten | Zitieren

2 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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.

Antworten | Zitieren

3 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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.

Antworten | Zitieren

4 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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

Antworten | Zitieren

5 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

Autor: Horst (R) (IP bekannt)
Datum: 17. Mai. 2010 21:56

Erledigt



1 mal bearbeitet. Zuletzt am 17.05.10 21:57 von Horst.

Antworten | Zitieren

6 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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:

Antworten | Zitieren

7 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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

Antworten | Zitieren

8 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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... ;-)

Antworten | Zitieren

9 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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

Antworten | Zitieren

10 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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.

Antworten | Zitieren

11 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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

Antworten | Zitieren

12 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

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... ;-)

Antworten | Zitieren

13 Re: Hab ein Probelm

Bewertungen: 0 negativ/0 positiv

Autor: NF (G) (IP bekannt)
Datum: 18. Mai. 2010 22:25

Okey jetzt hat es geklappt ,Danke Danke Danke ;-)

Antworten | Zitieren

Hinweise

  1. Das hier ist kein Hausaufgabenservice. Konkrete Fragen werden natürlich gerne beantwortet.
  2. Probieren Sie doch zuerst die Suchfunktion aus und werfen Sie einen Blick in die FAQ.
  3. Ein aussagekräftiger Betreff ist wichtig, unter »HILFE!!!« kann man sich nichts vorstellen. Bitte nicht nur Großbuchstaben.
  4. Anhänge zu Ihrem Projekt (max. 250 KB) können helfen, das Problem schnell zu lösen.
  5. HTML-Tags sind aus Sicherheitsgründen nicht möglich.
  6. Quelltext können Sie mit [code]Quelltext[/code] formatieren.
  7. Alle weiteren möglichen Forum-Tags können Sie hier nachlesen.
Neuen Beitrag erstellen










Datei anhängen
  • Folgende Dateitypen können angehängt werden:
    asm, bgi, bmp, c, cc, cpp, gif, inc, jpg, obj, pas, pdf, png, rar, rtf, tpu, txt, zip, frm, vbp
  • Die Dateien dürfen jeweils nicht größer sein als 250KB.
  • 3 zusätzliche Dateien können an den Beitrag angehängt werden.



Nach oben
© 2000-2010 Clemens Weiß | Webplain.de
Link zu dieser Seite | Letzte Änderung: 26. Okt. 2008