
Множества
Множество – это набор неповторяющихся элементов одного порядкового типа с количеством элементов n: n=0,..,255. Значения элементов множества задаются в квадратных скобках:
x:=[5,3,1]; y:=[ ] – пустое множество.
Описание типа:
Type
<имя> =set of <тип>
Пример задания множеств и описания множеств.
Var s: set of char;
set of ‘A’..’Z’;
set of byte;
set of 0..9
Const
Alfavit [‘A’..’Z’, ‘a’..’z’];
Digits [0..9];
Операции над множествами
* пересечение (А
В)
+ объединение (А
В)
- разность (А\В)
Сравнение
= - проверка эквивалентности (True или False)
<> - проверка неэквивалентности
<= проверка вхождения (A
B),
<, >, >=
In – проверка принадлежности
(а
А)
Добавление элемента к множеству:
S:=[ ];
S:=S+[ch], где S: set of char;
ch: char;
Пример.
X=[‘A’,’B’,’D’];
Y=[‘A’,’P’];
Напечатать множество X (X\Y). (Ответ: BD).
Решение:
Program …
Var X,Y,Z: set of char;
c:char;
Begin
X:=[‘A’, ‘B’,’D’];
Y:=[ ];
Z:=X*(X-Y);
For c:=’A’ to ‘P’ do
If c in Z then write(c);
End.
Записи.
Запись – это совокупность конечного числа разнородных (разнотипных) элементов, называемых полями.
Описание записи:
type <имя типа записи> = record
< имя поля 1 > : < тип поля 1>;
………………………………
< имя поля n> : < тип поля n>;
end;
var < имя переменной > : <имя типа записи >;
Обращаться к полю надо по составному имени:
<имя записи. имя поля>
Можно использовать оператор присоединения with:
with < имя записи > do
begin
…..
< имя поля >
end;
Пример.
№ |
ФИО |
Оценки за 3 экз. |
1 |
Иванов |
5 3 4 |
2 |
Петров |
5 5 5 |
3 |
Сидоров |
4 4 5 |
Описание:
Type spisok = record
N: integer;
Fam: string[15];
BALL: array [1..3] of integer;
End;
Var b:spisok;
Найдем средний балл:
1). S:=(b.BALL[1]+ b.BALL[2]+ b.BALL[3])/3;
или
2). With b do
S:=(BALL[1]+ BALL[2]+ BALL[3])/3;
Пример. Создать базу данных, состоящую из 10 записей по 3 поля в каждой: фамилия, имя, телефон. Вывести на экран записи, в которых содержатся сведения об Иванове.
Решение:
uses crt;
type student=record;
Fam, Name:string[15];
Tlf: string[10];
end;
var baza: array [1..10] of student;
i:integer;
begin
for i:=1 to 10 do
begin
with baza[i] do
begin
writeln(‘Фамилия’); readln(Fam);
writeln(‘Имя’); readln(Name);
writeln(‘Телефон’); readln(Tlf);
end;
end;
writeln;
for i:=1 to 10 do
begin
with baza[i] do
if Fam:=’Иванов’ then writeln(Fam:16, Name:10, Tlf:10);
writeln;
end;
readkey;
end.
Файлы
В TP различают:
текстовые файлы (text);
типизированные файлы (file of real,
integer,
char);
нетипизированные файлы (file).