ТЕМА №9: ДАННЫЕ ТИПА STRING.
ПРОГРАММНО - ДИДАКТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ: ЭВМ типа IBM. ТР5.
ЦЕЛИ И ЗАДАЧИ: приобретение навыков составления программ с использованием данных типа STRING
ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ:
Учащиеся должны знать:
-
Что такое данные типа STRING;
-
Как описываются строковые данные;
-
Для чего используются строковые данные;
-
Сколько бай занимают строковые данные;
-
Для чего используется нулевой элемент строковой переменной,
-
Как обозначается элемент строковой переменной;
-
С какой цифры начинается отсчет номера элемента строкой переменной;
-
Какой функцией определяется длина строковой переменной;
-
Как склеить две строковые переменные;
-
Как вырезать часть строковой переменной;
-
Как вставить одну строковую переменную в другую;
-
Как удалить часть строковой переменной;
-
Как можно преобразовать числовую переменную в строковую;
-
Как определить входить ли одна строковая переменная в состав другой.
Учащиеся должны уметь:
-
Правильно задавать строковые переменные;
-
Правильно использовать строковые переменные;
-
Правильно использовать процедуры и функции обработки строковых переменных;
-
Вводить строковые переменные;
-
Составлять программы, используя строковые переменные.
ПЛАН-СОДЕРЖАНИЕ УРОКА
Основные понятия
Данные типа String или строковые данные (Строка) – это особая форма одномерного массива символов.
Отличие строки от массива в том, что массив имеет фиксированную длину (количество элементов), которая определяется при описании.
Строковые данные описываются следующим образом:
Var S: string[n]; SS: string; где
n – число символов в строковой переменной, изменяется от 1 до 255.
Длина описанной переменной S - n+1 байт.
Максимально возможная длина строковой переменной – 255 символов.
S[i] – общий вид элемента строковой переменной
Строка имеет две разновидности длины:
-
общую длину строки (n), которая характеризует размер памяти, выделяемый строке при описании.
-
Текущую длину строки (p) (p<=n), которая показывает количество смысловых символов в каждый конкретный момент времени. При выдаче на экран значения нулевого символа (Write(ord (s[0]));), получим величину р. Например:
0 1 2 3 4 5 6 7 8 9 10
|
B
|
O
|
R
|
L
|
A
|
N
|
D
|
|
|
|
Символ, код которого =7 р=7 n=10 var s:string[10]
Когда в описании длина не указывается, то она по умолчанию берется 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)
|
Нахождение предыдущего элемента
|
Перечисляемый
|
Перечисляемый
|
Примеры программ:
-
Перевернуть введенное с клавиатуры слово
Uses crt;
Var s,s1:string; n,i:integer;
Begin
Read(s); S1:=’’;
N:=length(s);
For i:=1 downto 1 do S1:=s1+s[i];
Writeln(s1);
Repeat until keypressed; End.
| -
Подсчитать кол-во предложений. Конец предложения - ., !, ?
User crt;
Var s:string; n,i,sum:integer; m:char;
Begin
Read(s); Sum:=1; N:=lenght(s); M:=’ ‘;
For i:=1 to n do Begin
If s[i]=m then sum:=sum+1;
End;
Writeln(sum); Repeat until keypressed; end.
| -
Разработать функцию удаления символов из строки.
Uses crt;
Var m,n,l:integer; s,w:string;
Function ddd(s:string; m,n:integer):string;
Var g1,g2,w:string; l,k:integer;
Begin
L:=length(s); G1:=’’;
For k:=1 to m-1 do g1:=g1+s[k];
Writeln(g1);
G2:=’’;
For k:=m+n to l do g2:=g2+g2+s[k];
Writeln(g2);
W:=g1+g2; Writeln(w);
Ddd:=w;
End;
Begin
Readln(s); Writeln(s);
Readln(m,n); W:=ddd(s,m,n); Writeln(w);
Repeat until keypressed;
end.
|
Uses crt;
Var s,r:string; n,i:integer;
Begin
R:=’’;
Readln(s);
For i:=1 to n do
Begin
N:=ord(s[i]);
R:=r+chr(n+3);
End;
Writeln(s);
Writeln®;
Repeat until keypressed;
end.
|
Достарыңызбен бөлісу: |