Thema: Delphi Binärrechner (gelöst)

Einzelnen Beitrag anzeigen

loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#1

Binärrechner (gelöst)

  Alt 25. Aug 2011, 14:40
Hallo ich möchte einen Binärrechner programmieren.
irgendwie werden aber, wenn man erst Binär und dann Hexadezimal rechnet, bei Hexadezimal die Binärzahl und die leztze Hexadezimalzahl angezeigt. Woran liegt das?
Ich komm irgendwie nicht dahinter ...

Hier der Quelltext:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Eingabe: TEdit;
    Berechnen: TButton;
    Text1: TLabel;
    Text2: TLabel;
    Binaer: TLabel;
    Hexa: TLabel;
    Auswahl: TRadioGroup;
    procedure BerechnenClick(Sender: TObject);
  private
    { Private-Deklarationen }
    ErgebnisB:array of string;
    ErgebnisH:array of string;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BerechnenClick(Sender: TObject);
var ergB,zaehlerB,iB,ergH,zaehlerH,iH,Zahl:integer;
begin
Zahl:=strtoint(Eingabe.Text);
//Binär
if Auswahl.ItemIndex=0 then
 begin
  Binaer.Caption:='';
  FillChar(ErgebnisB,SizeOf(ErgebnisB),0);
  zaehlerB:=0;
  ergB:=Zahl;
  repeat
   begin
    inc(zaehlerB);
    setLength(ErgebnisB,zaehlerB+1);
    ErgebnisB[zaehlerB-1]:=inttostr(ergB mod 2);
    ergB:=ergB div 2;
   end
  until ergB=0;
  for iB:=zaehlerB-1 downto 0 do
  Binaer.Caption:=Binaer.Caption+ErgebnisB[iB];
 end;
//Hexadezimal
else
if Auswahl.ItemIndex=1 then
 begin
  Hexa.Caption:='';
  FillChar(ErgebnisH,SizeOf(ErgebnisH),0);
  zaehlerH:=0;
  ergH:=Zahl;
  repeat
   begin
    inc(zaehlerH);
    setLength(ErgebnisH,zaehlerH+1);
    case ergH mod 16 of
     0..9: ErgebnisH[zaehlerH-1]:=inttostr(ergH mod 16);
     10: ErgebnisH[zaehlerH-1]:='A';
     11: ErgebnisH[zaehlerH-1]:='B';
     12: ErgebnisH[zaehlerH-1]:='C';
     13: ErgebnisH[zaehlerH-1]:='D';
     14: ErgebnisH[zaehlerH-1]:='E';
     15: ErgebnisH[zaehlerH-1]:='F';
    end;
    ergH:=ergH div 16;
   end
  until ergH=0;
  for iH:=zaehlerH-1 downto 0 do
  Hexa.Caption:=Binaer.Caption+ErgebnisH[iH];
 end
else showmessage('Bitte Endform auswählen!');
end;

end.
Woran liegt das
Anbei ein Bild des Problems!
Angehängte Grafiken
Dateityp: jpg 2011-08-25_154706.jpg (7,2 KB, 14x aufgerufen)
Wer Fehler findet darf sie behalten!

Geändert von loirad (25. Aug 2011 um 15:50 Uhr)
  Mit Zitat antworten Zitat