Содержание
- 2. Символьные и строковые константы Стандартные функции и процедуры обработки строк Множества Примеры решения задач Содержание
- 3. 1. Символы и строки
- 4. В Теме 3 рассматривались произвольные массивы. Перейдем теперь к изучению массивов специального вида - линейных массивов,
- 5. Чем плох массив символов? var B: array[1..N] of char; Это массив символов: каждый символ – отдельный
- 6. В разделе var строки описываются следующим образом: Описание символьных строк Максимальная длина строки - 255 символов.
- 7. длина строки рабочая часть s[1] s[2] s[3] s[4] var s: string; var s: string[20]; Длина строки:
- 8. Необходимо отметить, что один символ и строка длиной в один символ Описание символьных строк совершенно не
- 9. В тексте программы на языке Паскаль последовательность любых символов, заключенная в апострофы, воспринимается как символ или
- 10. Константе автоматически присваивается "минимальный" тип данных, достаточный для ее представления: char или string[k]. Поэтому попытка написать
- 11. Пустая строка задается двумя последовательными апострофами: Символ-константа и строка-константа: неименованные константы st:=''; { пустая строка }
- 12. Все правила задания символов и строк как неименованных констант остаются в силе и при задании именованных
- 13. Типизированная константа, которая будет иметь тип char или string, задается в разделе const следующим образом: Символ-константа
- 14. Результатом унарной операции Действия с символами: операции является символ, номер которого в таблице ASCII соответствует заданному
- 15. Кроме того, к символьным переменным, как и к значениям всех порядковых типов данных, применимы операции сравнения
- 16. Функция chr(k:byte):char "превращает"; номер символа в символ. Действие этой функции аналогично действию операции #. Например: Действия
- 17. Обратной к функции chr() является уже изученная нами функция ord(). Таким образом, для любого числа k
- 18. Cтандартные процедуры и функции pred(), succ(), inc() и dec(), определенные для значений любого порядкового типа, применимы
- 19. Стандартная функция upcase(c: char):char превращает строчную букву в прописную. Символы, не являющиеся строчными латинскими буквами, остаются
- 20. Строки могут быть элементами списка ввода–вывода, при этом записывается имя строки без индекса. Для ввода нескольких
- 21. Особенностью строковых переменных является то, что к ним можно обращаться как к скалярным переменным, так и
- 22. Например, если в программе определены Var S: string; C: char; и задано S:='Москва', то S[1]='М', S[2]='о'
- 23. Элементы массива, составляющие строку можно переставлять местами и получать новые слова. Пример 1. Вывод исходного слова
- 24. 2. Операции, стандартные функции и процедуры, выполняемые над строковыми переменными
- 25. Для строк определены операции: присваивания, слияния (конкатенации, объединения), сравнения. Операции, выполняемые над строками
- 26. Результатом выполнения операции конкатенации "+", является строка, в которой исходные строки-операнды соединены в порядке их следования
- 27. Тип String допускает и пустую строку – строку, не содержащую символов: EmptyStr := ''; {подряд идущие
- 28. Строки - это единственный структурированный тип данных, для элементов которого определен порядок и, следовательно, возможны операции
- 29. Таким образом, каждый из строковых типов упорядочен лексикографически. Это означает, что порядок на строках согласован с
- 30. Формат: Функция Length Length(X :string ): byte; Возвращает длину строки - аргумента X. Причем, длина пустой
- 31. Задача: ввести строку с клавиатуры и заменить все буквы «а» на буквы «б». program qq; var
- 32. Формат: Функция Copy Copy(X :string; Index, Count :byte): string; Копирует (выделяет) подстроку строки X, начиная с
- 33. s := '123456789'; s1 := Copy ( s, 3, 6 ); s2 := Copy ( s1,
- 34. Формат: Функция Concat Concat(X1, X2, .., Xk :string):string Объединение (конкатенация) строк или символов Х1, X2, ..,
- 35. Функция Concat Примеры: Исходные данные: a := 'код‘; b := 'ил‘; Оператор: S := concat('кро', a,
- 36. Формат: Функция Pos Pos(Y, X :string ): byte; Отыскивает первое вхождение строки Y в строке X
- 37. Поиск в строке Поиск в строке: s := 'Здесь был Вася.'; n := Pos ( 'е',
- 38. Формат: Процедура Delete Delete(X :string; Index, Count :byte); Удаляет из строки X подстроку, начиная с позиции,
- 39. s := '123456789'; Delete ( s, 3, 6 ); с 3-его символа 6 штук строка меняется!
- 40. Формат: Процедура Insert Insert(Y, X :string; Index :byte); Вставляет строку Y в строку X, начиная с
- 41. s := '123456789'; Insert ( 'ABC', s, 3 ); Insert ( 'Q', s, 5 ); куда
- 42. Примеры s := 'Вася Петя Митя'; n := Pos ( 'Петя', s ); Delete ( s,
- 43. Формат: Процедура Val VAL(St :string; Ibr : ; Cod :byte ); Преобразует строку символов St в
- 44. Преобразование из строки в число: s := '123'; Val ( s, N, r ); { N
- 45. Формат: Процедура Str STR(Ibr [:M [:N] ], St:string ); Преобразует числовое значение величины Ibr в строковое
- 46. Преобразование из числа в строку: N := 123; Str ( N, s ); { '123' }
- 47. 3. Примеры обработки символьных данных
- 48. Пример 1. Проверить, является ли заданный символ S строчной гласной буквой русского алфавита. Решение. pos(S, 'аэоуыяеёюи')
- 49. Пример 5. Подсчитать, сколько раз в заданной строке встречается указанная буква. Решение 1. Обозначим заданную строку
- 50. Пример 6. Назовем словом любую последовательность букв и цифр. Строка состоит из слов, разделенных одним или
- 51. Пример решения задачи Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 52. Программа program qq; var s, name, otch: string; n: integer; begin writeln('Введите имя, отчество и фамилию');
- 53. Задания Ввести имя файла (возможно, без расширения) и изменить его расширение на «.exe». Пример: Введите имя
- 54. Посимвольный ввод Задача: с клавиатуры вводится число N, обозначающее количество футболистов команды «Шайба», а затем –
- 55. Посимвольный ввод Пропуск фамилии: repeat read(c); until c = ' '; { пока не встретим пробел
- 56. Программа program qq; var c: char; i, N, count, Year, Gol: integer; begin writeln('Количество футболистов'); readln(N);
- 57. Посимвольный ввод Если фамилия нужна: fam := ''; { пустая строка } repeat read(c); { прочитать
- 58. Посимвольный ввод Если нужно хранить все фамилии: const MAX = 100; var fam: array[1..MAX] of string;
- 59. 4. Множества
- 60. Множество – это структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков
- 61. Область значений типа множество – набор всевозможных подмножеств, составленных из элементов базового типа. В выражениях на
- 62. Количество элементов называется его мощностью. Количество элементов множества не должно превышать 256, соответственно номера значений базового
- 63. Формат записи множественного типа и переменной, относящейся к нему: Описание множества Type = set of ;
- 64. Описание множества: примеры type Simply = set of ’a’..’h’; Number = set of 1..31; Var Pr
- 65. Множество можно задать неименованной константой прямо в тексте программы. Для этого необходимо заключить список элементов создаваемого
- 66. Примеры конструирования и использования различных множеств: Множество-константа: неименованная константа if c in ['a','e','i','o','u'] then writeln('Гласная буква');
- 67. Множество - это структурированный тип данных, поэтому его невозможно задать нетипизированной константой! Множество-константа: нетипизированная константа
- 68. Задать множество как типизированную константу можно в разделе const: : set of =[ ]; Множество-константа: типизированная
- 69. 5. Операции с множествами
- 70. Использование в программе данных типа set дает ряд преимуществ: значительно упрощаются сложные операторы if, увеличивается степень
- 71. При работе с множествами допускается использование операций: отношения =, , >=, операции IN объединения множеств пересечения
- 72. © С.В.Кухта, 2009 Два множества А и В считаются равными, если они состоят из одних и
- 73. Два множества А и В считаются не равными, если они отличаются по мощности или по значению
- 74. Операция «больше или равно» используется для определения принадлежности множеств. Результат операции А >= В равен True,
- 75. Эта операция используется аналогично предыдущей операции, но результат выражения А (A⊆B) Например, Операция «Меньше или равно»
- 76. Эта операция используется для проверки принадлежности какого-либо значения указанному множеству. Обычно применяется в условных операторах. (a∈B)
- 77. Операция in позволяет эффективно и наглядно производить сложные проверки условий, заменяя иногда десятки других операций. Например,
- 78. Часто операцию in пытаются записать с отрицанием: X NOT in M (x∉M) Такая запись является ошибочной,
- 79. Объединением двух множеств является третье множество, содержащее элементы обоих множеств (A∪B). Графическая интерпретация: Например, Операция «Объединение»
- 80. Пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества(A∩B). Графическая интерпретация:
- 81. Разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество
- 82. Не существует никакой процедуры, позволяющей распечатать содержимое множества. Это приходится делать следующим образом: {s: set of
- 83. 6. Примеры использования символов, строк и множеств
- 84. Задано множество целых положительных чисел от 1 до n. Создать из элементов этого множества такие подмножества,
- 85. Program mnoj; Const n=100; Var mn1, mn2, mn3: set of 1..n; k: integer; Begin {задание начальных
- 86. {печать полученных множеств} writeln(’подмножество чисел не больших 10’); for k:=1 to n do if k in
- 87. Дан текст. Вывести на экран те буквы из текста, которые встречаются в данном тексте только один
- 88. Оставить в строке только первое вхождение каждого символа, взаимный порядок оставленных символов сохранить. Пример 3 program
- 89. Оставить в строке только последнее вхождение каждого символа, взаимный порядок оставленных символов сохранить. Пример 4 program
- 90. Задано предложение, состоящее из слов, разделенных одним или несколькими пробелами. Определить самое длинное слово предложения. Решение.
- 91. Пример 5 smax:=''; { слово максимальной длины } readln(s); { исходное предложение } s:=s+' '; {
- 93. Скачать презентацию