Функция перевода строки в число в паскале

Функция перевода строки в число в паскале

Primary tabs

Forums:

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

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

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

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

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

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры STR и VAl.

Например, возьмем 2 числа: 125 и 347. Если эти числа записаны в строковых переменных, то с ними можно производить те действия, которые производятся над строками. Например, в результате операции сцепления 125+347 получится 125347. Если же данные числа будут записаны в переменных типа Integer или Real, то над ними можно производить операции, предусмотренные для чисел (сложение, вычитание умножение, деление, DIV, MOD и т.д.). Например, в результате операции сложения 125+347 получится 472.
В языке программирования Pascal предусмотрена возможность преобразования чисел в их символьное представление и наоборот.
Процедура STR преобразует число целого или вещественного типов в его строковое представление. Процедура имеет 2 параметра: STR (X, ST), где «X» — это число, а ST – его строковое представление. Также, можно указывать формат преобразования: STR(X:A:B, ST), где «A» задает ширину всего поля, которое выделяется для строкового представления числа, а «B» — количество символов в дробной части (последний параметр имеет значение в том случае, если преобразуется вещественное число). Процедура STR делает с числом то же, что и оператор Writeln перед тем как вывести число на экран (преобразует число в символ).
Процедура VAL преобразует строковое представление числа в само число, которое можно записать в целочисленную или вещественную переменную. Процедура имеет 3 параметра: VAL (ST, X, CODE), где ST – строка, которую необходимо преобразовать в число, X – вещественная или символьная переменная, в которую записывается это число, CODE – необязательный параметр, который, в случае ошибки будет содержать номер позиции, в которой обнаружен ошибочный символ.

Читайте также:  Схема плавного пуска пылесоса

Использование процедуры STR.

Строка №3. Создаем 3 строковые переменные.

Строка №4. Создаем 3 целочисленные переменные.

Строка №7. В 1-ую переменную типа Integer записываем число 1234.

Строка №8. Во 2-ую переменную типа Integer записываем число 5678.

Строка №9. Складываем эти числа, результат записываем в 3-ю переменную.

Строка №10. Выводим результат на экран.

Строка№11. Переводим 1-ое число в его строковое представление, результат сохраняем в переменной «stroka1».

Строка №12. Переводим 2-ое число в его строковое представление результат сохраняем в переменной «stroka2».

Строка №13. Производим над строками операцию сцепления и записываем результат в переменную «stroka».

Строка №14. Выводим результат на экран.

О процедуре STR также можно прочитать в разделе, посвященному графике в Pascal.

Использование процедуры VAL.

Напишем программу, в которой строковой переменной будет присвоено значение, определяющее дату, например, 23.02.1965. Пусть эта дата обозначает год вашего рождения. Программа, должна подсчитать, сколько вам лет на текущий момент. Текущим моментом будем считать 2012 год.

Строка №7. В переменную «stroka1» записываем дату рождения.

Строка №8. В переменную «stroka2» копируем из переменной «stroka1» последние 4 символа, 1965.

Строка №9. Преобразовываем эти 4 символа в число и записываем это число в целочисленную переменную «rog».

Строка №10. В целочисленную переменную «let» записываем значение, которое получится при вычитании из числа 2012 числа 1965.

Строка №11. Выводим значение переменной «let» на экран.

begin
writeln(‘Введите число! ‘);
readln(stroka);
val(stroka, chislo, error);
if error = 0 then writeln(chislo) else writeln(‘Вы ввели не число! ‘)
end.

А еще лучше так

var
stroka: string; chislo, error: integer;

Ссылка на основную публикацию
Adblock detector