Einzelnen Beitrag anzeigen

JP29

Registriert seit: 27. Aug 2011
45 Beiträge
 
Delphi 6 Personal
 
#23

AW: Umrechnen von Zahlensystemen

  Alt 28. Aug 2011, 18:00
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
    [B]s1:=[/B][B]copy[/B](x,2,2);
    [B]s2:=[/B][B]copy[/B](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 ":=").
da steht doch copy und :=
Zitat:
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!
ok ist schon verständlicher, aber was ist wenn das element 0 ist?
und das mit dem binval*2 versteh ich auch nicht
  Mit Zitat antworten Zitat