Преобразовать двухзначное число из 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.

Объяснение кода листинга программы

  1. В строке const c: array [0..3] of Char = '24'; создается константа c, которая представляет собой массив из четырех символов. Значение этого массива задается как строка '24'.
  2. В переменной p хранится указатель на первый элемент массива c.
  3. В переменной n хранится целочисленное значение, которое будет использоваться для преобразования символов в числа.
  4. В цикле while p^ in ['0'..'9'] do begin происходит проверка: если текущий символ в массиве c равен '0', то цикл прерывается. Если символ не равен '0', то выполняется следующая часть цикла.
  5. Внутри цикла происходит преобразование символа в число следующим образом: n:=n*10+Ord(p^)-Ord('0');. Здесь Ord(p^) возвращает числовое значение символа, а n*10 умножает текущее значение n на 10.
  6. После преобразования символа, указатель p увеличивается на единицу (Inc(p)), чтобы перейти к следующему символу в массиве.
  7. Цикл продолжается до тех пор, пока не будет достигнут символ '0'.
  8. После завершения цикла, значение n выводится на экран с помощью функции WriteLn().
  9. Код завершается, и на экран выводится число n.

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы