AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Anweisung erfolderlich, aber Ausdruck vom Typ Boolean?
Thema durchsuchen
Ansicht
Themen-Optionen

Anweisung erfolderlich, aber Ausdruck vom Typ Boolean?

Ein Thema von SilasF. · begonnen am 17. Sep 2012 · letzter Beitrag vom 17. Sep 2012
Antwort Antwort
Seite 1 von 2  1 2      
SilasF.

Registriert seit: 17. Sep 2012
3 Beiträge
 
#1

Anweisung erfolderlich, aber Ausdruck vom Typ Boolean?

  Alt 17. Sep 2012, 15:27
Hallo zusammen.
Unsere Aufgabe ist es ein Programm zu machen welches 3 Zufallszahlen ausspucken soll und
dann sagen soll welches das größte ist..
soweit bin ich bis jetzt:
Delphi-Quellcode:
var
  Form1: TForm1;
  Zahl1 , Zahl2 , Zahl3 : Integer ;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Zahl1:= Random(100) ;
Zahl2:= Random(100) ;
Zahl3:= Random(100) ;
label1.Caption:= inttostr (Zahl1) ;
Label2.Caption:= inttostr (Zahl2) ;
Label3.Caption:= inttostr (Zahl3) ;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if StrToInt (label1.caption) > Zahl2
then label4.caption :='Zahl1 ist die größte Zahl!'
else if StrToInt (label1.Caption) < Zahl2
then label4.caption :='Zahl2 ist die größte Zahl!' ;
if StrToInt (label1.Caption) > Zahl3
then label4.Caption :='Zahl1 ist die größte Zahl!'
else if StrToInt (label1.caption) < Zahl3
then label4.caption :='Zahl 3 ist die größte Zahl!'  ;
if StrToInt (label2.caption) > Zahl3
then label4.caption :='Zahl2 ist die größte Zahl!'
else StrToInt (label2.caption) < Zahl3
then label4.caption :='Zahl3 ist die größte Zahl' ;

end;

end.
jedoch zeigt er in der Letzten Zeile an(also bei then): Anweisung erfolderlich,
aber Ausdruck vom Typ Boolean gefunden?
Was muss ich nun tun?
Danke im Vorraus

Geändert von TBx (17. Sep 2012 um 19:34 Uhr) Grund: Delphi-Tags eingefügt, bitte zukünftig selber machen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 15:28
Das fehlende "if" dort ergänzen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
SilasF.

Registriert seit: 17. Sep 2012
3 Beiträge
 
#3

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 15:33
Das fehlende "if" dort ergänzen
wo welches if denn?
  Mit Zitat antworten Zitat
SilasF.

Registriert seit: 17. Sep 2012
3 Beiträge
 
#4

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 15:34
Dankeschöööön !!!!!!!!!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 15:42
.. noch eine Anmerkung,
die Datenhaltung sollte nicht in den Controls (TLabel) vorgenommen werden.

Die Zahlen dann nur zur Ausgabe an die Controls geben.
Bei den Vergleichen kannst Du dir so die ganzen Konvertierungen sparen.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  if Zahl1 > Zahl2 then
    label4.caption :='Zahl1 ist die größte Zahl!'
  else
    if Zahl1 < Zahl2 then
      label4.caption :='Zahl2 ist die größte Zahl!' ;

  if Zahl1 > Zahl3 then
    label4.Caption :='Zahl1 ist die größte Zahl!
  else
    if Zahl1 < Zahl3 then
      label4.caption :='Zahl 3 ist die größte Zahl!' ;

  if Zahl2 > Zahl3 then
    label4.caption :='Zahl2 ist die größte Zahl!'
  else
    if Zahl2 < Zahl3 then
     label4.caption :='Zahl3 ist die größte Zahl' ;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 16:07
Wieso liegen diese Variablen eigentlich global rum?

Wozu gibt es diese Variablen, obwohl du sie garnicht benutzt? (siehe mein Vorredner)
Denn so wie du sie nutzt, hätten sie lokal sein müssen, fals man sie überhaupt benötugt hätte.

Und das Thema Codeformatierung solltst du dir ganz dringen anschauen.
Eventuell wäre dir dann der Fehler eher aufgefallen.

Nja, eigentlich hatte dir Delphi ja die Fehlerstelle genannt und du hättest dir nur nochmal den Code genau angucken müssen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Sep 2012 um 16:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 16:45
Und kürzer geht das auch noch
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Maximum: integer;
  Ausgabe: string;
begin
  Maximum := Zahl1;
  Ausgabe := 'Zahl 1';
  if Zahl2 > Maximum then
    begin
      Maximum := Zahl2;
      Ausgabe := 'Zahl 2';
    end;
  if Zahl3 > Maximum then
    begin
      Maximum := Zahl3;
      Ausgabe := 'Zahl 3';
    end;
  label4.caption := Ausgabe + ' ist die größte Zahl!'
end;
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
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 17:28
Und noch kürzer...

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Maximum: integer;
  Ausgabe: string;
begin
  Maximum := MaxIntValue([Zahl1, Zahl2, Zahl3]);
  if (Maximum = Zahl1) then
    Ausgabe := '1'
  else if (Maximum = Zahl2) then
    Ausgabe := '2'
  else
    Ausgabe := '3';
  label4.caption := Format('Zahl %s ist die größte Zahl', [Ausgabe]);
end;

Geändert von vagtler (17. Sep 2012 um 17:31 Uhr)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 21:50
Und noch kürzer...

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Maximum: integer;
  Ausgabe: string;
begin
  Maximum := MaxIntValue([Zahl1, Zahl2, Zahl3]);
  if (Maximum = Zahl1) then
    Ausgabe := '1'
  else if (Maximum = Zahl2) then
    Ausgabe := '2'
  else
    Ausgabe := '3';
  label4.caption := Format('Zahl %s ist die größte Zahl', [Ausgabe]);
end;
So jetzt noch kein if sondern Case

Delphi-Quellcode:
Case MaxIntValue([Zahl1, Zahl2, Zahl3]) of
 Zahl1: Ausgabe := '1';
 Zahl2: Ausgabe := '2';
 Zahl3: Ausgabe := '3';
End;
Aber alle vergessen was ist wenn Zahl 1 z.B.: 5 ist und Zahl 2 und 3 = 100
Philip

Geändert von Darlo (17. Sep 2012 um 21:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Anweisung erfolderlich, aber Ausdruck vom Typ Beelean?

  Alt 17. Sep 2012, 21:55
Da CASE konstante Ausdrücke benötigt ... neh, damit geht es nicht.

Bei allen Beispielen wurde die erste "Zahl" angezeigt, welche am Größten ist.
Oder man überlegt es sich und zeigt alle größten "Zahlen" an.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Sep 2012 um 22:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 00:38 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