8-1_Строки.ppt
- Количество слайдов: 16
? Для повторения Каковы особенности простого порядкового типа char? n Как описать в программе слово «ИНФОРМАТИКА» ? n Как запросить от пользователя и сохранить слово «ИНФОРМАТИКА» ? n Как вывести это слово? n
Сложный стандартный тип данных Строки 2
Типы строк В Паскале три типа строк: n стандартные (string); n определяемые программистом на основе string; n строки в динамической памяти. Строка типа string может содержать до 256 символов. Под каждый символ отводится по 1 байту, в котором хранится код символа. Еще один байт отводится под фактическую длину строки 3
Особенности строк 1. 2. 3. Строка типа string может содержать до 255 символов. Под каждый символ отводится по 1 байту, в котором хранится код символа из ASCII таблицы Еще один байт отводится под фактическую длину строки 4
Описание строк type str 5 = string [5]; const n = 10; var s : string; { строка стандартного типа } s 1 : str 5; { строка типа str 5 } s 2 : string [n]; { описание типа задано при описании переменной } При описании в ОП резервируется место под строку нужной длины. 5
Program St-1; Var s: string; Begin Writeln(‘Введите ваше имя: ’); Readln(s); Writeln(‘Здравствуйте ‘, s); End. 6
Обработка строк Подходы: 1. Всей строки как единого целого. 2. Строка, как составной объект из элементов типа Char, т. е. каждый может быть обработан отдельно.
Обращение к строке и ее элементам К строке целиком по имени n К элементу строки по номеру A=‘Программа’ A[1]: =‘П’ A[2]: =‘р’ и т. д. n
Операции со строками n Присваивание s : = s 1; n Конкатенация (склеивание) s 1 : = ’кар’ + ’туз’; n Сравнение по длине if s 3 > s 1 then. . . n Сравнение посимвольное ‘Balkon’<‘balkon’ ASCII ‘balkon’>‘balken’ ‘кошка ‘>’кошка’ Можно использовать функции: PRED(x), SUCC(x), ORD(символ), CHR(код) и др. n Ввод-вывод – как целиком, так и посимвольно. n n Read, Write если посимвольно то в цикле, как массив 9
Работа с символами ORD(символ) - возвращает ASCII -код символа n CHR(код) - возвращает символ с определенным номером в ASCII таблице. n # N обращение по коду символа *например #10 - код Enter n Upcase (символ) – преобразование в верхний регистр (например, Upcase(‘a’)=‘A’) n
Процедуры и функции для работы со строками n Функция Concat(s 1, s 2, . . . , sn) n Функция Copy(s, start, len) n Процедура Delete(s, start, len) n Процедура Insert(subs, s, start) n Функция Length(s) n Функция Pos(subs, s) n Процедура Str(x, s) n Процедура Val(s, x, errcode) 11
Пример 1 Определить сколько раз в данной строке встречается символ ‘A’ var S: string; k: byte; begin read(S); k: =0; For i: =1 to Length(S) do if S[i]=‘A’ then k: =k+1; Write(k); end. 12
Пример 2 Если длина строки нечетное число, то удалить среднюю букву. var S: string; k: byte; begin read(S); k: =Length(S); If k mod 2 <> 0 then Delete(S, k div 2 +1, 1); Write(S); end. 13
Пример 3 Заменить все вхождения подстроки «Лето» на «Зима» var S: string; k: byte; begin read(S); k: =Pos(‘Лето’, S); Delete(S, k, Length(‘Лето’)); Insert(‘Зима’, S, k); Write(S); end. 14
Пример 4 Подсчитать сумму всех цифр в строке var S: string; I, k, d: byte; Sum: Integer; begin read(S); Sum: =0; For i: =1 to Length(S) do Begin val(S[i], d, k); If k=0 Then sum: =sum+d; end; Write(Sum); end. 15
Задачи 1. 2. 3. Подсчет количества слов в заданном тексте. Вставка новых символов/удаление символов после/перед указанных Поиск количества разных слов.
8-1_Строки.ppt