Aufgabe 1.1

Aufgabenstellung:

Schreiben Sie ein Pascal-Programm, das zur Eingabe einer Dezimalzahl auffordert und diese Dezimalzah dann als Hexadezimalzahl ausgibt. Das Programm soll so oft fragen, bis eine 0 eingegeben wird. Die Hexadezimaldarstellung der Null braucht dann nicht mehr ausgegeben zu werden.

Zum Konvertieren einer Integer-Zahl in eine Hexadezimalzahl schreiben Sie bitte eine

function HexString(i : integer) : string;

die die Hexadezimalzahl als String mit der minimal erforderlichen Stellenzahl zurück gibt.

Bitte geben Sie ein gut kommentiertes, lauffähiges Pascal-Quellprogramm ab.

Lösung:

program Test;

const hexzahlen="0123456789ABCDEF"; { Array für Zeichen }

function HexString(i : integer) : String;
var s:String;
var n:integer;
begin
s:="";

{ Von rechts aus gehen wir nach links }

while (i>0) do
     begin
     n:=i mod 16; { aktuelles Zeichen }
     
     s:=hexzahlen[n+1]+s; { Vorne an den String dran} 
          
     i:=i div 16; { letzte Stelle streichen }
     end;
HexString:=s; { Ergebnis zurück }
end;

var n:integer;

begin

Write("Bitte Dezimalzahl eingeben: ");
ReadLn(n);

while (n<>0) do { 0 für Ende }
     begin
     WriteLn("Dez ",n," = Hex ",HexString(n));
     
     Write("Noch eine Zahl? (0=Ende) ");
     ReadLn(n);
     end;
end.

Kompilieren:

Christian-Schmitzs-G4:~/test cs$ gpc -o test main.pas
main.pas:5: warning: missing string capacity -- assuming 255
main.pas: In function `HexString':
main.pas:6: warning: missing string capacity -- assuming 255

Testlauf:

Christian-Schmitzs-G4:~/test cs$ ./test
Bitte Dezimalzahl eingeben: 100
Dez 100 = Hex 64
Noch eine Zahl? (0=Ende) 128
Dez 128 = Hex 80
Noch eine Zahl? (0=Ende) 12345678
Dez 12345678 = Hex BC614E
Noch eine Zahl? (0=Ende) 0



Links
MBS Real Studio Plugins

In Erinnerung and den lächelnden Mac Plus, den man beim Start von Mac OS 1 bis X.1 sieht...