AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Dezimalzahl in Binärzahl - Frage zum Quelltext

Dezimalzahl in Binärzahl - Frage zum Quelltext

Ein Thema von haui95 · begonnen am 23. Mai 2012 · letzter Beitrag vom 23. Mai 2012
 
haui95

Registriert seit: 1. Feb 2012
Ort: Niedersachsen
29 Beiträge
 
Delphi 7 Personal
 
#1

Dezimalzahl in Binärzahl - Frage zum Quelltext

  Alt 23. Mai 2012, 18:40
Guten Tag,
ich komme gerade aus der Schule und hatte in den letzten beiden Stunden Informatikunterricht. Wir haben uns in diesen beiden Stunden noch einmal mit dem Dezimalsystem und dem Binärsystem auseinandergesetzt, jedoch haben wir dieses Mal eine Dezimalzahl in eine Binärzahl umgewandelt und als Programm umgesetzt.


Delphi-Quellcode:
function Reverse(eingabe: String): String;
var
  i: Integer;
begin
  for i := length(eingabe) downto 0 do
    result := result + eingabe[i];
end;

function DecToBin(eingabe: Integer): String;
var
  i: integer;
  ergebnis: String;
begin
  ergebnis := '';
  repeat
    begin
      ergebnis := ergebnis + IntToStr(eingabe mod 2);
      eingabe := eingabe div 2;
    end;
  until (eingabe = 0);
  result := Reverse(ergebnis); // <-- Den String mit einer Zählschleife umzudrehen ist laut unserem Lehrer unkomplizierter und einfacher zu verstehen.

Delphi-Quellcode:
function DecToBin(eingabe: Integer): String;
var
  ergebnis: String;
begin
  ergebnis := '';
  repeat
    begin
      ergebnis := IntToStr(eingabe mod 2) + ergebnis; // <-- Instruktion laut unserem Lehrer schwerer zu verstehen.
      eingabe := eingabe div 2;
    end;
  until (eingabe = 0);
  result := ergebnis;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit2.Text := DecToBin(StrToInt(Edit1.Text));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
end.
Nun frage ich mich, warum unser Lehrer meinte, dass er die Anweisung ergebnis := IntToStr(eingabe mod 2) + ergebnis; , um einen String gleich richtig anzuordnen
nicht kannte und gleichzeitig meinte, dass dieses keine vernünftige Lösung wäre und zugleich auch noch zu komplizierter zu verstehen. Ist da wirklich etwas dran ? Kann man den String besser mit einer Zählschleife umdrehen als in der Repeat-Until-Schleife den Rest gleich vor das Ergebnis zu setzen. Was ist effizienter und eleganter ? Trotzdem bevorzuge ich immer noch diese Anweisung ergebnis := IntToStr(eingabe mod 2) + ergebnis; MfG

Hauke
Hauke
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 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 by Thomas Breitkreuz