Как в Pascal перевести число в строку?
![]()
Всё ещё ищете ответ? Посмотрите другие вопросы с метками pascal или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Процедура Str
Процедура Str в Паскале преобразует число или перечисление в строку. Синтаксис:
procedure Str(var X : TNumericType; var S : string);
Процедура Str возвращает строку, представляющую значение X , которое может быть любым числовым или перечисляемым типом. Фактическое объявление процедуры Str не соответствует синтаксису Паскаль и должно быть
где необязательные спецификаторы NumPlaces и Decimals управляют форматированием строки:
- NumPlaces задаёт общую ширину строки
- Decimals задаёт количество десятичных знаков после символа десятичного разделителя
Процедуру Str также можно использовать для преобразования значения перечисляемого типа в строковое представление объявленного перечисления. Это означает, что будет работать следующее:
Эта программа выведет на экран слово One . То же самое сделает и следующая программа:
Преобразование числа может быть выполнено, например, так:
Если вы хотите преобразовать вещественное число и задать определённое количество знаков после запятой, то это можно сделать так:
Примеры вывода показаны на рисунке:

Если хотите, можете с помощью процедуры Str создать собственную функцию преобразования вещественных чисел в строку с заданным количеством знаков после запятой. Функция может быть, например, такой:
Здесь с помощью спецификатора Decimals мы задаём количество знаков после запятой. В программе функцию можно использовать так:
Writeln(MyFloatToStr(Pi*2, 3));
При этом на экран будет выведена строка 6.283
Спецификатор NumPlaces тоже может пригодиться, например, при выводе таблиц. С его помощью мы можем задать одинаковую ширину строки, и на экране вывод будет занимать всегда одинаковое заданное количество знакомест, независимо от того, сколько цифр у нас в числе. Пример:
Как перевести число в строку в паскале
Перечислим основные процедуры и функции, которые предназначены для работы с переменными строкового типа.
1. Определение длины строки. Вычисление текущей длины строки производится с помощью функции Length . Ее общий вид следующий: Результатом данной функции является целое число, равное текущему количеству символов в строке. Например, при выполнении следующих конструкций: значение целой переменной K будет равно 12.
- ‘Паскаль ‘>’Паскаль’ (первая строка будет больше второй, так как в первой строке еще присутствует пробел),
- ‘Balkon’ (первая строка меньше второй, так как код символа ‘b’ больше кода символа ‘B’: Ord (‘b’)>Ord (‘B’)) ,
- ‘Паскаль’=’Паскаль’ (строки совпадают посимвольно и равны по длине).
2. Удаление части символов строки. Для удаления из строки фрагмента используется процедура Delete , общий вид которой следующий:
Рис.1. Общий вид процедуры Delete
Например, при выполнении процедуры Delete(‘Язык Паскаль’,5 ,8) из строки будут удалены 8 символов, начиная с пятого, и исходная строка будет иметь вид: ‘Язык’.
3. Вставка символов в строку. Для вставки символов в строку используется процедура Insert . Ее общий вид следующий:
Рис.2. Общий вид процедуры Insert
Например, в результате выполнения процедуры Insert(‘111’, ‘ABC’,2); результирующая строка будет такой:’A111BC’.
4. Поиск подстроки в строке. Для определения позиции подстроки в строке используется функция Pos , общий вид которой следующий:
Рис.3. Общий вид функции Pos
Результат этой функции целое число. Оно определяет номер элемента, с которого начинается первое вхождение подстроки в строку. Если подстрока в строку не входит, то значение функции равно нулю. Например, при выполнении конструкции k1:=Pos(‘BC’,’ABCD’); значение переменной k1 равно 2, так как функция Pos возвращает номер элемента, с которого подстрока первый раз встречается в строке. При выполнении оператора k1:=Pos(‘ABCD’,’ BC’); значение переменной k будет равно нулю.
Приведем пример программы, иллюстрирующей выше описанные конструкции. Пусть в заданном тексте нужно заменить все вхождения подстроки ‘del’ на ‘insert’ .
Решение и комментарии вы можете посмотреть здесь.
5. Склеивание строк. Для «склеивания» строк используется функция Concat , общий вид которой следующий:
Например, после выполнения следующих конструкций: на экран будет выведено сообщение: «Пароход «.
Замечание .
«Склеивание» строк можно производить, используя символ «+», например, C:=A+’о’+B; в результате строка C будет иметь вид: ‘Пароход’.
6. Копирование строк. Для копирования строк или их фрагментов используется функция Copy . Ее общий вид:
Рис.4. Общий вид функции Copy
Например, при выполнении оператора WriteLn(Copy (‘Язык Паскаль’,6,7)) на экран будет выведено сообщение:» Паскаль».
Часто возникает необходимость получить строковое представление числа и наоборот (например, получить строку ’13’ из числа 13). Для работы с числами и строками применяются следующие две процедуры.
7. Перевод числа в строку. Для перевода числа в строку используется процедура Str , общий вид которой следующий:
Рис.5. Общий вид процедуры Str
Например, Str(1.21, St); в результате выполнения процедуры строка будет такой: St=’1.21′.
8. Перевод строкового выражения в число. Для перевода строки в число используется процедура Val . Ее общий вид:
Рис.6. Общий вид процедуры Val
Если данная строка действительно является записью числа (целого или действительного), то значение признака будет равно нулю , иначе значение признака будет равно номеру первого символа, с которым процедура Val «не справилась», то есть преобразование этого символа является невозможным.
Например, при выполнении процедуры Val (‘1234’,N,K); значение переменной N будет равно 1234, а переменная K будет равна нулю, так как строка ‘1234’ является записью целого числа. При выполнении конструкции Val(’12-34′,N,K); значение переменной N не изменится, а переменная K будет равна трем, то есть номеру символа, с которого преобразование невозможно, так как знак «-» в записи чисел может быть только на первом месте.
Проиллюстрируем использование некоторых процедур и функций на примере следующей программы: подсчитать сумму цифр, входящих в данную строку.
Решение и комментарии вы можете посмотреть здесь.
На следующем шаге мы разберем еще несколько задач, при решении которых используются перечисленные конструкции.