СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ
Благодаря готовым учебным материалам для работы в классе и дистанционно
Скидки до 50 % на комплекты
только до
Готовые ключевые этапы урока всегда будут у вас под рукой
Организационный момент
Проверка знаний
Объяснение материала
Закрепление изученного
Итоги урока
ЦЕЛИ И ЗАДАЧИ: приобретение навыков составления программ с использованием строковых величин
ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:
Учащиеся должны знать:
Учащиеся должны уметь:
План работы учащегося
Основные понятия
Данные типа String или строковые данные (Строка) – это особая форма одномерного массива символов.
Отличие строки от массива в том, что массив имеет фиксированную длину (количество элементов), которая определяется при описании.
Строковые данные описываются следующим образом:
Var S: string[n]; SS: string; где
n – число символов в строковой переменной, изменяется от 1 до 255.
Длина описанной переменной S - n+1 байт.
Максимально возможная длина строковой переменной – 255 символов.
S[i] – общий вид элемента строковой переменной
Строка имеет две разновидности длины:
Когда в описании длина не указывается, то она по умолчанию берется 255 символов.
Заполняются строковые данные с помощью оператора присваивания (:=) или оператора ввода (read).
Примеры: SS:=’Информатика’; read(s);
Сравнение строковых переменных идет слева направо в соответствии с ASCII кодами символов. При сравнении длин строк используются операции =, >=, <=, <>, <, >. Если длина переменных одинакова – больше то, у которого больше код. Если длины разные – более короткая величина меньше. Считается, что отсутствующие символы в более короткой строке имеют код, меньше кода любого действительного символа. Например, ‘AB’ больше, чем ‘A’.
Строковые переменные можно склеить (знак +), что равноценно дозаписи символов второй переменной к символам первой. Если длина новой строки превысит допустимую (255) длину, то «лишние» символы отбрасываются. Пример, если а:=’К’; b:=’O’;с:= ‘Т’; х:=а+b+с;d:=a+c+b; – то в х поместится 'КОТ', а в d – ‘КТО’
Для обработки строковых переменных имеется набор специальных процедур и функций.
Процедуры обработки строк:
INSERT(S,T,N); |
Вставка подстроки (S) в строковую переменную (T) с символа N |
DELETE(S,M,N); |
Удаление части (N символов) строковой переменной (S), начиная с символа M |
STR(V,S); |
Преобразование числовой переменной в строковую |
VAL(S,V,N); |
Преобразование строковой переменной в числовую. S - строка, V - числовая переменная, N - значение первого содержащего ошибку символа. |
Функции обработки строковых переменных:
LENGTH(S) |
Определение количества символов строковой переменной S |
String |
Integer |
POS(S,T); |
Определение первого одинакового левого символа двух строк (строка S и подстрока T) |
String, String |
Integer |
CONCAT(S1,S2,…,SN); |
Склеивание строк |
String, …, String |
String |
COPY(S, M, N); |
Вырезка подстроки (N символов) начиная с M-го символа из строковой переменной S |
String, Integer, Integer |
String |
ORD(X) |
Определение кода символа. X |
Char |
Integer |
CHR(X) |
Определение символа по его коду |
Integer |
Char |
SUCC(X) |
Нахождение следующего элемента |
Integer, Char |
Integer, Char |
PRED(X) |
Нахождение предыдущего элемента |
Перечисляемый |
Перечисляемый |
1.
Пример 1. Вывести на экран каждый символ строки по отдельности:
Program String1;
Var
s: string[20];
i: integer;
Begin
readln(s);
for i:=1 to length(s) do
writeln(s[i]);
End.
Пример 2. Мы вводим две строки и нужно проверить, существует ли в первой введенной строке вторая, и если это верно, то вычислить ее позицию. Для этого мы напишем такую программу:
Program N5;
Var S, S1: String; I: Integer;
begin
Write('Введите 1ю строку: ');
Readln(S);
Write('Введите 2ю строку: ');
Readln(S1);
I := Pos(S1, S);
If I <> 0 then
Write('Такая строка есть! Позиция: ', I)
else Write('Нет такой строки!');
Readln;
End.
Пример 3. Ну а теперь давайте попрактикуемся в преобразовании типов. Для начала примеры простейшего преобразования:
Из строк в числа
var S: String; I, Code: Integer; begin Write('Введите строку: '); Readln(S); Val(S, I, Code); Writeln('Получилось число: ', I); Write('Можно даже возвести в квадрат: ', I*I); Readln; end. |
Из чисел в строки |
var S: String; I, Code: Integer; begin Write('Введите число: '); Readln(I); Str(I, S); Writeln('Получилась строка: ', S); Write('Можно даже сложит ее с собой: ', S+S); Readln; end |
Задания для самостоятельной работы
1. Какое значение примет переменная tx после операций tx:= ‘лесник’; delete(tx,4,3);?
2. Дана строка символов. Подсчитать количество запятых в строке.
3. Дана строка символов. Заменить в ней все пробелы знаком подчеркивания ‘_’.
4. Дана строка символов. Содержит ли она подстроку ‘565’?
5. Дана строка символов. Определить, сколько слов начинаются на букву ‘О’.
© 2015, Рамазанова Валентина Леонидовна 2395