Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#22

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 16:42
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var n, result, y: Integer;
    x, s1, s2, s3, s4: String;
begin
 x:=(edit1.Text);
 n:=Length(x);
  if n=1 then
   begin
    y:=StrToInt(edit1.Text);
    result:=y*1;
    edit2.Text:=IntToStr(result);
   end;
  if n=2 then
   begin
    s1:=copy(x,2,2);
    s2:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2;
    edit2.Text:=IntToStr(result);
   end;
  if n=3 then
   begin
    s1:=copy(x,3,3);
    s2:=copy(x,2,2);
    s3:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4;
    edit2.text:=IntToStr(result);
   end;
  if n=4 then
   begin
    s1:=copy(x,4,4);
    s2:=copy(x,3,3);
    s3:=copy(x,2,2);
    s4:=copy(x,1,1);
    result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4 + StrToInt(s4)*8;
    edit2.Text:=IntToStr(result);
   end;
  if n>4 then
   begin
    showmessage('Es können nur Zahlen mit max 4 Stellenumgerechnet werden.');
   end;
end;
Ich sehe da nirgendswo ein "copy" oder was auch immer... keine Zuweisung die etwas mit s1, ..., s4 zu tun hätte (Zuweisung ist ":=").

Weiters
Delphi-Quellcode:
var
  binStr : String;
  binVal : Integer;
  decVal : Integer;
  i : Integer;
begin
  binStr := edit1.Text; // weise binStr den Inhalt von edit1.Text
  decVal := 0; // initialisiere ein paar Werte
  binVal := 1;
  for i := Length(binStr) downto 1 do // gehe alle Elemente rückwärts durch -> richtige Reihenfolge
  begin
    if binStr[i] = '1then // wenn das Element an der Stelle i = 1 ist, dann
      decVal := decVal + binVal; // addiere dem dezimalen Wert den binären Zählwert hinzu
    binVal := binVal * 2; // aktualisiere den binären Zählwert!
  end;
  edit2.Text := IntToStr(decVal);
end;
Wenn du die Syntax einmal gerafft hast und die Logik dahinter immernoch nicht, dann führe einen Schreibtischtest durch - dh. gehe alles manuell per Hand auf Blatt Papier Schritt für Schritt durch!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat