- Код: Выделить всё
program Ren_Dec2hex;
{$mode objfpc}{$H+}
uses crt, dos, renxfiltrus;
const hl5 = '0123456789ABCDEF';
var hold_in, dec_str, hex_str: string;
hex_digits: array[0..15] of char;
ch: char;
k: integer;
procedure initialize;
var j: word;
const hl5 = '0123456789ABCDEF';
temp: String [Length(hl5)];
begin
temp:=hl5;
for j:=0 to 15 do hex_digits[j] := temp[j+1];
end;
procedure get_decimal(var dec_str: string);
var k: word;
begin
repeat
xfiltrlazlaz:='Введите строку десятичных цифр:';
xfil_ruslazdos;
writeln(xfiltrlazdos);
readln(dec_str);
if dec_str = '' then Halt;
for k:=Length(dec_str) downto 1 do
if not (dec_str[k] in ['0'..'9']) then Delete(dec_str, k, 1);
while (Length(dec_str) > 1) and (dec_str[1] = '0') do Delete(dec_str, 1, 1);
if Length(dec_str)> 0 then Exit;
xfiltrlazlaz:='Ошибка при вводе, повтарите';
xfil_ruslazdos;
writeln(xfiltrlazdos);
writeln;
until false;
end;
procedure convert(var dec_str, hex_str: string);
var remainder: integer;
procedure divide_by_16;
var j,k,dividend: word;
error: integer;
begin
remainder:=0;
for j:=1 to Length(dec_str) do
begin
if KeyPressed then halt;
Val(dec_str[j], k, error);
dividend:=10*remainder+k;
remainder:=dividend mod 16;
dec_str[j]:=hex_digits[dividend div 16];
end;
Delete(dec_str,1,1);
end;
begin
hex_str:='';
while Length(dec_str) > 0 do
begin
if KeyPressed then Halt;
divide_by_16;
hex_str:=hex_digits[remainder]+hex_str;
end;
end;
begin
initialize;
repeat
get_decimal(dec_str);
hold_in:=dec_str;
convert(dec_str, hex_str);
k:=Length(hold_in)-2;
while k > 1 do
begin
Insert(',',hold_in, k);
Dec(k,3);
end;
write(hold_in,' = $');
while Length(hex_str) mod 4 <> 0 do hex_str:='0'+hex_str;
k:=Length(hex_str)-3;
while k > 1 do
begin
Insert(' ',hex_str,k);
Dec(k,4);
end;
writeln(hex_str); writeln;
xfiltrlazlaz:='Для продолжения работы нажмите <Enter>, а для окончания <Esc>';
xfil_ruslazdos;
writeln(xfiltrlazdos);
ch:=readkey;
if ch:=#27 then Break;
writeln;
until false;
end.
Не понимает это место:
Можно ли по другому это место переделать(варианты), выходит с ошибкой Ren_Dec2hex.pas(12,32) Fatal: Syntax error, "=" expected but ";" found
- Код: Выделить всё
const hl5 = '0123456789ABCDEF';
temp: String [Length(hl5)];
Ошибка останавливается между ] и ;