![]() |
Umrechner von dem einsersystem in richtige zahlen
Guten abend :)
also ich soll in der schule in delphi ein Programm machen mit Checkboxen. In dem Falle sind es 7 Stück nebeneinander. Und das ist dieses komische Zahlensystem, nur mit 1 und 0. Und diese Boxen liegen nebeneinander. Ich habe eine Variable namens Dezimalzahl eingefügt. Und wenn der Benutzer des Programmes ein Kreuz in der linken Box macht, soll dieser Zahl 128 dazu gerechnet werden. WEnn die zweite Box dann angekreuzt wird, wird +64 dann +32,+16,+8,+4,+2 und der ganz rechten +1. Und dann soll halt wenn er alles, was er wollte angekreuzt hat und auf rechnen drückt, sollte dann diese ,,Fertige'' Zahl in ein editFeld springen. Und ich weiß nicht, wie ich das machen soll. Und auch gut wäre, wenn sich der Wert danach wieder auf 0 stellt, damit man nochmal ausrechnen kann. Ich hoffe ihr versteht, was ich meine. liebe grüße =)
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; var dezimalzahl: integer; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; CB64: TCheckBox; CB32: TCheckBox; CB16: TCheckBox; CB8: TCheckBox; CB128: TCheckBox; CB4: TCheckBox; CB2: TCheckBox; CB1: TCheckBox; Edit1: TEdit; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin if cb128.checked=true then begin dezimalzahl;=dezimalzahl+128; if cb64.checked=true then begin dezimalzahl;=dezimalzahl+64 ; if cb32.checked=true then begin dezimalzahl;=dezimalzahl+32; if cb16.checked=true then begin dezimalzahl;=dezimalzahl+16; if cb8.checked=true then begin dezimalzahl;=dezimalzahl+8; if cb4.checked=true then begin dezimalzahl;=dezimalzahl+4 ; if cb2.checked=true then begin dezimalzahl;=dezimalzahl+2; if cb1.checked=true then begin dezimalzahl;=dezimalzahl+1; end; end. |
AW: Umrechner von dem einsersystem in richtige zahlen
1. Das heißt Dual- oder Binärsystem. Das Einersystem kann es nicht geben, denn es bestünde nur aus einer Ziffer und mit einer Ziffer kann man kein Zahlensystem aufbauen. Das lässt mich zu dem Schluss kommen, dass du nicht verstanden hast, um was es geht.
2. Du weißt schon dass man in Delphi eine Zuweisung mit := macht und nicht mit ;=? 3. Was ist jetzt dein Problem? |
AW: Umrechner von dem einsersystem in richtige zahlen
1. Niemals auf True prüfen:
Delphi-Quellcode:
2. so wie du es jetzt macht, werden "kleinere" Boxwn nur überprüft, wenn "größere" ebenfalls angehakt sind.
if cb64.checked then
Delphi-Quellcode:
3. Zuweisung mit
if cb128.checked then
dezimalzahl := dezimalzahl+128; if cb64.checked then ...
Delphi-Quellcode:
:=
|
AW: Umrechner von dem einsersystem in richtige zahlen
also müsste der quelltext jetzt so lauten?
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; var dezimalzahl: integer; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; CB64: TCheckBox; CB32: TCheckBox; CB16: TCheckBox; CB8: TCheckBox; CB128: TCheckBox; CB4: TCheckBox; CB2: TCheckBox; CB1: TCheckBox; Edit1: TEdit; Label2: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin if cb128.checked then begin dezimalzahl:=dezimalzahl+128; if cb64.checked then begin dezimalzahl:=dezimalzahl+64 ; if cb32.checked then begin dezimalzahl:=dezimalzahl+32; if cb16.checked then begin dezimalzahl:=dezimalzahl+16; if cb8.checked then begin dezimalzahl:=dezimalzahl+8; if cb4.checked then begin dezimalzahl:=dezimalzahl+4 ; if cb2.checked then begin dezimalzahl:=dezimalzahl+2; if cb1.checked then begin dezimalzahl:=dezimalzahl+1; end; end. außerdem muss das programm ja die dezimalzahl, die sie ausgerechnet hat, ausspucken sie soll in einem editfeld stehen. Wie schreibe ich das? irgendwas mit inttostr oder so glaub ich. Und das Programm soll die dezimalzahl wieder auf 0 setzen nach dem rechnen, damit man nicht das programm erst zu machen soll, damit man eine neue zahl eingeben kann. |
AW: Umrechner von dem einsersystem in richtige zahlen
Du nimmst einfach das Ereignis Onklick aller Checkboxen und rechnest das dort aus.
Delphi-Quellcode:
procedure TForm9.cb1Click(Sender: TObject);
var dezimalzahl : integer; begin dezimalzahl:=0; if cb128.checked then dezimalzahl:=dezimalzahl+128; if cb64.checked then dezimalzahl:=dezimalzahl+64 ; if cb32.checked then dezimalzahl:=dezimalzahl+32; if cb16.checked then dezimalzahl:=dezimalzahl+16; if cb8.checked then dezimalzahl:=dezimalzahl+8; if cb4.checked then dezimalzahl:=dezimalzahl+4 ; if cb2.checked then dezimalzahl:=dezimalzahl+2; if cb1.checked then dezimalzahl:=dezimalzahl+1; Edit1.Text:=IntToStr(dezimalzahl); end; |
AW: Umrechner von dem einsersystem in richtige zahlen
okaaay funktioniert :)
danke Leute. Ihr seid die Helden des Tages =) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 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