Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на устные вопросы.doc
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
860.16 Кб
Скачать

Вопрос 30. Работа с диагональными элементами в квадратной матрице.

При работе с диагональными элементами удобно использовать квадратный массив, то есть массив, у которого количество строк равно количеству столбцов. Для квадратного двухмерного массива введем два определения: главная диагональ двухмерного массива и побочная диагональ двухмерного массива. Главная диагональ — образуется элементами, расположенными между элементом в верхнем левом и элементом в нижнем правом углах массива,

включая сами эти элементы.

Индексы элементов главной диагонали всегда совпадают друг с другом.

Чтобы обратиться к элементам главной диагонали, необходимо:

For i:=l to n do

Writeln a[i, i];

Побочную диагональ квадратного двухмерного массива образуют элементы, расположенные между элементов в верхнем правом и нижнем левом углах массива, включая сами эти элементы.

Взаимосвязь индексов элемента побочной диагонали, стоящего на пересечении i-й строки и j-ro столбца, выражается соотношением i+j = n+1. Чтобы обратиться к элементам побочной диагонали необходимо:

b:=n;

For i:=l to n do begin

Writeln a[i, b];

b:=b-l; end;

Вопрос 31. Задачи перестановок и вставки элементов в массиве.

Дан массив. Поменять местами m-й и n-й элементы.

Program massiv;

Const c=10;

Var a,: array [1 ..c] of integer;

i, n, b,m: integer;

begin

readln (n, m);

for i:=l to с do

readln (a[i]);

b:=a[m];

a[m]:=a[n];

a[n]:=b;

for i:=l to с do

writeln (a[i]);

end.

Задача № 6:

Вставить в массив число 10 после второго элемента.

Program massiv;

Const n=10;

Var a,: array [l..n] of integer;

i: integer;

begin

for i:=l to n-1 do

readln (a[i]);

for i:=n-1 downto 3 do

a[i+l]:=a[i];

a[3]:=10;

for i:=l to n do

writeln (a[i]);

end.

Вопрос 32. Работа над множествами в программе.

Операции над множествами разделяются на операции, создающие производные множества, и операции сопоставления множеств (сравнение множеств и проверка принадлежности множеству). В операциях над множествами могут участвовать только те множества, которые построены на одном базовом типе (т.е. сопоставимые).

Операции, создающие производные множества.

Объединение двух множеств А и В (записываемое как А+В) есть новое множество, состоящее из элементов, принадлежащих или множеству А, или множеству В, или тому и другому одновременно

Пересечение двух множеств А и В (записываемое как А*В) есть новое множество, состоящее из элементов, принадлежащих как множеству А, так и множеству В.

Разность двух множеств А и В ( записываемая как А-В ) есть новое множество, состоящее из элементов, принадлежащих множеству А и не принадлежащих множеству В.

Сравнение множеств. Проверка принадлежности множеству.

Сравнение множеств предполагает проверку следующих ситуаций: равны множества или нет; является ли одно множество подмножеством другого или нет.

1. Множество А равно множеству В (записывается как А=В) тогда и только тогда, когда каждый элемент множества А является элементом множества В и наоборот.

2. Множество А не равно множеству В (записывается как А<>В), если не каждый элемент множества А является элементом множества В или наоборот.

3. Множество А есть подмножество множества В (записывается как А<=В) тогда и только тогда, когда каждый элемент множества А является элементом множества В. В этом случае говорят, что множество А входит во множество В.

4. Множество В есть подмножество множества А (записывается как А>=В) тогда и только тогда, когда каждый элемент множества В является элементом множества А. В этом случае говорят, что множество А содержит множество В.

Операции сравнения множеств - двуместные. Результат операции будет логического типа: TRUE, если условие выполняется, и FALSE в противном случае.

Проверка принадлежности элемента множеству выполняется с помощью операции in. Пусть элемент S и множество А имеют одинаковый базовый тип. Тогда операция S in А проверяет, принадлежит ли элемент S множеству А; если да, то результат операции TRUE, иначе - FALSE.

В Паскале принят следующий приоритет операций, выполняемых над множествами: *, +, -, =, <>,>=, <=, in. Для изменения порядка выполнения операций используются круглые скобки.