Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:

n — максимально возможная длина строки — целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.

Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).

Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.

Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.

Выражения типа char можно присваивать любым строковым переменным.

В Турбо Паскаль имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной st записывается как st[i]. Например, если st — это ‘Строка’, то st[1] — это ‘С’, st[2] — это ‘т’, st[3] — ‘р’ и так далее.

Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:

В этом примере переменная c приобретет значение ‘TurboPascal’.

Кроме слияния над строками определены операции сравнения ,=,<>, =. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.

Процедуры и функции для работы со строками

В системе Turbo Pascal имеется несколько полезных стандартных процедур и функций, ориентированных на работу со строками. Ниже приводится список этих процедур и функций с краткими пояснениями. Функция возвращает в качестве результата значение текущей длины строки-параметра

Пример.
Функция выполняет слияние строк-параметров, которых может быть произвольное количество. Каждый параметр является выражением строкового типа. Если длина строки-результата превышает 255 символов, то она усекается до 255 символов. Данная функция эквивалентна операции конкатенации «+» и работает немного менее эффективно, чем эта операция.
Функция возвращает подстроку, выделенную из исходной строки s, длиной count символов, начиная с символа под номером index.

Процедура удаляет из строки-параметра s подстроку длиной count символов, начиная с символа под номером index.

Пример.
Процедура предназначена для вставки строки source в строку s, начиная с символа index этой строки.

Пример.
Функция производит поиск в строке s подстроки substr. Результатом функции является номер первой позиции подстроки в исходной строке. Если подстрока не найдена, то функция возвращает 0.

Процедура преобразует численное выражение X в его строковое представление и помещает результат в st.
Процедура преобразует строковую запись числа, содержащуюся в st, в числовое представление, помещая результат в x. x — может быть как целой, так и действительной переменной. Если в st встречается недопустимый (с точки зрения правил записи чисел) символ, то преобразование не происходит, а в code записывается позиция первого недопустимого символа. Выполнение программы при этом не прерывается, диагностика не выдается. Если после выполнения процедуры code равно 0, то это свидетельствует об успешно произошедшем преобразовании.

В дополнение приведем некоторые функции, связанные с типом char, но которые тем не менее часто используются при работе со строками.
Функция возвращает символ по коду, равному значению выражения n. Если n можно представить как числовую константу, то можно также пользоваться записью #n.
В данном случае функция возвращает код символа ch.
Если c — строчная латинская буква, то функция возвращает соответствующую прописную латинскую букву, в противном случае символ c возвращается без изменения.

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Pascal-Паскаль

Программирование. Строки и символы Pascal-Паскаль

  • Скачено бесплатно: 9293
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Строки и символы Pascal-Паскаль

Программирование. Строки и символы Pascal-Паскаль

Строки Pascal-Паскаль

Строка представляет собой особую форму одномерного массива символов, которая имеет существенное отличие. Массив символов имеет фиксированную длину (количество элементов), которая определяется при описании. Строка имеет две разновидности длины:

  • Общая длина строки, которая характеризует размер памяти, выделяемый строке при описании;
  • Текущая длина строки (всегда меньше или равна общей длине), которая показывает количество смысловых символов строки в каждый конкретный момент времени.

Строка в Паскале – упорядоченная последовательность символов. Количество символов в строке называется ее длиной. Длина строки в Паскале может лежать в диапазоне от 0 до 255. Каждый символ строковой величины занимает 1 байт памяти и имеет числовой код в соответствии с таблицей кодов ASCII.

Читать еще:  Операторы си шарп

Код ASCII (American Code for Information Interchange – Американский стандартный код для обмена информацией) имеет основной стандарт и его расширение. Основной стандарт использует шестнадцатеричные коды 00-7F, расширение стандарта – 80-FF. Основной стандарт является международным и используется для кодирования управляющих символов, цифр и букв латинского алфавита; в расширении стандарта используются символы псевдографики и буквы национальных алфавитов.

32 пробел48 064 @80 P96 `112 p
33 !49 165 A81 Q97 a113 q
34 «50 266 B82 R98 b114 r
35 #51 367 C83 S99 c115 s
36 $52 468 D84 T100 d116 t
37 %53 569 E85 U101 e117 u
38 &54 670 F86 V102 f118 v
39 ‘55 771 G87 W103 g119 w
40 (56 8

72 H88 X104 h120 x
41 )57 973 I89 Y105 i121 y
42 *58 :74 J90 Z106 j122 z
43 +59 ;75 K91 [107 k123 <
44 ,6078 N94 ^110 n126

47 /63 ?79 O95 _111 o127

Строковая константа Паскаля – последовательность символов, заключенная в апострофы. Например, ‘строковая константа’, ‘243’. Два следующих друг за другом апострофа (») обозначают пустую строку, т.е. строку с нулевой длиной.

Описание строковой переменной Паскаля

Для описания строковых переменных в Паскале существует предопределенный тип string.

В общем виде описание строковой переменной будет выглядеть следующим образом:

Пример описания строковой переменной в Паскале:

В приведенном выше описании строковая переменная s1 может содержать не более 10 символов, переменная s2 – не более 20 символов. Если же при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax)..

Символы в строке упорядочены, каждый из них имеет порядковый номер, начиная с первого. Имеется возможность обратиться к любому элементу строки, указав его номер, так же как это делается в одномерных массивах. Например, s1[2] позволяет обратиться ко второму символу в строке s1, при этом мы можем поменять это значение, выполнив оператор присваивания s1[2]:= ‘r’, можем вывести на экран это значение или присвоить его другой переменной.

Действия со строками в Паскале

Операция слияния (сцепления, конкатенации) применяется для соединения нескольких строк в одну, обозначается знаком «+». Операция слияния применима для любых строковых выражений, как констант, так и переменных.

Операции отношения позволяют сравнивать строки на отношение равенства (=), неравенства (<>), больше (>), меньше ( =), меньше или равно ( Пример действий со строками в Паскале:

‘строка’<>‘строки’ (верно, т.к. не совпадают последние символы);

‘Abc’ ‘век’ (отношение верно, т.к. буква ‘г’ в алфавите стоит после буквы ‘в’, а, следовательно, имеет больший код).

Стандартные функции для работы со строками в Паскале

Copy (S, poz, n) выделяет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – любое строковое выражение, poz, n – целочисленные выражения.

Значение SВыражениеРезультат
‘строка символов’Copy(S,3,3)рок

Concat (s1, s2. sn) выполняет слияние строк s1, s2. sn в одну строку.

ВыражениеРезультат
Concat(‘язык’, », ‘Pascal’)‘язык Pascal’

Length(S) определяет текущую длину строкового выражения S. Результат – значение целого типа.

Значение SВыражениеРезультат
‘(а+в)*с’Length(s)7

Pos(subS, S) определяет позицию первого вхождения подстроки subS в строку S. Результат – целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.

Значение SВыражениеРезультат
‘предложение’Pos(‘е’, S)3
‘предложение’Pos(‘a’, S)

Стандартные процедуры для работы со строками в Паскале

Delete (S, poz, n) удаляет из строки S, начиная с позиции poz, подстроку из n символов. Здесь S – строковая переменная (в данном случае нельзя записать никакое другое строковое выражение, кроме имени строковой переменной, т.к. только с именем переменной связана область памяти, куда будет помещен результат выполнения процедуры); poz, n – любые целочисленные выражения.

Исходное значение SОператор процедурыКонечное зн-е S
‘abcdefg’Delete(s, 2, 3)‘aefg’

Insert(subS, S, poz) вставляет в строку S, начиная с позиции poz, подстроку subS. Здесь subS – любое строковое выражение, S – строковая переменная (именно ей будет присвоен результат выполнения процедуры), poz – целочисленное выражение.

Исходное значение SОператор процедурыКонечное зн-е S
‘рис. 2’Insert(‘№’, S, 6)‘рис. №2’

Процедуры преобразования типов в Паскале

Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.

Оператор процедурыЗначение S
Str (sin(1):6:4, S)‘0.0175’
Str (3456, S)‘3456’

Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.

Тип XОператор процедурыЗначение XЗначение kod
RealVal(‘12.34’, x, kod)12.34
IntegerVal(‘12.34’, x, kod)123

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

Процедуры STR и VAL.

В строковую переменную можно записывать не только буквы, но и цифры. Однако это будут не числа, как таковые, а их символьное представление. Для преобразования символьных представлений числа в само число, и наоборот, используются процедуры 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» на экран.

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

Перечислим основные процедуры и функции, которые предназначены для работы с переменными строкового типа.

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

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

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

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

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