Перевод десятичного числа в шестнадцатеричное

Задача: 

Пользователь вводит число, представленное в десятичной системе счисления. Программа должна преобразовывать его в число, выраженное в шестнадцатеричной системе счисления. Результат вывести на экран

Алгоритм решения задачи: 

Алгоритм перевода десятичного числа в другую систему счисления одинаков. Однако в случае шестнадцатеричной системы он усложнен тем, что цифры с 10 до 15 должны быть заменены буквами.
Поэтому сначала находится остаток от деления на 16. Если он представляет собой двузначное число, то переменной ch присваивается соответствующий символ. Иначе происходит перевод цифры в ее символьное представление. Символ добавляется к строке.

Программа на языке Паскаль: 

var
    decimal: word;
 
function hexadecimal(decimal:word):string;
var digit: byte; ch: char;
begin
    while decimal > 0 do begin
        digit := decimal mod 16;
        if digit in [10..15] then
            case digit of
            10: ch := 'A';
            11: ch := 'B';
            12: ch := 'C';
            13: ch := 'D';
            14: ch := 'E';
            15: ch := 'F'
            end
        else
            ch := chr(ord('0') + digit);
        hexadecimal := ch + hexadecimal;
        decimal := decimal div 16
    end;
end;
 
begin
    write('Decimal: ');
    readln(decimal);
 
    writeln(hexadecimal(decimal));
 
readln
end.

Комментарии

Помогите написать программу, пожалуйста.

Известно, что в состав сушеного продукта входит M% воды, в состав исходного-N%. Написать программу для определения того, сколько из K кг исходного продукта получится сушеного.
Не надо писать всю программу, только Решение, желательно с объяснением каждого действия.

Наверно надо найти разность

Наверно надо найти разность между N и M:
N - M = x% - это процент ушедшей воды.
Потом надо найти сколько это килограмм:
K * (x% / 100%) = y кг
И вычесть это из K:
K - y

помогите решить задачу

вводится десятичное число и система счисления, вывести это число в данной СС

Если может вводиться любая

Если может вводиться любая система счисления (больше десятичной), то это сложная задача. Потребуется вводить массив букв и разработать алгоритм перевода чисел в буквы.

Здесь есть функция, которая переводит в двоичную и восьмеричную. Аналогично может переводиться в любую другую до десятичной. Для перевода в шеснадцатеричную используется подстановка букв. Однако правильнее использовать массив букв с индексацией от 10 до максимально возможной системы счисления.

сам не смогу решить, нужна

сам не смогу решить, нужна помощь

Решить задачу так, чтобы

Решить задачу так, чтобы десятичное число переводилось вообще в любую систему счисления, на мой взгляд, в принципе не возможно. Надо оговорить до какого предела, например, до СС с основанием 32.

Решите проще. Перевод в СС с основанием от 2 до 9:

var
    decimal: integer;
    r: byte;
 
function binary_octal(bin_oct:byte;decimal:integer): string;
begin
    binary_octal := '';
    while decimal > 0 do begin
        binary_octal := chr(ord('0') + (decimal mod bin_oct)) + binary_octal;
        decimal := decimal div bin_oct
    end;
end;
 
begin
    write('Число: ');
    readln(decimal);
    write('СС: ');
    readln(r);
 
    writeln(binary_octal(r,decimal));
 
end.

спасибо. а можете сделать от

спасибо. а можете сделать от 2 до 16???

http://pas1.ru/radix