Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях.
Строковые выражения строятся из строковых констант, переменных, функций и знаков операций. Над строковыми данными допустимы операции сцепления и операции отношения.
Операция сцепления (конкатенации) (+) применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и переменные.
Пример. Объединение двух строк.
var
Str, Strl, Str2:string[80];
Begin
...
Str1:= 'Turbo ';
Str2:= 'Pascal';
Str:= Str1 + Str2; {в переменной Str - 'Turbo Pascal'}
...
end.
Сравнивать можно строки разной длины. Сравнение осуществляется слева направо в соответствии с ASCII-кодами соответствующих символов. Считается, что отсутствующие символы в более короткой строке имеют код меньше кода любого действительного символа. Например, 'XS' больше, чем 'Х'.
Пример. Проверить, является ли введенная совокупность символов именем месяца на русском языке.
program EXAMPLE11;
const
|
|
Instance: array[l..l2] of string[10]= ('ЯНВАРЬ', 'ФЕВРАЛЬ', 'МАРТ ', 'АПРЕЛЬ' ' МАЙ', 'ИЮНЬ', ' ИЮЛЬ', 'АВГУСТ ', 'СЕНТЯБРЬ', 'ОКТЯБРЬ ', ' НОЯБРЬ', 'ДЕКАБРЬ');
Month: Boolean = False;
var
Str: string[10];
i: Integer;
begin
Writeln('Введите заглавные символы: ');
ReadLn(Str);
for i:= 1 to 12 do
if Str = Instance[i] then Month:=True;
if Month then
WriteLn('Введено имя месяца')
else
WriteLn('Введено не имя месяца')
end.
Фактически строка N символов представляет собой массив из N+1 символа:
string[N] = array[0..N] of Char.
Нулевой символ предназначен для указания используемого количества символов строки и может изменяться от символа с кодом 0 до символа с кодом N. С ним можно работать как и с остальными символами строки (записывать и читать его значение и т. д.), но не забывая о его основном предназначении. [9]
Функция Copy
Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition – целочисленные выражения.
Пример:
Значение S | Выражение | Результат |
‘Мама мыла раму’ | Copy(S, 6, 4) | ‘мыла’ |
‘Маша ела кашу’ | Copy(S, 1, 8) | ‘Маша ела’ |
[10]
Функция Concat
Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.
Пример:
Выражение | Результат |
Concat('Маша ', 'ела ', 'кашу') | 'Маша ела кашу' |
[9]
Функция Length
Функция Length(S) - определяет текущую длину строки S. Результат - значение целого типа.
Пример:
Значение S | Выражение | Результат |
'test-5' | Length(S) | 6 |
'(A+B)*C' | Length(S) | 7 |
[9]
1.6 Процедура Delete
Процедура Delete(S, Poz, N) - удаление N символов из строки S, начиная с позиции Poz.
|
|
Пример:
Исходное значение S | Оператор | Конечное значение S |
'abcdefg' | Delete(S, 3, 2) | 'abefg' |
'abcdefg' | Delete(S, 2, 6) | 'a' |
[10]
Процедуры преобразования типов в Паскале.
1.7 Str(x, S)
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой.Оператор процедуры [10]
1.8 Val(S, x, kod)
Val(S, x, kod) преобразует строку символов S в число x. Здесь S – строковое выражение, x – числовая переменная (именно туда будет помещен результат), kod – целочисленная переменная (типа integer), которая равна номеру позиции в строке S, начиная с которой произошла ошибка преобразования, если преобразование прошло без ошибок, то переменная kod равна 0.[10]
2.1 Постановка задачи
Написать программу – телеграф, который принимает от пользователя сообщения и выводит его на экран в виде последовательности точек и тире. Вывод точек и тире можно сортировать звуковым сигналом соответствующей длительности
Азбука Морзе для букв русского алфавита приведена ниже:
А.- | Б -… | В.- - | Г - -. |
Д -.. | Е | Ж …- | З - -.. |
И.. | Й. - - - | К -. - | Л. -.. |
М - - | Н -. | О - - - | П. - -. |
Р. -. | С … | Т - | У.. - |
Ф.. -. | Х …. | Ц -. -. | Ч -. - -. |
Ш - - - - | Щ - -. - | Ъ -.. - | Ы - - -. |
Ь -.. - | Э.. -. | Ю.. - - | Я. -. - |