Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Summe der Würfelzahlen - Seite 2
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Pascal
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
PSM



Anmeldungsdatum: 16.02.2005
Beiträge: 7

BeitragVerfasst am: 20. Feb 2005 13:58    Titel: Antworten mit Zitat

Hallo @all!

Danke für eure Antworten.
Zitat:
Wenn Du ihn doch aber nur von n bis n Zählen lässt?

Upps! Hammer
Hab den Fehler behoben:
FOR i:=1 TO n DO ....

Zuerst habe ich so bei n=100.000 immer 0 erhalten, was sehr merkwürdig war. Nun habe ich statt 'integer' die Funktion 'longint' verwendet.
Jetzt liefert mein Programm zufriedenstellende Ergebnisse. Zwar nicht 18, aber immerhin um die 16 (+-1) (bei größeren n).
Kann es sein, dass das Programm bei 'integer' für große n nicht mehr richtig funktioniert?


Danke für eure Hilfestellungen!

Grüße.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 20. Feb 2005 14:52    Titel: Antworten mit Zitat

PSM hat Folgendes geschrieben:
Hallo @all!
Kann es sein, dass das Programm bei 'integer' für große n nicht mehr richtig funktioniert?

Doch doch, es macht nur, was Du ihm sagst Augenzwinkern
Aber leider ist integer bei Pascal sehr klein und wenn Du den Bereich übershreitest, dann wertet er das als negative Zahl... Den Rest kannst Du dir denken.

Jan

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Simonko



Anmeldungsdatum: 15.02.2005
Beiträge: 4

BeitragVerfasst am: 20. Feb 2005 16:57    Titel: Antworten mit Zitat

Wie kurellajunior schon sagte wenn man den berreich überschreitet fängts von hinten wieder an. Integer zahlen gehen von -32768 bis 32767
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PSM



Anmeldungsdatum: 16.02.2005
Beiträge: 7

BeitragVerfasst am: 20. Feb 2005 18:02    Titel: Antworten mit Zitat

Das erklärt natürlich, weshalb das Progamm bei sehr großen n nicht mehr richtige Ergebnisse geliefert hat...

Grüße.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Toxman



Anmeldungsdatum: 15.02.2005
Beiträge: 42
Wohnort: Freiburg i. Brsg.

BeitragVerfasst am: 20. Feb 2005 20:43    Titel: Antworten mit Zitat

@ Simonko:

Von welchem Integer redest du? Bei mir [D6] hab ich Integer von -2147483648..2147483647. Dein Bereich würde einem Smallint entsprechen.

Wenn der Bereich überschritten worden wäre, dürfte nicht immer 0 rauskommen, das sieht eher nach einem Code-Fehler aus.

Warum werden eigentlich immer 2 Zahlen gewürfelt, die von 3 verschieden sein müssen? Davon steht in der Aufgabe nichts.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Pr0g



Anmeldungsdatum: 15.02.2005
Beiträge: 90
Wohnort: Düsseldorf

BeitragVerfasst am: 20. Feb 2005 21:55    Titel: Antworten mit Zitat

@Toxman: Der Integer in Delphi entspricht auch einen LongInt aus Pascal:
Code:
┌───────────────────── Help ─────────────────────┐
│    ** Integertypen **                          │
│                                                │
│  Turbo Pascal bietet fünf vordefinierte        │
│  Integertypen mit jeweils verschiedenen        │
│  Wertebereichen:                               │
│                                                │
│   Typ           Wertebereich         Größe     │
│  ------------------------------------------    │
│  ShortInt         -128..127           8 Bit    │
│  Integer        -32768..32767        16 Bit    │
│  LongInt   -2147483648..2147483647   32 Bit    │
│  Byte                0..255           8 Bit    │
│  Word                0..65535        16 Bit    │
│                                                │
│  Alle Integertypen sind ordinal.               │
└────────────────────────────────────────────────┘

_________________
http://webcraft.org/button_ani.gif http://ohs.pr0g.net/button_ani.gif
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name
Toxman



Anmeldungsdatum: 15.02.2005
Beiträge: 42
Wohnort: Freiburg i. Brsg.

BeitragVerfasst am: 20. Feb 2005 22:33    Titel: Antworten mit Zitat

ende:=15; {oder 16 oder 18 oder ab wann man eben anhalten willl}

Code:
Function Spiel(const ende: integer): integer;
var
ges,a: integer;
begin
a:=0;
ges:=0;

a:= random(5)+1;
if a=3 then
 begin
    result:=0;
    exit;
 end;


while a <> 3 do
begin
inc(ges,a);
   if ges>= ende then // Überprüfung ob angehalten werden soll
    begin
       result:=ges;
       break; // Die Schleife wird verlassen
    end;
a:= random(5)+1; // neuer Wurf.
end;

if ges < ende then // Würfeln wurde abgebrochen
result:= 0;

end;


Diese Funktion am Besten in einer Schleife über alle Stop-Werte laufen lassen, jeweils die Summe der Ergebnisse bilden, Durchschnitt bilden, ausgeben lassen und fertig sein. Zeig doch mal dein fertiges Programm, würd mich mal interessieren, wie groß die Unterschiede zwischen den Stopp-Werten sind.

// ungetestet ! Sollte aber laufen
// STop durch ende ersetzt, Break statt exit, Verbesserung der ersten Abfrage


Zuletzt bearbeitet von Toxman am 21. Feb 2005 17:41, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Simonko



Anmeldungsdatum: 15.02.2005
Beiträge: 4

BeitragVerfasst am: 21. Feb 2005 10:21    Titel: Antworten mit Zitat

Toxman, break, halt und stop sollte man vermeiden, da es unsauberes programmieren ist. Man sollte das Problem auf höherer Ebene lösen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kurellajunior
Administrator


Anmeldungsdatum: 14.02.2005
Beiträge: 214
Wohnort: Berlin-Pankow

BeitragVerfasst am: 21. Feb 2005 10:24    Titel: Antworten mit Zitat

@Simonko "stop" soll hier eine Variable sein! Also vielleicht kein reserviertes Wort als variable?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Gast






BeitragVerfasst am: 21. Feb 2005 10:30    Titel: Antworten mit Zitat

Toxman schrieb

exit; // Die Schleife wird verlassen
Nach oben
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Pascal Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen