AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wiederholungsanweisungen

Ein Thema von Avicenna · begonnen am 11. Feb 2008 · letzter Beitrag vom 12. Feb 2008
Antwort Antwort
Avicenna
(Gast)

n/a Beiträge
 
#1

Wiederholungsanweisungen

  Alt 11. Feb 2008, 17:47
Hallo,
ich komme bei folgender Aufgabe einfach nicht weiter. Ich habe ein Würfelprogramm, und wenn mit dem Würfel w1 zweimal hintereinander die gleiche Zahl kommt, soll die Anzahl der dafür benötigten Werte ausgegeben werden.
Das Programm in den Rohform funktoniert, aber ich weiß nicht, wie ich die Aufgabenstellung umsetzen soll.
So sieht die betreffende Prozedur bisher aus:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  anzahl:=0;
  ergebnis:=0;
  repeat
    w1.wuerfeln();
    anzahl:=anzahl+1;
    ergebnis:=w1.augenLesen();
    w1.wuerfeln();
    anzahl:=anzahl+1;
  until ergebnis=w1.augenLesen();
  label1.caption:='Versuche:'+inttostr(anzahl);
end;
Das ist aber falsch, da nun lediglich geprüft wird, ob Wurf 1 + Wurf 2 oder Wurf 3 + Wurf 4 zusammenpasst, nicht jedoch, ob Wurf 2 + Wurf 3 zusammenpasst.

Wie kann ich die Aufgabe realisieren?
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Wiederholungsanweisungen

  Alt 11. Feb 2008, 17:54
Delphi-Quellcode:
var
  Hok: boolean;
begin
  Counter := 0;
  repeat
    W1 := 1+Random(6);
    W2 := 1+Random(6);
    Inc(Counter);
    HOk := W1=W2;
    if not HOk then W1 := W2;
  unitl Hok;
ungetestet und
[EDIT]
verbessert
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wiederholungsanweisungen

  Alt 11. Feb 2008, 18:07
Deine Vorbereitungen dürften so nich ganz klappen. Du musst 1x Würfeln vorziehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  w1.wuerfeln(); // 1x vorwürfeln
  anzahl:=1; // 1x wurde ja nun gewürfelt
  repeat // wiederhole ... (1)
    ergebnis:=w1.augenLesen(); // bisheriges Ergebnis merken
    w1.wuerfeln(); // neu würfeln
    Inc(anzahl); // erhöhe die Anzahl
  until ergebnis=w1.augenLesen(); // (1) ... bis das gemerkte ergebnis mit den Augen übereinstimmt
  label1.caption:='Versuche:'+inttostr(anzahl); // Ausgabe
end;
@ Kroko:

Deine Version knallt weil es spätestens nach der Überprüfung auf Ungleichheit und deren Folge wieder gleich ist, die Anzahl wäre also immer 1
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#4

Re: Wiederholungsanweisungen

  Alt 11. Feb 2008, 18:13
mal ins blaue...

Delphi-Quellcode:
w1.würfeln;
versuche = 0;
 repeat
   inc(versuche);
   w2.würfeln;
 until w1.augen <> w2.augen;
writeln('Anzahl der Versuche: ', Versuche);
entweder mit zwei instanzen oder die augenzahl zwischenspeichern. sonst sind sie bei jeden neuen versuch wieder weg ...
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Wiederholungsanweisungen

  Alt 11. Feb 2008, 18:26
korrigiert!
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Avicenna
(Gast)

n/a Beiträge
 
#6

Re: Wiederholungsanweisungen

  Alt 11. Feb 2008, 18:28
Vielen Dank für eure Antworten

cruisers Lösung ist das, wonach ich schon den ganzen Tag suche.

Vielen Dank dafür


Ich wünsche noch eine schöne Woche,

Avicenna
  Mit Zitat antworten Zitat
12. Feb 2008, 08:11
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz