Очень полезна при работе со строками функция типа Integer
Pos (SubSt,St), отыскивающая в строке St первое вхождение подстроки SubSt и возвращает номер позиции, с которой она начинается. Если подстрока не найдена, возвращается ноль. Две взаимообратные процедуры Str и Var преобразуют любое число в строку и из строки в число. Процедура: Str (X[:W[:D]], St) преобразует число Х любого вещественного или целого типов в строку символов St так, как это делает процедура Writeln перед выводом. Параметры:W и:D, если они присутствуют, задают формат преобразования: W определяет общую ширину поля, выделенное под соответствующее символьное представление вещественного или целого числа X, а D – количество символов дробной части (этот параметр имеет смысл только в том случае, когда Х – вещественное число). Процедура Val (St,X,Code) преобразует строку символов St во внутреннее представление целой или вещественной переменной Х, которая определяется типом этой переменной. Параметр Code содержит 0, если преобразование прошло успешно, и тогда в Х помещается результат В строке St могут быть ведущие пробелы, однако ведомые пробелы недопустимы. Например, обращение Val (¢ 123¢,X,C) пройдет успешно: Х получит значение 123, в С будет помещен 0, в то время, как обращение Val (¢123 ¢,X,C) будет ошибочным: значение Х не изменится, а С будет содержать 4. Операции отношения строк. В Turbo Pascal’e над двумя строками определены следующие операции отношения: =, <>, >, <, >=, <=. Операции отношения над двумя строками выполняются посимвольно. Слева направо, с учетом внутренней кодировки символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются значением Chr(0). Следующие операции отношения дадут значение True: ‘’’’< ‘.’ ‘A’> ‘1’ ‘Turbo’< ‘Turbo Pascal’ ‘Паскаль’> ‘Turbo Pascal’
2. Контрольные вопросы. 1. Как описываются строковые переменные? 2. Как можно занести значение в строковую переменную? 3. Соединение строк. 4. Как найти необходимую подстроку в строке? 5. Удаление символов из строки. 6. Как сравниваются строки? 3. Задачи для самостоятельного решения.
1. Дана последовательность слов, разделенных между собой пробелами. Определите, сколько слов в последовательности начинается на букву М. 2. Дана последовательность слов, разделенных пробелами. Вывести на экран те из них, которые содержат букву А. 3. Дана последовательность слов, разделенных пробелами. Вывести слова в обратном порядке. 4. Var St, St1, St2:String; В переменную St помещено предложение, в котором слова разделены пробелами. В переменную St1 поместить слова, стоящие на нечетных местах, а в St2 – слова, стоящие на четных местах. Вывести значения St1 и St2 на экран. 5. Дана последовательность слов, разделенных пробелами. Вывести на экран те из них, которые совпадают с начальным отрезком латинского алфавита (ab, abc, abcd и т.д.). 6. Дана последовательность слов, разделенных пробелами. Вывести на экран те из них, которые совпадают с конечным отрезком латинского алфавита (yz, xyz и т.д.). 7. Дана последовательность символов. Разбить ее на четыре последовательности: буквы русского алфавита, буквы латинского алфавита, цифры и другие символы. 8. Дана последовательность слов, разделенных пробелами. Вывести на экран эти слова в алфавитном порядке. 9. Дано арифметическое выражение, имеющее вид: <число><знак><число>=<число>, где <число> – любое целое положительное число, а <знак> – арифметический знак +, –,, /. (Например, 38+43=81, 56*43=275). Проверить, не является ли данное арифметическое выражение тождеством. 10. Дана последовательность символов. Вывести их на экран по одному разу. 11. Дана последовательность символов. Вывести на экран те из них, которые входят в последовательность два, три и более раз. 12. Дана последовательность символов. Вывести на экран те из них, которые встречаются два раза. 13. Дана последовательность слов. Вывести на экран те из них, которые встречаются три, четыре и более раз. 14. Дана последовательность слов, разделенных пробелами. Вывести на экран все слова, предварительно перенеся последнюю букву в начало слова. 15. Дана последовательность символов. Вывести на экран тот символ, который в последовательности встречается чаще остальных. 16. Дано слово. Замените каждую букву слова числом, соответствующим позиции буквы в алфавите (а-1, …, г-4, …). Найти сумму этих чисел (например, слово математика даст результат 14+1+20+6+14+1+20+10+12+1=99). 17. Из последовательности слов St, разделенных пробелами, вывести на экран те слова, которые следуют за данным словом Sl, в алфавитном порядке. 18. Из последовательности слов St, разделенных пробелами, вывести на экран те слова, которые предшествуют данному слову, занесенному в переменную Sl, в алфавитном порядке. 19. В строковую переменную St занесена последовательность чисел, разделенных запятыми. Определить, образуют ли эти числа арифметическую прогрессию (например: 2,4,6,8,10,12; 13,10,7,4,1). 20. Дан текст из букв и цифр. Определить, равна ли длина текста сумме числовых значений цифр, входящих в текст.
4. Список дополнительной литературы.
1. В.В. Фаронов. Turbo Pascal 7.0. Начальный курс. Учебное пособие – М: «Нолидж», 1997 616с. 2. В.П. Абрамов, Трифонов Н.П., Трифонова Н.Г. Введение в язык Паскаль. Учебное пособие. – М: Наука Гл. ред. физ.-мат. лит., 1988-3220с. 3. Е.А. Зуев. Язык программирования Turbo Pascal 6.0. – Мн.: Высш шк., 1992 298с. 4. Ян Белецкий. Турбо Паскаль с графикой для ПК. – М.: Машиностроение, 1991 320с. 5. В.В. Фаронов. Турбо Паскаль (в 3 книгах) – М.: Наука, 1992г. 6. Е.А. Зуев. Система программирования. Турбо Паскаль. – М.: Радио и связь, 1992 288с. 7. Ю.С. Климов и др. Программирование в среде Турбо Паскаль 6.0. Мн.: Высш. Шк., 1992 158с. 8. Дональд Алкок. Язык Паскаль в иллюстрациях. – Мир, 1991 192с.
|