- •1. Нарисуйте и опишите структуру главного окна системы Delphi. Для чего нужно окно инспектора объектов и как им пользоваться?
- •2. Объясните назначение окна формы. Как на нём размещать компоненты и настраивать их параметры?
- •4. Что собой представляет программа решения задачи в системе Delphi? Как организуются процедуры обработки событий: «щелчок мыши на кнопке», «создание формы»?
- •8. Как запустить программу? Как работать с программой? Как остановить программу для её редактирования?
- •9. Какие файлы содержит программа, их структура? Как организовать запись программы в отдельный каталог? Как создать новый каталог?
- •12. Приведите примеры схем циклических алгоритмов и их программ с использованием оператора repeat.
- •13. Приведите примеры схем циклических алгоритмов и их программ с использованием оператора while.
- •14.Приведите примеры схем циклических алгоритмов и их программ с использованием оператора for.
- •15.Как организуется работа с массивами в языке Pascal: описание, обращение к элементам, операции над массивами? Проиллюстрируйте на примерах.
- •16. Понятия статического и динамического распределения памяти. Что такое указатель? Операции над указателями. Что такое динамическая переменная? Наложение переменных с помощью указателя.
- •17. Понятие множеств в языке Pascal. Как они описываются? Какие операции над ними допустимы? Привести примеры их полезного использования.
- •18. Что такое строки в языке Pascal? Как они описываются, что такое текущая и максимальная длина строки? Опишите процедуры и функции обработки строк.
- •Var [описание используемых переменных];
- •Var [описание используемых переменных];
17. Понятие множеств в языке Pascal. Как они описываются? Какие операции над ними допустимы? Привести примеры их полезного использования.
В математике под множеством понимается неупорядоченный набор различных однотипных элементов. Количество элементов множества может колебаться от 0 до 256. Каждый объект в множестве называется элементом множества Множество, в котором нет элементов, называется пустым. Количество элементов множества называется его мощностью. Множество в памяти хранится как массив битов, в котором каждый бит указывает является ли элемент принадлежащим объявленному множеству или нет.
Для работы с множествами в Паскале введен тип переменных set of:
Type <имя типа>=set of <базовый тип>;
var A,B,C: имя типа;
здесь <базовый тип> - любой порядковый тип кроме Word, Integer, Longint, т.е. (перечисляемый, интервальный, char, byte, boolean).
Множество-константа: [i1, i2, …, ik], где ik – элементы множества.
Операции над множествами: сложения, вычитания, умножения, вхождения
Объединением 2-х множеств A и B наз-тся множество, состоящее из элементов, входящих хотя бы в одно из множеств A или B(знак операции +): D=A+B={ω1, ω2, ω3, ω4, ω5}, множество D состоит из элементов, входящих или в А или в В.
Разность 2-х множеств A и B наз-тся множество, состоящее из элементов множества A, не входящих во множество B (знак операции -): Е=А-В={ω2,ω5}, множество Е состоит из элементов множества А, не входящих в В.
Пересечение 2-х множеств A и B наз-тся множество, состоящее из элементов, одновременно входящих во множество A и во множество B (знак операции *):F=A*B={ω1, ω4}, множество F состоит из элементов, одновременно входящих в А и в В.
Вхождение- это операция, устанавливающая связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества. Если x - такая скалярная величина, а M - множество, то операция вхождения записывается так: x in M. Результат - логическая величина true, если значение x входит в множество M, и false - в противном случае.
Эти операции дополняют две процедуры:
Include (S, i); - добавление в множество S элемента i, базового типа;
Exclude (S, i); - исключение из множества S элемента i, базового типа.
Эти операции выполняются значительно быстрее, чем их эквивалентные s:=s+[i]; s:=s-[i];
Примеры описаний:
1. Ввод n элементов множества:
......
Var A:set of char;
s:char;
n:Word;
begin
A:=[ ]; // Очистка множества
for i:=1 to n do begin
read(s);
A:=A+[s];
end;
end.
2. Распечатать содержимое множества:
......
Var B:set of 1..100;
k:byte;
begin
for k:=1 to 100 do if k in B then Write(k);
......
end.
3. type bukva=set of (‘a’..’z’);
simv=set of char;
cifra=set of byte;
Var a, b : bukva;
c, d : simv;
e, g : cifra;
Begin
c:=[‘u’, ‘v’, ‘z’]; // Задать множество из трех букв
e:=[1,2,0]; // Задать множество из 3 чисел
g:=e+[5]; // Добавить в множество Е элемент 5
d:=[ ]; // Пустое множество
End;
