Преобразовать строку в число. Пример использования процедуры Val() в Паскаль

Для преобразований строк в числа в Паскале используется стандартная процедура процедура $val()$ со следующей сигнатурой:

procedure Val(S; Var V; var Code : Integer);

где:

  1. $S$ - переменная со строковым типом (string). Должна представлять последовательность символов, формирующих знаковое целое число - это та строка, которую мы будем преобразовывать.
  2. $V$ - переменная типа Real или Integer (здесь имеет место перегрузка процедуры). В этой переменной будет содержаться число, если преобразование пройдёт успешно
  3. $Code$ - переменная типа Integer — позиция, в которой произошла ошибка при преобразовании, или нуль, если ошибки не было.

При этом следует отметить, что переменные $V$ и $Code$ принимаются переменной по ссылке -- то есть хотя процедура и не возвращает значений, но она изменит значения этих двух переменных в области вызова и таким образом можно будет получить результат преобразования.

Что делает процедура val()

Процедура $val()$ преобразовывает строковое значение $S$ в его числовое представление $V$.
Переменная $Code$ будет содержать номер позиции, в которой произошла ошибка при преобразовании, или нуль, если ошибки не было.

Пример использования $val()$


var
  I, Code : Integer;
  s: string;

begin
 writeln('vvedite chislo:');
 readln(s); { <-- получаем строковое представление числа
(предположительно, строку цифр
-- ведь на самом деле мы не знаем что введёт пользователь }

// далее попытаемся преобразовать полученную строку в число

 Val(s, I, Code); // вызываем процедуру преобразования
 { Была ошибка при преобразовании ? }
 if (Code <> 0) then
   writeln('Oshibka pri preobrazovanii v pozicii : ', Code)
 else
   writeln('Uspeshno poluchili chislo = ', I);

  readln(); // удерживаем консоль
end. 

Источники: