Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Bedingungen mit Boolean und Listbox ausgeben (https://www.delphipraxis.net/179396-bedingungen-mit-boolean-und-listbox-ausgeben.html)

MrSGcustom 4. Mär 2014 18:21

Bedingungen mit Boolean und Listbox ausgeben
 
Heyho,
Hab erst seit ein paar Monaten Informatik, nun haben wir eine Aufgabe bekommen, bei der wir mithilfe von Boolean Variablen arbeiten sollen.
In der Aufgabe ging es um die Einladung von 3 Personen, bei denen alle 3 Bedingungen erfüllt sein müssen.
Mit einer Listbox sollen wir alle 8 Ergebnisse in 3 Spalten ( Bsp.: true false false ) etc. ausgeben.
Leider habe ich keinen Plan wie man das so ausgeben kann.
Für die Meisten hier sicherlich ein Kinderspiel.
Hoffe ihr könnt mir schnell helfen, das Projekt wird eventuell am Donnerstag schon eingesammelt und benotet ...

Hier der Quelltextausschnitt (weiß nich ob auch da schon alles korrekt ist ...) :


procedure TForm1.B_StartClick(Sender: TObject);
var A, B, C, BB : boolean;
begin

A := false;
B := false;
C := false;

FOR A := false TO true DO
FOR B := false TO true DO
FOR C := false TO true DO
begin

BB := (A AND C) OR (NOT A AND NOT C)
AND (B OR C) OR (B AND C)
AND (A OR B) OR (NOT A AND NOT B);

end;

end;

end.

Perlsau 4. Mär 2014 18:29

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Habt ihr denn nicht in der Schule gelernt, was eine Boolean-Variable ist? Offenbar nicht, denn sonst würdest du nicht versuchen, damit eine Schleife zu basteln.

Was soll denn da passieren, wenn du auf den Button klickst? Von welchen drei Bedingungen schreibst du da?

Der schöne Günther 4. Mär 2014 18:37

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Die Bedingungen sind wohl einfach irgendwelche ja/nein-Kriterien die erfüllt sein müssen, damit die Person auch eingeladen wird. Also beispielsweise:
  • ist attraktiv
  • bringt Essen/Trinken mit
  • hat mir noch nie in den Keller gekotzt und ich habe es erst drei Tage später gemerkt

Richtig?

Ich verstehe ein paar Punkte daran nicht:
  1. Wie kommt eine TListBox ins Spiel? Eine TListBox hat keine Spalten, damit kannst du eigentlich nur Text untereinander (als Liste halt) ausgeben
  2. Zwei mögliche Zustände (ja/nein) bei drei solcher Bedingungen ergibt acht Permutationen. Was soll damit jetzt geschehen? Ich dachte zu jeder Person soll man anklicken können, ob sie die Bedidngung erfüllt. Das bedeutet 3 mal 3 = 9 CheckBoxen. Aber wen interessieren hier die acht verschiedenen möglichen Kombinationen?

PS: Gewöhn dir an, Variablen NICHT
Delphi-Quellcode:
A,B,C
zu nennen sondern
Delphi-Quellcode:
istAttraktiv
oder ähnlich. Das macht es für alle einfacher. Auch dich 8-)
Kein Mensch kann sehen, was
Delphi-Quellcode:
(A AND C) OR (NOT A AND NOT C)
bedeutet. Und du auch nicht, wenn du zwei Stunden später nochmal draufschaust.

MrSGcustom 4. Mär 2014 18:39

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Im Grunde haben wir nicht besonders viel erklährt bekommen, haben ur die 3 FOR Schleifen angeschrieben bekommen:
"
FOR A := false TO true DO
FOR B := false TO true DO
FOR C := false TO true DO
begin
.
.
.
Ausgabe der Kombi A,B,C
END
"
Durch Klicken des Buttons sollen einfach alle 8 möglichen Kombinationen (wie oben im Beispiel) untereinander in der Listbox ausgegeben werden.
Die Drei Bedingungen sind:
1. (A AND C) XOR (NOT A AND NOT C)
2. (B OR C)
3. (A XOR B)
(Ich weiß, im Quelltext etwas komplizierter dargestellt)

MrSGcustom 4. Mär 2014 18:42

AW: Bedingungen mit Boolean und Listbox ausgeben
 
mit Spalten war einfach nur die Darstellung aller Ergebnisse der Bedingung nebeneinander, sodass bei mehrerern Zeilen optisch 3 Spalten entstehen.
Es soll nichts selber ausgewählt oder eingegeben werden, es sollen im Grunde nur die 2 möglichen Kombinationen ermittelt werden, was in dem fall in der listbox zu sehen sein soll.

DeddyH 4. Mär 2014 19:15

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Was mir nicht klar ist: was soll denn nun in der Listbox ausgegeben werden, alle 8 möglichen Kombinationen oder nur diejenigen, bei denen die 3 Bedingungen zutreffen?

MrSGcustom 4. Mär 2014 19:15

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Alle acht.

DeddyH 4. Mär 2014 19:21

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Dann brauchst Du doch im Grunde nur noch eine Funktion, die Dir aus 3 Boolean-Variablen einen entsprechend aufbereiteten String bastelt. Den fügst Du dann der ListBox hinzu.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c: Boolean;
begin
  for a := false to true do
    for b := false to true do
      for c := false to true do
        ListBox1.Items.Add(MultiBoolToStr(a, b, c));
end;
D.h., MultiBoolToStr nimmt 3 Booleans entgegen und macht daraus z.B. "True, False, False". Du musst sie nur noch schreiben ;)

himitsu 4. Mär 2014 19:22

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Zitat:

Zitat von Perlsau (Beitrag 1250612)
Habt ihr denn nicht in der Schule gelernt, was eine Boolean-Variable ist? Offenbar nicht, denn sonst würdest du nicht versuchen, damit eine Schleife zu basteln.

Ein Boolean ist ein ordinaler Typ und nur ordinale Typen kann man in For-Schleifen verwenden.

Der schöne Günther 4. Mär 2014 19:24

AW: Bedingungen mit Boolean und Listbox ausgeben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, technisch geht das, aber potthässlich ist es trotzdem. Lass den armen nur einmal statt
Delphi-Quellcode:
for variable := False to True
einmal
Delphi-Quellcode:
for variable := True to False
schreiben und sich dann wundern warum nichts mehr geht.


Zitat:

Zitat von DeddyH (Beitrag 1250620)
Dann brauchst Du doch im Grunde nur noch eine Funktion

Nein, er braucht drei. Er hat ja drei verschiedene Bedingungen die nichts miteinander zu tun haben.

Er will sowas wie im Anhang in Listboxen packen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Seite 1 von 3  1 23      

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-2025 by Thomas Breitkreuz