Перевод из 16 в 10 без функций и процедур - Pascal ABC
Формулировка задачи:
а можете пожалуйста составить прогу для перевода из 16 в 10 без функций и процедур пожалуйста)) заранее спасибо
Решение задачи: «Перевод из 16 в 10 без функций и процедур»
textual
Листинг программы
var i, p, c: integer; s: string; begin writeln('Введите число в 16-й системе счисления:'); readln(s); s := UpperCase(s); p := 0; for i := 1 to length(s) do begin if s[i] in ['0'..'9'] then c := strtoint(s[i]) else if s[i] in ['A'..'Z'] then c := ord(s[i]) - 55; p := 16 * p + c end; writeln('Результат: ', p) end.
Объяснение кода листинга программы
- Ввод числа в 16-й системе счисления:
- Строка
s := UpperCase(s);
преобразует введенное число в верхний регистр. - Строка
readln(s);
считывает введенное число.
- Строка
- Обработка символов:
- Строка
if s[i] in ['0'..'9'] then c := strtoint(s[i]);
проверяет, является ли символ числом от 0 до 9. - Если символ является числом, то он преобразуется в целое число с помощью функции
strtoint
. - Если символ не является числом, то выполняется следующая строка.
- Строка
if s[i] in ['A'..'Z'] then c := ord(s[i]) - 55;
проверяет, является ли символ буквой от A до Z. - Если символ является буквой, то он преобразуется в целое число с помощью функции
ord
, вычитается 55 и полученное значение присваивается переменнойc
.
- Строка
- Вычисление значения:
- Строка
p := 16 * p + c;
вычисляет значение переменнойp
путем умножения текущего значенияp
на 16 и прибавления значения переменнойc
.
- Строка
- Вывод результата:
- Строка
writeln('Результат: ', p);
выводит результат вычислений.
- Строка
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д