AGB  ·  Datenschutz  ·  Impressum  







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

Einfache "Kugeln Ziehen"-Aufgabe mit Schleife

Ein Thema von yga · begonnen am 25. Jan 2012 · letzter Beitrag vom 26. Jan 2012
 
yga

Registriert seit: 25. Jan 2012
4 Beiträge
 
#1

Einfache "Kugeln Ziehen"-Aufgabe mit Schleife

  Alt 25. Jan 2012, 20:14
Delphi-Version: 7
Hallo Community,
ich bin Info-Neuling und schlicht erschlagen von der Masse an Subforen, ich hoffe ich poste hier im richtigen Bereich. Ich brauche Hilfe bei einem Info-Projekt. Ich habe zahlreiche Änderungen am Code vorgenommen, es funktionierte sogar kurzzeitig, doch dann bei nebensächlichen Bugfixes wieder nicht, etc. Ich bin vollkommen aufgeschmissen, bin das Programm zig mal durchgegangen und am Ende mit meinem spärlichen Delphi-Wissen.

Die Aufgabe ist einfach: in einem Topf sind schwarze und weiße Kugeln, man greift zufällig zwei raus. Sind die Kugeln gleichfarbig, wird eine Schwarze Kugel zurückgelegt. Sind sie unterschiedlich, legt man eine Weiße zurück. (drei Fälle also, 2 Schwarze rausnehmen, 2 Weiße oder unterschiedlichfarbige Kugeln rausnehmen)
Dieser Prozess soll simuliert werden. Es sollen die Farbe der letzten Kugel und die Anzahl der Züge ausgegeben werden.
Zur Kontrolle:
die Anzahl der Züge ist immer die Gesamtanzahl der Kugeln - 1
Bsp:
5 Schwarze, 4 Weiße Kugeln
Benötigt 9-1=8 Züge

Die letzte Kugel basiert immer auf die Anzahl der Weißen Kugeln:
ist Weiß gerade, ist die letzte Kugel Schwarz
ist Weiß ungerade, ist die letzte Kugel Weiß

Natürlich könnte ich die gesuchten Ergebnisse kurzerhand mit if/else und einer Rechnung ausgeben, dennoch soll das Ganze simuliert werden mit einer Schleife bis nur noch eine Kugel verbleibt.

Hier mein Layout, Ästhetik mal außen vorgelassen:

http://img692.imageshack.us/img692/632/layoutit.jpg

Zwei Edit-Felder, Button, und Label für die Ausgabe

Hier mein Code:

Delphi-Quellcode:
procedure TForm1.KugelnZiehen(Sender: TObject);
var s,w,fall,zug:integer;
begin

w:=StrToInt(Weiss.text);
s:=StrToInt(Schwarz.text);

repeat
 begin
  randomize;
  fall:=(Random(2)+1); {Welcher Fall tritt ein?}
  Case fall of
   1: begin {Zwei Schwarze Kugeln rausgenommen, eine Schwarze wieder rein}
       if s>=2 then
        begin
        s:=s-1;
        zug:=zug+1;
        end
        else
      end;
   2: begin {Zwei Weiße Kugeln rausgenommen, eine Schwarze wieder rein}
       if w>=2 then
        begin
        w:=w-2;
        s:=s+1;
        zug:=zug+1;
        end
        else
      end;
   3: begin {Zwei unterschiedliche Kugeln rausgenommen, eine Schwarze wieder rein}
       if (s>0) and (w>0) then
        begin
        s:=s-1;
        zug:=zug+1;
        end
        else
      end;
 end;
end;
until s+w=1;

Textausgabe.Caption:='Züge: '+(inttostr(zug))+' Schwarze Kugeln: '+(inttostr(zug))+' Weiße Kugeln: '+(inttostr(zug))+' ';


end;
Delphi spuckt mehrstellige Nonenswerte aus oder bleibt je nach Zahlenkombination hängen (keine Fehlermeldung, nichts). Er beschwert sich "nur", dass die Variable Zug nicht initialisiert wurde.

Ich bitte um dringende Hilfe, es ist so simpel und ich hasse mich dafür, nicht selbst auf meine alte Lösung zu kommen. Vielen Dank.
  Mit Zitat antworten Zitat
 


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 10:57 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