Bräuchte hilfe bei Umrechner für Dezimalzahl in Dualzahl
-
Hallo,
ich möchte mit dem Borland Builder einen
Dezimalzahl nach Dualzahl Umrechner erstellen.Ich habe 2 Editfelder (Eingabe und Ausgabe),
eine RadioGroup und einen Button.Den Umrechner habe ich schon
folgendermaßen in den Button
programmiert:void __fastcall TForm1::btnBerechnenClick(TObject *Sender)
{
switch(rdgOperation->ItemIndex)
{
case 0:
{
edtAusgabe->Text=DezimalDual (edtEingabe->Text.ToInt());
}break;
}AnsiString DezimalDual (int nDezimalZahl);
{
AnsiString sDualZahl;
int nRest;
int nDezimalZahl
while(nDezimalZahl > 0)
{
nRest=nDezimalZahl%2;
nDezimalZahl=nDezimalZahl/2;
if(nRest==0)
{
sDualZahl="0"+sDualZahl;
}
else
{
sDualZahl="1"+sDualZahl;
}
}
return sDualZahl;
}Leider ist noch irgendwo ein Fehler in dem Programm,
da es mir keinen Wert zurückliefern möchte.
Ich vermute mal, daß ich irgendwo die Variablen
durcheinander gehauen habe.Vielleicht könnt Ihr mir ja etwas weiterhelfen?
-
http://www.marquardtnet.info/cecke/quickies.1/1_quicky_07.html
Die Funktion fü den Button ist verunglückt:
- Du kannst in einer Funktion keine andere definieren
- Die switch-Anweisung ist hinsichtlich der Klammersetzung nicht ok.
- das break steht falsch bzw. ist hier überflüssig.switch(rdgOperation->ItemIndex) { case 0: edtAusgabe->Text=DezimalDual (edtEingabe->Text.ToInt()); }dann ist das ganze in die Ereignismehtode des Button zu packen
void __fastcall TForm1::btnBerechnenClick(TObject *Sender) { switch(rdgOperation->ItemIndex) { case 0: edtAusgabe->Text=DezimalDual (edtEingabe->Text.ToInt()); } }Die Umrechung ist eine extra Definition
void __fastcall TForm1::btnBerechnenClick(TObject *Sender) { switch(rdgOperation->ItemIndex) { case 0: edtAusgabe->Text=DezimalDual (edtEingabe->Text.ToInt()); } } //***************************** AnsiString DezimalDual (int nDezimalZahl); { AnsiString sDualZahl; int nRest; int nDezimalZahl while(nDezimalZahl > 0) { nRest=nDezimalZahl%2; nDezimalZahl=nDezimalZahl/2; if(nRest==0) { sDualZahl="0"+sDualZahl; } else { sDualZahl="1"+sDualZahl; } } return sDualZahl; }