Слайд 1
Строковый тип данных Операции над строковыми переменными.
Слайд 2
Строка – последовательность символов заданной длины, заключенных в апострофы ‘ ANNA’ , ‘215’ – тип STRING ‘ $’, ‘A’ – тип CHAR Строки должны быть описаны VAR имя: STRING ; Например, Var Strl1: String[30]; Strl2: String; (длина 255) Длина строки может находиться в диапазоне от 0 до 255.
Слайд 3
Символы внутри строки индексируются (нумеруются) от единицы. N:= ‘ Слово’; с-1, л – 2, о – 3, в – 4, о - 5. Обращение к отдельному символу идентифицируется именем строки с индексом, заключенным в квадратные скобки. Например : N[5]
Слайд 4
Операции со строками Над строковыми данными допустимы операции сцепления (конкатенация) (+) и операции сравнения. T:=‘HOME’+’WORK' - ‘HOMEWORK’ «Склеить» строки можно также при помощи функции Strl1:='Сло'; Strl2:='во’; Concat (Strl1, Strl2);
Слайд 5
Сравнение Сравнение происходит посимвольно сравниваются коды соответствующих символов до тех пор, пока не кончится одна из строк (или обе сразу), при этом сразу делается вывод о знаке неравенства. Две строки называются равными, если они равны по длине и совпадают посимвольно.
Слайд 6
Продолжение Вот примеры некоторых операций сравнения над строками: 'стол'<= 'столик ' true 'ABC' <'ADBA' true '12' <'2' true Пустая строка изображается двумя апострофами (одинарными кавычками), между которыми ничего нет.
Слайд 7
Задание: записать операции отношения 'Balkon' 'balkon' 'balkon' 'balken' 'balkon' 'balk' 'кошка ' 'кошка' 'Кот' 'Кот' < > > > = Ord(‘В’) < Ord(‘b’) Ord(‘o’) > Ord(‘e’) Длина первой строки > Длина первой строки > Равны по длине и посимвольно
Слайд 8
Стандартные процедуры DELETE(Str, n, m) Вырезает из строки Str m символов начиная с n позиции. INSERT(Str1, Str2, n) Вставляет строку Str1 в строку Str2 начиная с n -го символа. Первая строка не изменяется, вторая получает новое значение. - Удаление - Вставка
Слайд 9
Числа и строки Часто возникает необходимость получить строковое представление числа и наоборот. Для работы с числами и строками применяются две процедуры STR (N, Str1) Переводит числовое значение N в строковое и записывает в строку Str1. N - целое или вещественное. VAL (Str1, N, K) Обратное действие. Переводит строковое значение в числовое. N – искомое число (целое или вещественное). Примечание : Если данная строка является записью числа, то K=0, иначе K будет равно номеру первого не числового символа.
Слайд 10
10.02.2008 Примеры: Процедуры для работы над строками. S1:=’Коробочка’ DELETE(S1,4,2) S1=’Корочка’ DELETE удаляет из строки S1 2 символа начиная с 4 S2:=’Рука’ S3:=’Баш’ INSERT(S3,S2,3) S2=’Рубашка’ INSERT вставляет в строку S2 строку S3 начиная с 3 символа X:=2.73284 Y:=1234 STR(X:4:2, S4) STR(Y, S5) S4=’2.73’ S5=‘1234’ STR преобразует число в строку; 4:2-желаемый формат числа. S6:=’2.73’ S7:=’12 - 45’ S8:=‘2 , 567m’ VAL(S6,X,K) VAL(S7,X,K) VAL(S8,X,K) X=2.73, K=0 K=3 K=2 VAL преобразует строку в число.
Слайд 11
Стандартные функции COPY(Str, n, m) Копирует из строки Str m символов начиная с n позиции.Исходная строка не меняется LENGHT(Str) Определяет длину строки Str , т.е. количество символов в строке. - Копирование - Длина строки
Слайд 12
Продолжение POS(Str1, Str2) - Поиск подстроки Определяет позицию подстроки в строке. Результат этой функции -целое число, и оно определяет номер элемента с которого начинается первое вхождение подстроки Str1 в строку Str2. Если вхождения нет, то значение функции равно 0.
Слайд 13
Функции для работы над строками S1:=’Мотороллер’ K:=POS(‘Рол’,S1) K=5 Возвращает позицию на, которой находится строка ‘Рол’ в строке S1 S3:= ’Мотороллер’ L:=LENGTH(S3) L=10 Выдаёт количество символов в строке S2:=’Астроном’ S3:=COPY(S2,3,4) S3=’Трон’ Возвращает часть строки длиной 4 символа начиная с 3 символа S1:=’TAL’ S2:=’LINN’ S3:=CONCAT(S1,S2) S3=’TALLINN’ Выдаёт результат сцепления строк.
Слайд 14
Задание 1 Строка Т=‘вертикаль’. Составьте из Т слова «ветка», «кирка», «кильватер» + еще 2 слова. Составить из слова «железнодорожник» слова ДОНОР, ЖЕЗЛ, КОЛЕНО, КРОКОДИЛ + еще 2 слова.
Слайд 15
Задание 2 ‘ информатика’ образовать ‘тик’,’форма’, еще 2-3 слова; ‘ яблоко’ образовать ‘око’, ‘блок’ дано слово из четного числа букв. Поменять местами его половинки.
Слайд 16
Задание 3 Вводится число N. Найти: а) сколько цифр в числе; б) чему равны первая и последняя цифры; в) чему равна предпоследняя цифра; г) чему равна сумма цифр числа.
Слайд 17
Задача 1: дан текст. Cколько раз в тексте встречается буква ‘a’? VAR X: STRING[100]; D,K,I: INTEGER; BEGIN WRITELN(‘ВВЕДИ ТЕКСТ’); READLN(X); D:=LENGTH(X); K:=0; FOR I:=1 TO D DO IF (X[I]=‘a’) OR (X[I]=‘A’) THEN K:=K+1; WRITELN (K, ‘- раз’); READLN END.
Слайд 18
Задача 2: Если в строке нечетное число символов, то удалить средний … .. WRITELN(‘ВВЕДИТЕ СТРОКУ’); READLN(ST); K: = LENGTH(ST); IF K MOD 2=1 THEN DELETE(ST, K DIV 2+1,1) ELSE WRITELN(‘ЧЕТНОЕ ЧИСЛО СИМВОЛОВ’);
Слайд 19
Задача 3: Пока такая подстрока встречается, заменить ‘sin’ на ‘cos’. WHILE POS(‘SIN’, ST)<>0 DO BEGIN K:=POS(‘SIN’, ST); {находим номер вхождения} DELETE(ST, K, LENGTH(‘SIN’)); INSERT(‘COS’, ST, K); END;
Слайд 20
Задание 4 Подсчитать число слов в предложении (подсчитать число пробелов, число слов на 1 больше). Напечатать слово по диагонали (вырезать символ и слева прибавляя пробел, выводить на печать каждый раз с новой строки). Вывести слово, введенное с клавиатуры, наоборот: «коза» - «азок» (использовать цикл с шагом -1)