program ConvertNumbers; var num, choice: integer; procedure DecimalToHexadecimal(num: integer); var hexadecimal: string; begin hexadecimal := ''; while num > 0 do begin case num mod 16 of 10: hexadecimal := 'A' + hexadecimal; 11: hexadecimal := 'B' + hexadecimal; 12: hexadecimal := 'C' + hexadecimal; 13: hexadecimal := 'D' + hexadecimal; 14: hexadecimal := 'E' + hexadecimal; 15: hexadecimal := 'F' + hexadecimal; else hexadecimal := Char(num mod 16 + 48) + hexadecimal; end; num := num div 16; end; writeln('Hexadecimal number: ', hexadecimal); end; procedure HexadecimalToDecimal(hexadecimal: string); var decimal, i, digitValue: integer; begin decimal := 0; for i := length(hexadecimal) downto 1 do begin case hexadecimal[i] of 'A', 'a': digitValue := 10; 'B', 'b': digitValue := 11; 'C', 'c': digitValue := 12; 'D', 'd': digitValue := 13; 'E', 'e': digitValue := 14; 'F', 'f': digitValue := 15; else digitValue := Ord(hexadecimal[i]) - 48; end; decimal := decimal + digitValue * round(power(16, length(hexadecimal) - i)); end; writeln('Decimal number: ', decimal); end; begin writeln('1. Decimal to Hexadecimal'); writeln('2. Hexadecimal to Decimal'); writeln('Enter your choice (1 or 2):'); readln(choice); case choice of 1: begin writeln('Enter the decimal number:'); readln(num); DecimalToHexadecimal(num); end; 2: begin writeln('Enter the hexadecimal number:'); readln(hexadecimal); HexadecimalToDecimal(hexadecimal); end; else writeln('Invalid choice.'); end; end.
Программа предлагает выбрать операцию - перевод числа из десятичной системы в шестнадцатиричную или из шестнадцатиричной в десятичную. В зависимости от выбора пользователя программа запрашивает соответствующее число и выполняет перевод.
var
num, choice: integer;
procedure DecimalToHexadecimal(num: integer);
var
hexadecimal: string;
begin
hexadecimal := '';
while num > 0 do
begin
case num mod 16 of
10: hexadecimal := 'A' + hexadecimal;
11: hexadecimal := 'B' + hexadecimal;
12: hexadecimal := 'C' + hexadecimal;
13: hexadecimal := 'D' + hexadecimal;
14: hexadecimal := 'E' + hexadecimal;
15: hexadecimal := 'F' + hexadecimal;
else hexadecimal := Char(num mod 16 + 48) + hexadecimal;
end;
num := num div 16;
end;
writeln('Hexadecimal number: ', hexadecimal);
end;
procedure HexadecimalToDecimal(hexadecimal: string);
var
decimal, i, digitValue: integer;
begin
decimal := 0;
for i := length(hexadecimal) downto 1 do
begin
case hexadecimal[i] of
'A', 'a': digitValue := 10;
'B', 'b': digitValue := 11;
'C', 'c': digitValue := 12;
'D', 'd': digitValue := 13;
'E', 'e': digitValue := 14;
'F', 'f': digitValue := 15;
else digitValue := Ord(hexadecimal[i]) - 48;
end;
decimal := decimal + digitValue * round(power(16, length(hexadecimal) - i));
end;
writeln('Decimal number: ', decimal);
end;
begin
writeln('1. Decimal to Hexadecimal');
writeln('2. Hexadecimal to Decimal');
writeln('Enter your choice (1 or 2):');
readln(choice);
case choice of
1:
begin
writeln('Enter the decimal number:');
readln(num);
DecimalToHexadecimal(num);
end;
2:
begin
writeln('Enter the hexadecimal number:');
readln(hexadecimal);
HexadecimalToDecimal(hexadecimal);
end;
else writeln('Invalid choice.');
end;
end.
Программа предлагает выбрать операцию - перевод числа из десятичной системы в шестнадцатиричную или из шестнадцатиричной в десятичную. В зависимости от выбора пользователя программа запрашивает соответствующее число и выполняет перевод.