Слайд 1тЕМА: СТРОКИ
Строка – последовательность символов, заключенная в апострофы, длиной от
0 до 255 символов.
Определение:
var
MyString : string[50]; - строка
длиной 50
Str : string; - строка максимальной длины 255
const
MyString : string[5] = ‘Yes’;
Слайд 2 Для хранения строки из N символов отводится N+1 байт:
N байт для хранения символов строки, один байт – для
значения текущей длины строки.
текущая длина строки
К любому символу строки можно обратиться, указав его номер:
MyString[1]:=’H’; MyString[2]:=’E’; MyString[3]:=’L’;
MyString[4]:=’L’; MyString[5]:=’O’;
Это аналогично оператору:
MyString:=’HELLO’;
Слайд 3Строковые выражения –
выражения, в которых операндами служат строковые данные.
Они состоят из строковых констант, переменных, указателей функций и знаков
операций.
Над строковыми данными допустимы операции сцепления и операции отношения.
Слайд 4Операция сцепления (+)
применяется для объединения нескольких строк
в одну результирующую строку. Например:
Str1:=’Учащиеся’;
Str2:=’ ГТЭК’;
Str3:=Str1 + Str2; (Str3 - Учащиеся ГТЭК)
Слайд 5Операции отношения (=, , ,=)
производят сравнение двух
строковых операндов. Сравнение строк производится слева направо до первого несовпадающего
символа, большей считается та строка, в которой первый несовпадающий символ имеет больший номер в таблице ASCII. Результат имеет логический тип данных и принимает значения TRUE (истина) и FALSE (ложь). Строки равны, если они полностью совпадают по длине и содержат одни и те же символы. Например:
‘Intel’ > ‘Intek’ - TRUE
‘Intel’ > ‘INTEL’ - TRUE
‘Intel_’ > ‘Intel’ - TRUE
‘Intel’ = ’Intel’ - TRUE
Слайд 6Строковые процедуры и функции:
Delete(St,Poz,N) – удаляет N символов строки St,
начиная с позиции Poz. Например:
S2:=’abcdefg’;
Delete(S2,4,2);
Результат: abcfg
Insert(Str1,Str2,Poz) – вставка строки Str1в
строку Str2, начиная с позиции Poz. Например:
S1:=’хх’;
S2:=’abcdefg’;
Insert(S1,S2,4);
Результат: abcххdefg
Слайд 7Строковые процедуры и функции:
Copy(St,Poz,N) – выделяет из St подстроку длиной
N символов, начиная с позиции Poz. Например:
S1:=’коллежд’;
Copy(S1,2,3); Результат: олл
Concat(Str1,Str2,…,StrN) – выполняет
сцепление строк Str1,Str2,…,StrN в том порядке, в каком они указаны в списке параметров. Например:
S1:=’УО’;
S2:=’ ГТЭК’;
Concat(S1,S2); Результат: УО ГТЭК
Слайд 8Строковые процедуры и функции:
Length(St) – выделяет текущую длину в символах
строки St. Например:
S1:=’УО’;
Length(S1); Результат: 2
Pos(Str1,Str2) – обнаруживает первое появление в строке
Str2 подстроки Str1. Например:
S1:=’ГТЭК’;
S2:=’УО ГТЭК’;
Pos(S1,S2); Результат: 4
UpCase(Ch) – преобразует строчную букву в прописную(обраба-тываются только буквы латинского алфавита). Например:
UpCase(‘a’); Результат: A
Слайд 9Пример 1: Подсчитать количество букв “a” в заданной строковой переменной.
Program
Kol;
Var
b: string;
i, k: integer;
begin
writeln (‘Введите строку’);
readln (b);
k:=0;
for
i:=1 to length(b) do
if b[i]=’A’ then k:=k+1;
writeln (k);
readln
end.
Слайд 10Пример 2: Написать программу, проверяющую, явля-ется ли введенное с клавиатуры
строка целым числом?
Program vkey;
Var
st:
string [40]; {строка}
n: integer; {номер проверяемого символа}
begin
writeln (‘Введите число и нажмите ’);
readln (st);
n:=1;
while (n<=Length (st)) and ((st[n]>=’0’) and (st[n]<=’9’)) do
n:=n+1;
write (‘Введенная строка’);
if nthen
write (‘ не’);
writeln (‘ является целым числом’);
readln
end.
Слайд 12Пример 3: Написать программу, которая в введенной с клавиатуре строке
преобразует строчные буквы в прописные.
Program simvol;
Var
st: string[80];
len: integer;
i: integer;
begin
writeln
(‘Введите строку и нажмите ');
readln (st);
len:=Length (st);
for i:=1 to len do
case st[i] of
'a'..'n': st[i]:=UpCase(st[i]);
'p'..'z': st[i]:=UpCase(st[i])
end;
writeln (Строка преобразована к верхнему регистру:');
writeln (st);
readln
end.
Слайд 14МНОЖЕСТВА:
Множество – структурированный тип данных, представляющий собой набор
взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно
рассматривать как единое целое. Каждый объект в множестве называется элементом множества. Все элементы множества должны принадлежать одному из скалярных типов, кроме вещественного. Этот тип называется базовым типом множества. Базовый тип задается диапазоном или перечислением. Значения элементов множества указываются в квадратных скобках: [1,2,3,4], [‘a’,’b’,’c’], [‘a’..’z’]. Количество элементов множества называется его мощностью.
Описание:
znaki: set of ‘a’ .. ‘z’;
zifri: set of 0..9;
Слайд 15Операции над множествами:
Операции отношения:
= - два множества являются равными, если
они состоят из одних и тех же элементов. Например:
A:=[1,2,3,4];
B:=[1,2,3,4];
C:=[1,2,3];
Результат: A=B
– TRUE, A=C – FALSE
<> - два множества являются не равными, если они отличаются по мощности или по значению хотя бы одного элемента. Например:
A:=[1,2,3,4];
B:=[1,2,3,5];
C:=[1,2,3];
Результат: A<>B – TRUE, A<>C - TRUE
Слайд 16>= - используется для определения принадлежности множеств. Результат A>=B равен
TRUE, если все элементы множества B содержатся в множестве A.
В противном случае – FALSE. Например:
A:=[1,2,3,4];
B:=[1,2,3];
Результат: A>=B – TRUE
<= - используется аналогично, но результат A<=B равен TRUE, если все элементы множества A содержатся в множестве B. Например:
A:=[1,2,3,4];
B:=[1,2,3];
Результат: B<=A – TRUE
Операция in – используется для проверки принадлежности какого-либо значения указанному множеству. Обычно применяется в условных операторах: Например:
A:=2;
if A in [1,2,3] then…
Результат: TRUE
Слайд 17Объединение множеств (+) – объединением двух множеств является третье множество,
содержащее элементы обоих множеств. Например:
A:=[1,2,3];
B:=[4,5,6];
Результат: A + B - [1,2,3,4,5,6]
Пересечение
множеств (*) – пересечением двух множеств является третье множество, которое содержит элементы, входящие одновременно в оба множества. Например:
A:=[1,2,3];
B:=[3,4,5];
Результат: A * B - [3]
Разность множеств (-) – разностью двух множеств является третье множество, которое содержит элементы первого множества, не входящие во второе множество. Например:
A:=[1,2,3];
B:=[3];
Результат: A - B - [1,2]
Слайд 18Пример: Написать программу, используя множественный тип данных, которая подсчитывает количество
цифр в символьной строке.
Program counter;
Var
c: char;
k,i: integer;
begin
k:=0;
for i:=1 to
10 do
begin
writeln (‘Введите символ:’);
readln(c);
if c in ['0'..'9']
then k:=k+1;
end;
writeln;
writeln (‘Введено цифр ‘, k:2);
readln
end.
Слайд 19ЗАПИСИ:
структурированный тип данных, состоящий из фиксированного числа компонентов одного или
нескольких типов.
Type
Car= Record
Number: integer;
Marka
: String[20];
FIO : String[40];
Address : String[60]
end;
Var
M, V : Car;
Доступ к полям: M.Number, M.FIO и т.д. Например:
M.Number:=1647;
M.FIO:=’Иванов И.П.’;