Алгоритмы обработки символьной информации
Символьная информация – это информация, отображаемая с помощью символов (букв, цифр, знаков операций и др.).
Символьная информация в алгоритмах и программах описывается данными двух типов: символьным и литерным. Они отличаются друг от друга тем, что значением символьной переменной является один символ, а литерной – строка символов.
Данные символьного типа описываются с помощью идентификатора Char.
Данные литерного типа (строковые данные) описываются с помощью идентификатора String.
Для данных символьного и литерного типов применимы операции сцепки (соединения, конкатенации) и сравнения (<, >, ≤, ≥, =, ≠). Операция сравнения осуществляется следующим образом: из двух символов меньше тот, который встречается в таблице ASCII раньше.
Значения символьных переменных задаются в апострофах.
Функции и команды обработки строк:
Процедуры
§ Delete(Var S: string; N,M: integer)
Удаляет М символов из строки S, начиная с позиции N.
§ Insert(SubS: String; Var S:String; N:Intger)
Вставляет подстроку SubS в строку S, начиная с позиции N.
§ Str(X:Integer; Var S:String)
Возвращает представление числа X в его символьной форме S.
§ Val(S:String; Var X, Code: Integer)
Возвращает представление символов строки S в ее числовой форме X. Параметр Code содержит признак ошибки преобразования (если Code = 0, то ошибки нет).
Функции
§ Chr(X:Byte):Char
Возвращает символ с заданным порядковым номером X.
§ Concat(S1[, S2, …, SN]):String
Выполняет сцепку (конкатенацию) последовательности строк.
§ Copy(S:String; N, M:Integer):String
Возвращает подстроку из строки S, начиная с позиции N и длиной M символов.
§ Length(S:Sring):Byte
Возвращает количество символов в строке S.
§ Ord(X:char):LongInt
Возвращает порядковый номер символа X в таблице кодов символов.
Pos(SubS, S: Sring):Byte
Возвращает номер позиции, начиная с которой в строке S располагается подстрока SubS (если значение функции равно нулю, то S не содержит SubS).
Задания:
1. Дано название города. Определить, четно или нет количество символов в нем.
2. Написать программу вывода последовательности символов АABABCABCD…..AB…YZ.
3. Написать программу вывода последовательности символов ZYYXXX…A…AA.
4. Написать программу определения количества слов в заданном тексте. Слова разделены одним пробелом.
5. Определить, сколько раз встречается заданный символ в некотором фрагменте текста.
6. Подсчитать количество запятых в заданном тексте.
7. Что напечатает компьютер после выполнения программы?
Program Primer;
Var a,b,c,d: string;
Begin
a := ‘лекарство’;
Delete(a,3,5);
Writeln(a);
Delete(a,3,1);
b := ‘т’;
Insert(b,a,3);
Writeln(a);
c:= ‘кот’;
d := ‘мпо’;
Insert(d,c,3);
Writeln(c);
End.
8. Заменить всюду в заданном тексте одного заданного слова на другое заданное слово такой же длины.
9. Дано предложение, в котором имеется несколько букв «е». Найти порядковый номер первой из них.
10. Является ли заданное слово «перевертышем». Слово называется «перевертышем», если совпадает с собой после переворачивания.
Список литературы
1. Информатика. Л.З. Шауцукова
2. Практикум по Турбо Паскалю. И.А. Бабушкина, Н.А. Бушмелева, С.М. Окулов, С.Ю. Черных.
3. Задачник – практикум. И.Г. Семакин, Е.К. Хеннер.
4. Я иду на урок информатики. Д.М. Златопольский.
5. Контрольные работы по информатике. Е.А. Пономарева.