Тема
урока: Правила описания символьных величин и символьных строк. Основные функции
и процедуры Паскаля для работы с символьной информацией.
Цели урока: ознакомление с
символьными и строковыми величинами; формирование умения составлять программы
обработки символьных и строковых величин.
Изучение
нового материала.
С помощью компьютера можно решать
весьма разнообразные задачи обработки текстов: от составления платежных
ведомостей до автоматической верстки газет. Для того, чтобы компьютер мог
обрабатывать тексты, он должна уметь оперировать не только с числами, но и со
словами.
Познакомимся с основными приемами
обработки текста на компьютере.
Будем полагать, что текст - это
произвольная последовательность символов некоторого алфавита. Алфавитом может
служить любое множество символов, например (0, 1,2, ...), (А, Б, В,...), (А, В,
С,...).
Строкой символов, или символьной
(строковой, текстовой) константой, будем называть последовательность символов,
заключенных в апострофах.
Строка символов может состоять из
одного или нескольких символов, а также не содержать ни одного символа (пустая
строка, или строка нулевой длины). Максимальная длина текстовой строки 255
символов.
Мы знаем, что для обработки на
компьютере данных того или иного типа используются переменные. Вспомним, что
тип переменной определяется типом данных, которые она представляет.
В программе Free Pascal для
работы с символами используются два типа переменных:
ü символьный тип данных;
Описание: идентификатор char, (
var x: char).
Диапазон значений: значением
переменной этого типа может быть любой символ – это буквы, цифры, знаки
препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный
числовой код от 0 до 255. ü строковый тип данных.
Как
правило, одно целое число или один символ занимают в памяти ЭВМ два байта. В то
же время для изображения символа достаточно одного байта. С целью экономии
памяти машины при использовании символьных данных в языке Паскаль введено
понятие строки. Строкой называется последовательность символов определенной
длины. Элементы строки хранятся по два в двух байтах памяти ЭВМ.
Переменные типа string могут быть
объявлены следующим образом:
var s1: string[30]; s2: string.
Число 30 означает максимально возможное количество символов строки s1II.
Символьный
тип переменных
Символьный тип переменных хранит
один символ и описывается служебным словом Char. Значения символьного
типа занимают 1 байт памяти.
Формат описания: Var <имя
переменной>: Char;
Значение символьной переменной
заключается в апострофы, например: ch:='а ';
s:='5'; sh := '*'; а := '3'; summa :='G'.
При сравнении символьных
переменных сравниваются их коды ASCII.
Задачи:
1.
Сравнить две символьные константы «С» и «с». Равны ли они и, если
нет, то какая из них меньше?
2.
Написать любой символ и определить его порядковый номер, а также
предыдущий и последующий символы.
Строковый
тип данных
Строкой
называется последовательность символов определенной длины. Элементы строки
хранятся по два в двух байтах памяти ЭВМ в виде кодов (чисел в диапазоне от
-127 до 127, если рассматривать их как числа со знаком, от 0 до 255, - если без
знака). Каждому символу соответствует код ASCII. Значение строковой переменной
заключается в апострофы. Формат описания:
Var <имя
переменной> : String[<количество символов>]; где
[<количество символов>] - количество символов в строке, по умолчанию 256
символов в строке.
Стандартные
функции и процедуры для работы с символьными величинами
Стандартные
функции: сравнение, длина строки, копирование, вхождение подстроки,
сложение (конкатенация). 1. Операция сложения символьных величин.
Операция сложения позволяет
строить из двух символьных строк третью, состоящих из символов первой, за
которой следуют символы второй. Обозначается эта операция знаком "+".
Пример 1. Описываем строковые переменные.
var s1, s2, s3: string;
Присваиваемое значение строки
заключается в апострофы. Присвоим первым двум следующие значения, а третья
будет равна их склеиванию:
s1: =
'Тише воды, '; s2:= 'ниже травы’; s3:=s1+’’+s2; Строка s3 имеет значение 'Тише
воды, ниже травы'.
2. Длина строки
Под длиной строки понимается
количество введенных символов, но она не может превышать максимально возможной
длины (в описательной части). Это значение можно определить при помощи функции,
результат которой целое число, равное количеству символов. Пример 2. s1:='12345';
s2:= 'Семеро одного не ждут’; k1:=Length(s1); k2:=Length(s2). В результате
значения целых переменных будут равны: kl=5, k2=21. 3. Копирование
Функция copy(str,n,m) копируют т
символов строки str, начиная с n-го символа, при этом исходная строка не
меняется. Можно результат этой функции присваивать другой строке или сразу
выводить его на экран.
Пример
3.
s1:='паровоз';
s2:='123456'; s3:=copy(s1, 5, 3); writeln(s3); writeln(copy(s2, 3, 2));
Значения переменной s1=’воз’. А
на экране будут выведены следующие строки: воз и 34.
Стандартные процедуры для работы с
символьными величинами: удаление, вставка, преобразование типов.
1. Удаление
Для этого используется процедура
Delete(str, n,m), которая вырезает из строки str mсимволов, начиная с n-го.
таким образом сама строка изменяется.
Пример
4.
Дан
фрагмент программы: s:='123456'; delete(s, 3, 2); writeln(s);
После выполнения этих операторов
из строки будут удалены два символа, начиная с третьего, то есть строка будет
такой: s = '1256'.
2. Замена (Вставка)
Это можно сделать, применяя
процедуру Insert(s1,s2,n) – вставка строки s1 в строку s2, начиная с п-го
символа, при этом первая строка остается такой же, как и была, а вторая
получает новое значение. Пример 5. s1;='34': s2:='1256'; insert (s1, s2, 3); В
результате выполнения данной процедуры строка будет такой s2='123456'.
3. Числа и строки
Число 25 и строка 25 – это не
одно и то же. Для работы с числами и строками применяются две процедуры.
Str(n,s1) – переводит числовое
значение n в строковое и присваивает результат строке s1, причем можно
переводить как целые числа, так и вещественные. Пример 6.1 n:=12; str(n,s1);
- после выполнения s1 ='12';
Существует обратная операция,
переводящая строковое значение в числовое.
Функция val(s, n, k) – переводит
строковое значение в числовое, если данная строка действительно является
записью числа (целого или вещественного), то значение k=0, а n – это число,
иначе k будет равно номеру символа, в котором встречается первое нарушение
записи числа n. Пример 6.2
val(‘1234',n,k) п=1234, k=0;
4. Функции преобразования типов
Иногда в программах возникает
необходимость по коду определить символ и, наоборот, по символу определить его
код. Для этого используют функцию: CHR(x).
Эта функция возвращает символ, соответствующий
ASCII-коду числа x. Пример 7.
for i = 0 to 255 do writeln( i,' ', chr(i));
Для определения кода по символу
используют функцию ORD.
5. Использование буфера обмена при работе с
символьными строками
Readkey – записывает значение
нажатой клавиши в буфер обмена, не выводя ее на экран.
Upcase – перевод строчных букв в заглавные. Пример
8.1
writeln('Введите
строчные буквы, для завершения нажмите Z'); repeat ch:=readkey;
write(Upcase(ch)); until ch='z';
Закрепление
материала.
End.
1. Напечатать символы, соответствующие различным кодам ASCII, и
одновременно определить, какой максимальный код можно использовать.
2. Ответить на вопросы 2, 3 (стр. 184).
3. Выполнить задание: В три символьные переменные F, I, O ввести
свои фамилию, имя, отчество. Сформировать из этих данных строку S, содержащую
ваши фамилию и инициалы.
Домашнее
задание
§ 27 изучить; выполнить
задание: Поменять порядок символов в строке на обратный. (Строка вводится
произвольно с клавиатуры)
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.