Со строковым типом String мы познакомились в 4.14.
Как можно сэкономить память, работая со строками? Если мы напишем VAR a:String, то Паскаль отведет под символы строковой переменной a 255 байтов. Если мы не собираемся присваивать переменной b значений длиннее, например, 20 байтов, то выгодно написать VAR b:String[20]. В этом случае под символы переменной b в памяти будет отведено 20 байтов.
Теперь разберем функции для работы над строками.
Исходные данные |
Операция |
Результат |
Пояснение |
s1:='Мото'; s2:='роллер' |
s3:=s1+s2 |
s3='Мото-роллер' |
Операция + над двумя строками просто соединяет две строки в одну |
s5:='Мото-роллер' |
k:=Pos('рол',s5) |
k=5 |
Функция Pos возвращает позицию, на которой находится строка 'рол' в строке s5 |
s3:='Мото-роллер' |
l:=Length(s3) |
l=10 |
Функция Length (длина) выдает (возвращает) количество символов в строк |
s3:='астро-ном' |
s4:=Copy(s3,3,4) |
s4= ‘трон’ |
Функция Copy возвращает часть строки длиной 4, начиная с третьего символа |
s5:='Коро-бочка'; |
Delete(s5,4,2) |
s5='Коро-чка' |
Процедура Delete удаляет из строки s5 два символа, начиная с четвертого |
s6:='Рука'; s7:='баш'; |
Insert(s7,s6,3) |
s6='Руба-шка' |
Процедура Insert вставляет в строку s6 строку s7, начиная с третьего символа |
x:=2.73284 |
Str(x:4:2,s8) |
s8='2.73' |
Процедура Str преобразует число в строку. 4:2 – это желаемый формат числа (см. 14.5) |
s8='2.73' |
Val(s8,x,Osh) |
x=2.73 |
Процедура Val преобразует строку в число. Параметр Osh должен иметь тип Integer. Он имеет смысл при анализе ошибки в преобразовании |
Процедура Str может вам понадобиться, например, вот в каком случае. Модуль Graph имеет возможность печатать на экране большими красивыми шрифтами (см. 15.6). Но так печатает он только строковый тип. А в программе “Торпедная атака” вам может захотеться печатать красивым шрифтом счетчик подбитых кораблей, который у вас описан, как целочисленный. Вот тут и пригодится Str. Примеры использования Str и Val см.в 15.6.
Если задана строка s:='Банка', то считается автоматически заданным массив символов с тем же именем: s[1]=’Б’, s[2]=’а’, s[3]=’н’, s[4]=’к’, s[5]=’а’. Тогда после выполнения оператора s[3]:=’р’ мы получим s='Барка'.
Строки можно сравнивать. Условие s1=s2 считается выполненным, если обе строки абсолютно одинаковы, включая и пробелы. Сравнение идет посимвольно слева направо. Поэтому считается, что ‘панк’ < ‘парк’, так как первый несовпадающий символ ‘р’ имеет больший номер, чем ‘н’.
Задание 114: Среди детей встречается игра, заключающаяся в зашифровке своей речи “для секретности” за счет вставки в произносимые слова какого-нибудь словосочетания, например, “быр”. Тогда вместо слова “корова” будет произнесено “кобырробырвабыр”. Составьте программу, которая распечатывает заданную строку, после каждой второй буквы вставляя “быр”.
Задание 115: Давайте поставим задачу шифрования текста более серьезно. Имеется строка текста. Требуется написать программу, которая зашифровывала бы ее в другую строку. Способов шифровки вы можете придумать сколько угодно. Попробуйте такой – заменять каждый символ текста символом, следующим по порядку в таблице ASCII. Тогда слово КОТ превратится в слово ЛПУ. Составьте, пожалуйста, и программу дешифровки. Когда вы познакомитесь с файлами, вы сможете уже зашифровывать и дешифровывать не отдельные строки, а целые тексты. В том числе и ваши паскалевские программы.
Скачано с www.znanio.ru
© ООО «Знанио»
С вами с 2009 года.