Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo-Pascal.7.0.doc
Скачиваний:
7
Добавлен:
24.08.2019
Размер:
3.67 Mб
Скачать

1.12.Строковый тип String. Работа со строками

Со строковым типом String мы познакомились в 0.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 – это желаемый формат числа (см. 3.5)

s8='2.73'

Val(s8,x,Osh)

x=2.73

Процедура Val преобразует строку в число. Параметр Osh должен иметь тип Integer. Он имеет смысл при анализе ошибки в преобразовании

Процедура Str может вам понадобиться, например, вот в каком случае. Модуль Graph имеет возможность печатать на экране большими красивыми шрифтами (см. 4.6). Но так печатает он только строковый тип. А в программе “Торпедная атака” вам может захотеться печатать красивым шрифтом счетчик подбитых кораблей, который у вас описан, как целочисленный. Вот тут и пригодится Str. Примеры использования Str и Val см.в 4.6.

Если задана строка s:='Банка', то считается автоматически заданным массив символов с тем же именем: s[1]=’Б’, s[2]=’а’, s[3]=’н’, s[4]=’к’, s[5]=’а’. Тогда после выполнения оператора s[3]:=’р’ мы получим s='Барка'.

Строки можно сравнивать. Условие s1=s2 считается выполненным, если обе строки абсолютно одинаковы, включая и пробелы. Сравнение идет посимвольно слева направо. Поэтому считается, что ‘панк’ < ‘парк’, так как первый несовпадающий символ ‘р’ имеет больший номер, чем ‘н’.

Задание 114: Среди детей встречается игра, заключающаяся в зашифровке своей речи “для секретности” за счет вставки в произносимые слова какого-нибудь словосочетания, например, “быр”. Тогда вместо слова “корова” будет произнесено “кобырробырвабыр”. Составьте программу, которая распечатывает заданную строку, после каждой второй буквы вставляя “быр”.

Задание 115: Давайте поставим задачу шифрования текста более серьезно. Имеется строка текста. Требуется написать программу, которая зашифровывала бы ее в другую строку. Способов шифровки вы можете придумать сколько угодно. Попробуйте такой – заменять каждый символ текста символом, следующим по порядку в таблице ASCII. Тогда слово КОТ превратится в слово ЛПУ. Составьте, пожалуйста, и программу дешифровки. Когда вы познакомитесь с файлами, вы сможете уже зашифровывать и дешифровывать не отдельные строки, а целые тексты. В том числе и ваши паскалевские программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]