Урок 15 апреля
Символьный тип данных. Строки символов.
До этого времени мы обходились числовыми данными: целыми (integer) и вещественными(real).Пришло время разобраться с символами и строками.
Символьный тип данных: сhar
Все символы закодированы в таблице символов и именно с ее помощью и распознаются значения нажатых клавиш. Каждый символ занимает 1 байт памяти.
Для работы с символами нам достаточно двух функций: СHR и ORD.
CHR- определяет символ по коду. Пример: write(chr(65)); выведет букву А.
ORD-определяет код по символу. write(ord('A')); выведет 65 (номер буквы А в таблице)
Программа 1
var
c: char;
code: integer;
begin
readln(c);
code := Ord(c);
writeln('Код символа ',c,' равен ',code);
readln(code);
c := Chr(code);
writeln('Символ с кодом ',code,' - это ',c);
end.
Строковый тип данных:string
Строка — это последовательность символов. Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255.
Описываем строку с явным или неявным заданием ее длины, вводим и выводим как обычно. Для работы со строками будем использовать 4 функции и 4 процедуры.
Программа 2
var
s:string;
s1:string[30];
begin
read(s);
s1:='It is a wonderful life!';
write(s, ' ', s1);
end.
Функции и процедуры работы со строками
Функции
|
Процедуры
|
||
+
|
Слияние строк
|
DELETE
|
Удаление символов из строки
|
LENGTH
|
Длина строки
|
INSERT
|
Вставка символов в строку
|
COPY
|
Копирование части строки
|
STR
|
«Превращение» числа в строку
|
POS
|
Подстрока в строке
|
VAL
|
«Превращение» строки в число
|
Функция Copy(S, Pozition, N) выделяет из строки S подстроку длиной N символов, начиная с позиции Pozition. Здесь N и Pozition - целочисленные выражения.
Значение
S
|
Выражение
|
Результат
|
'Мама
мыла раму'
|
Copy(S, 6, 4)
|
'мыла'
|
'Маша
ела кашу'
|
Copy(S,
1, 8)
|
'Маша
ела'
|
Функция Concat(S1, S2, …, SN) выполняет сцепление (конкатенацию) строк S1, S2, …, SN в одну строку.
Выражение
|
Результат
|
Concat('Маша
', 'ела ', 'кашу')
|
'Маша
ела кашу'
|
Функция Length(S)определяет текущую длину строки S.
Результат - значение целого типа.
Значение S
|
Выражение
|
Результат
|
'test-5'
|
Length(S)
|
6
|
'(A+B)*C'
|
Length(S)
|
7
|
Функция Pos(S1, S2) обнаруживает первое появление в строке S2 подстроки S1. Результат - целое число, равное номеру позиции, где находится первый символ подстроки S1. Если в S2 подстроки S1 не обнаружено, то результат равен 0.
Значение
S2
|
Выражение
|
Результат
|
'abcdef'
|
Pos('cd',
S2)
|
3
|
'abcdcdef'
|
Pos('cd',
S2)
|
3
|
'abcdef'
|
Pos('k',
S2)
|
0
|
Процедура Delete(S, Poz, N) - удаление N символов из строки S, начиная с позиции Poz. В результате выполнения процедуры уменьшается текущая длина строки в переменной S.
Исходное
значение S
|
Оператор
|
Конечное
значение S
|
'abcdefg'
|
Delete(S,
3, 2)
|
'abefg'
|
'abcdefg'
|
Delete(S,
2, 6)
|
'a'
|
Процедура Insert(S1, S2, Poz) - вставка строки S1 в строку S2, начиная с позиции Poz.
Исходное
значение S
|
Оператор
|
Конечное
значение S
|
'РС'
|
Insert('IBM-',
S2, 5)
|
'IBM-PC'
|
'Рис.
2'
|
Insert('N',
S2, 6)
|
'Рис.
N 2'
|
Процедура Str (x,s) преобразует число X в строку s
Пример: K:=5; str(k,s3);
Процедура Val(s,v,code) преобразует строку s в значение числовой переменной v,
(если это возможно , то code - 0 иначе Code<>0)
Пример: S:='1234', val(s,k,c);
Домашнее задание.
1. Проверить работоспособность программ 1 и 2 в Паскале.
2. Пройти проверку знаний по этому разделу.
Перед заполнением форму ответа внимательно прочтите текст параграфа.
Я вижу ваши ответы и засчитаю первый ответ.