AGB  ·  Datenschutz  ·  Impressum  







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

Bedingungen mit Boolean und Listbox ausgeben

Ein Thema von MrSGcustom · begonnen am 4. Mär 2014 · letzter Beitrag vom 5. Mär 2014
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#11

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:25
Meine Güte, wenn die Dinger doch vorgegeben wurden...
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#12

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:38
Ich hab die Aufgabe zwar nicht richtig verstanden, aber egal. Hier zumindest die Tabausgabe. Zwar wird dir dein Lehrer das nicht abnehmen, aber wenn er die Ausgabe in ListBox haben will...

Delphi-Quellcode:
const
  Tabs = 4;
  X: array[Boolean] of String = ('False', 'True');
var
  ListBox: TListBox;
  TabsInLB: array[0..4] of Integer;
  A, B, C, BB : Boolean;
  S: String;
begin
  ListBox := ListBox1;

  TabsInLB[0] := 0;
  TabsInLB[1] := 50;
  TabsInLB[2] := 100;
  TabsInLB[3] := 150;
  Listbox.TabWidth := 1;
  SendMessage(ListBox.Handle, LB_SETTABSTOPS, Tabs, Longint(@TabsInLB));

  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) //ob das stimmt, glaube ich nicht, aber ich hab es übernommen. Evtl. fehlen da paar Klammern.
              AND (B OR C) OR (B AND C)
              AND (A OR B) OR (NOT A AND NOT B);

        S := X[A] + #9 + X[B] + #9 + X[C] + #9 + X[BB];

        ListBox.Items.Add(S)
      end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#13

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:44
Wie soll die Ausgabe denn nun aussehen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#14

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:48
Hier, falls die Annahme vom Schönen Guntar stimmt:

Delphi-Quellcode:
const
  Tabs = 6;
  X: array[Boolean] of String = ('False', 'True');
var
  ListBox: TListBox;
  TabsInLB: array[0..Tabs] of Integer;
  A, B, C, D, E, F : Boolean;
  S: String;
begin
  ListBox := ListBox1;

  TabsInLB[0] := 0;
  TabsInLB[1] := 50;
  TabsInLB[2] := 100;
  TabsInLB[3] := 150;
  TabsInLB[4] := 200;
  TabsInLB[5] := 250;

  Listbox.TabWidth := 1;
  SendMessage(ListBox.Handle, LB_SETTABSTOPS, Tabs, Longint(@TabsInLB));

  A := False;
  B := False;
  C := False;

  S := 'A' + #9 + 'B' + #9 + 'C' + #9 + 'D' + #9 + 'E' + #9 + 'F';
  ListBox.Items.Add(S);

  FOR A := False TO True DO
    FOR B := False TO True DO
      FOR C := False TO True DO
      begin
        D := (A AND C) OR (NOT A AND NOT C);
        E := (B OR C) OR (B AND C);
        F := (A OR B) OR (NOT A AND NOT B);

        S := X[A] + #9 + X[B] + #9 + X[C] + #9 + X[D] + #9 + X[E] + #9 + X[F];

        ListBox.Items.Add(S)
      end;
end;
EDIT:

Oder doch nicht. Ich weiß es nicht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#15

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:50
Meine Version ist irgendwie simpler, sowohl im Code wie auch in der Darstellung:
Delphi-Quellcode:
function MultiBoolToStr(a, b, c: Boolean): string;
begin
  Result := BoolToStr(a, true) + ', ' +
            BoolToStr(b, true) + ', ' +
            BoolToStr(c, true);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c, a1, b1, c1: Boolean;
  s: string;
begin
  for a := false to true do
    for b := false to true do
      for c := false to true do
        begin
          a1 := (A AND C) XOR (NOT A AND NOT C);
          b1 := B OR C;
          c1 := A XOR B;
          s := MultiBoolToStr(a, b, c);
          if a1 and b1 and c1 then
            s := s + ' -> Treffer';
          ListBox1.Items.Add(s);
        end;
end;
Wobei ich auch nur raten kann, wie es denn aussehen soll.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#16

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:53
Ja, technisch geht das, aber potthässlich ist es trotzdem. Lass den armen nur einmal statt for variable := False to True einmal for variable := True to False schreiben und sich dann wundern warum nichts mehr geht.
Dafür gibt es ja den Debugger

Es ist da wie bei den ENUMs, wo man dann ja auch DOWNTO verwendet.

Man muß nur aufpassen, wenn jemand nett war und das True umgeschrieben hat.
const True = Boolean(255); Aber das macht man ja nicht.



PS: Ich würde nur eine Schleife verwenden und das dann mathematisch oder binär befüllen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#17

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 20:57
PS: Ich würde nur eine Schleife verwenden und das dann mathematisch oder binär befüllen.
Ich würde das nehmen, was in der Aufgabe vorgegeben wurde. Es muss ja zumindest noch halbwegs verständlich sein, die Variablenbezeichner sind ja schon schlimm genug.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#18

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 4. Mär 2014, 21:32
OK, bei Hausaufgaben ist das ja immer etwas Anderes,
und mit einem guten Kommentar isses auch wieder verstänlich.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 5. Mär 2014, 08:14
Also wie man eine aussagekräftige Anzeige von 3 Eingangswerten und einem Ausgangswert mit 3 "Spalten" realisieren soll ist mir schleierhaft.

Entweder hat hier der Lehrkörper geschlampt, oder es handelt sich um das Stille-Post-Syndrom (wieder mal nur die Hälfte gehört und die noch falsch wiedergegeben).

Der direkteste Lösungsweg wäre (wenn ich die Vorgabe mal frei erweitere um der Ausgabe eine Aussagekraft zu verleihen):
Delphi-Quellcode:
procedure TForm1.B_StartClick(Sender: TObject);
var A, B, C, BB : boolean;
begin

  // Listbox für die Ausgabe leeren (steht nicht in der Aufgabe, habe ich mal frei dazugesetzt)
  Ausgabe_Listbox.Clear;

  FOR A := false TO true DO
    FOR B := false TO true DO
      FOR C := false TO true DO
      begin
        BB :=
          {Bedingung 1} ( (A AND C) OR (NOT A AND NOT C) ) AND
          {Bedingung 2} ( (B OR C) OR (B AND C) ) AND
          {Bedingung 3} ( (A OR B) OR (NOT A AND NOT B) );

        // Ausgabe der Werte in der Listbox
        Ausgabe_Listbox.Items.Add(
          {Eingangswert A} BoolToStr( A, true ) + ' ' +
          {Eingangswert B} BoolToStr( B, true ) + ' ' +
          {Eingangswert C} BoolToStr( C, true ) + ' ' +
          {Ausgangswert BB} BoolToStr( BB, true ) );
      end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 5. Mär 2014 um 08:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#20

AW: Bedingungen mit Boolean und Listbox ausgeben

  Alt 5. Mär 2014, 08:20
*Öhm*...
Zitat:
Delphi-Quellcode:
  A := false;
  B := false;
  C := false;
Überflüssig, sind im Anschluss die Schleifenvariablen.
Zitat:
Delphi-Quellcode:
       BB :=
          {Bedingung 1} (A AND C) OR (NOT A AND NOT C) AND
          {Bedingung 2} (B OR C) OR (B AND C) AND
          {Bedingung 3} (A OR B) OR (NOT A AND NOT B);
entspricht
Delphi-Quellcode:
       BB :=
          {Bedingung 1} (A AND C) OR ((NOT A AND NOT C) AND
          {Bedingung 2} (B OR C)) OR ((B AND C) AND
          {Bedingung 3} (A OR B)) OR (NOT A AND NOT B);
es müsste aber wahrscheinlich heißen
Delphi-Quellcode:
       BB :=
          {Bedingung 1} ((A AND C) OR (NOT A AND NOT C)) AND
          {Bedingung 2} ((B OR C) OR (B AND C)) AND
          {Bedingung 3} ((A OR B) OR (NOT A AND NOT B));
Da deklariere ich mir lieber 3 Variablen, das ist übersichtlicher
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      

 

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 22:28 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