Преобразовать двухзначное число из char в integer - Turbo Pascal
Формулировка задачи:
Допустим есть char c[2] = '24' //
Я знаю что не по-паскалевски написал, но думаю так понятно
Как перевести в интеджеровскую переменную это число (я знаю что val но как-то не получается)?Решение задачи: «Преобразовать двухзначное число из char в integer»
textual
Листинг программы
const c: array [0..3] of Char = '24'; var p: PChar; n: Integer; begin n:=0; p:=c; while p^ in ['0'..'9'] do begin n:=n*10+Ord(p^)-Ord('0'); Inc(p); end; WriteLn(n); end.
Объяснение кода листинга программы
- В строке
const c: array [0..3] of Char = '24';
создается константаc
, которая представляет собой массив из четырех символов. Значение этого массива задается как строка'24'
. - В переменной
p
хранится указатель на первый элемент массиваc
. - В переменной
n
хранится целочисленное значение, которое будет использоваться для преобразования символов в числа. - В цикле
while p^ in ['0'..'9'] do begin
происходит проверка: если текущий символ в массивеc
равен '0', то цикл прерывается. Если символ не равен '0', то выполняется следующая часть цикла. - Внутри цикла происходит преобразование символа в число следующим образом:
n:=n*10+Ord(p^)-Ord('0');
. ЗдесьOrd(p^)
возвращает числовое значение символа, аn*10
умножает текущее значениеn
на 10. - После преобразования символа, указатель
p
увеличивается на единицу (Inc(p)
), чтобы перейти к следующему символу в массиве. - Цикл продолжается до тех пор, пока не будет достигнут символ '0'.
- После завершения цикла, значение
n
выводится на экран с помощью функцииWriteLn()
. - Код завершается, и на экран выводится число
n
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д