![]() |
Boolean
Huhu mal wieder
Heute hänge ich an folgender Aufgabe: Undzwar ich habe ein Editfeld in dem ich meine Grösse angeben soll. dadrunter sind 2 radiobuttons mit denen ich Mann oder Frau auswähle. So dies ist eine Aufgabe aus der Schule :D also net wundern ;P So nun mit if-strukturen ist das ja ganz einfach zu machen aber nun habe ich die aufgabe das mit einer function zu machen. Das ja auch noch alles einfach jedoch hänge ich an der Aufgabe mit Boolean zu arbeiten. Ich soll eine Zahl und eine bollsche Variable übergeben doch das will net recht
Delphi-Quellcode:
function rech(groesse:integer; b:boolean):integer;
Delphi-Quellcode:
var faktor,egross,ergebnis:integer; a:boolean;
Delphi-Quellcode:
*E2010 Inkompatible Typen'Integer' und 'Extended' oO :wiejetzt: was denn Extended?
procedure TForm1.Button1Click(Sender: TObject);
begin egross:=strtoint(edit1.text); if radiobutton1.checked then a:=true ; if radiobutton2.checked then a:=false; ergebnis:=rech(egross,a); label1.caption:=inttostr(ergebnis); end; function Tform1.rech(groesse:integer; b:boolean):integer; begin if b= true then result:= (groesse-100)*0.9 ; // So hier merkert er * if b=false then result:=(groesse-100)*0.85; end; Wenn mir jemand helfen kann vielen dank mfg basti |
Re: Boolean
Wenn du mit der Kommazahl 0,9 multiplizierst, kommt nicht zwingend eine ganze Zahl raus. Du musst das Ergebnis noch mit round() oder trunc() runden.
Nebenbei bemerkt ist dein if-Konstrukt nicht ideal. Wie schon oft erwähnt, sollte man nie mit true vergleichen, und wozu gibts außerdem das if-else. |
Re: Boolean
Damit du das nie mehr "falsch" machen wirst:
![]() Schau's dir an, das wird dir helfen, zu verstehen, wieso du unsauber programmiert hast. :) |
Re: Boolean
Erst mal danke euch beiden !!
Zitat:
Delphi-Quellcode:
ach und das mit if vergleichen wegen true oder false ist nicht so wichtig
if b=false then result:=trunc((groesse-100)*0.85);
für nen anfänger reichts :D mfg basti btw Das Tutorial habe ich schon gelesen aber das zu hoch für mich :D //Edit Danke Dunkel 1a :dancer: |
Re: Boolean
TRUNC schneidet einfach nur die Nachkommastellen ab. Nimm lieber ROUND, das rundet!
|
Re: Boolean
Zitat:
Hier in der DP gab's mal einen Fix dazu. Einfach suchen... |
Re: Boolean
Argl. NIE mit = false oder = true vergleichen. Das geht in die Hose.
Und wenn radiobutton1 checked ist, kann radiobutton2 nur nicht checked sein. Also reicht es das einmal zuzuweisen. Und auch hier NIE mit = false oder = true vergleichen. Booleans sind entweder true oder false. Also:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin // ... ergebnis := rech(egross, radiobutton1.checked ); end; function Tform1.rech(groesse:integer; b:boolean):integer; begin if b then result := round((groesse-100)*0.9); else result := round((groesse-100)*0.85); end; |
Re: Boolean
![]() Wenn Phoenix schon schneller war dann mach ich wenigstens noch nen Link rein. ^^ |
Re: Boolean
@TeronG: Der Link wurde bereits gepostet :wink: Nächstes mal einfach die anderen Beitrage auch anschauen.
|
Re: Boolean
:oops: mea culpa
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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-2025 by Thomas Breitkreuz