Как перевести число в строку в паскале
Перейти к содержимому

Как перевести число в строку в паскале

Как в Pascal перевести число в строку?

user avatar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками 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

Если хотите, можете с помощью процедуры 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 будет равна трем, то есть номеру символа, с которого преобразование невозможно, так как знак «-» в записи чисел может быть только на первом месте.

Проиллюстрируем использование некоторых процедур и функций на примере следующей программы: подсчитать сумму цифр, входящих в данную строку.

Решение и комментарии вы можете посмотреть здесь.

На следующем шаге мы разберем еще несколько задач, при решении которых используются перечисленные конструкции.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *