ich hab es jetzt mal mit case versucht, aber nun klappt mein code nicht mehr.
Vorher:
Code:
program HexToDez;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,d: integer;
h,c,y: string;
begin
repeat
writeln('Bitte Hexadezimalzahl eingeben:');
readln(h);
a:= 1;
c:= h[a];
if c='A' then
begin
d:=10;
c:=IntToStr(d);
end;
if c='B' then
begin
d:=11;
c:=IntToStr(d);
end;
if c='C' then
begin
d:=12;
c:=IntToStr(d);
end;
if c='D' then
begin
d:=13;
c:=IntToStr(d);
end;
if c='E' then
begin
d:=14;
c:=IntToStr(d);
end;
if c='F' then
begin
d:=15;
c:=IntToStr(d);
end;
d:=StrToInt(c);
b:=d;
while a < length(h) do
begin
a:=a+1;
c:=h[a];
if c='A' then
begin
d:=10;
c:=IntToStr(d);
end;
if c='B' then
begin
d:=11;
c:=IntToStr(d);
end;
if c='C' then
begin
d:=12;
c:=IntToStr(d);
end;
if c='D' then
begin
d:=13;
c:=IntToStr(d);
end;
if c='E' then
begin
d:=14;
c:=IntToStr(d);
end;
if c='F' then
begin
d:=15;
c:=IntToStr(d);
end;
d:=StrToInt(c);
b:=b*16+d;
end;
writeln(b);
writeln('');
writeln('Beenden? [y]');
readln(y);
until y='y';
end.
Nachher:
Code:
program HexToDez1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,d: integer;
h,y: string;
c:char;
begin
repeat
writeln('Bitte Hexadezimalzahl eingeben:');
readln(h);
a:= 1;
c:= UpCase(h[a]);
case c of
'A': d := 10;
'B': d := 11;
'C': d := 12;
'D': d := 13;
'E': d := 14;
'F': d := 15;
end;
d:=StrToInt(c);
b:=d;
while a < length(h) do
begin
a:=a+1;
c:=h[a];
case c of
'A': d := 10;
'B': d := 11;
'C': d := 12;
'D': d := 13;
'E': d := 14;
'F': d := 15;
end;
d:=StrToInt(c);
b:=b*16+d;
end;
writeln(b);
writeln('');
writeln('Beenden? [y]');
readln(y);
until y='y';
end.
Habe Case noch nie benutzt
Was muss ich anders machen??