Основы программирования на C++, PASCAL
VII. Определим граф как набор точек, некоторые из которых соединены отрезками, подграф — как граф, являющийся подмножеством данного графа.
Реализовать в виде модуля набор подпрограмм, определяющих:
1) число точек в графе;
2) число отрезков в графе;
3) число изолированных подграфов в графе (подграфов, не соединенных отрезками);
4) диаметр графа — длину максимальной незамкнутой линии в графе (длина каждого звена — 1);
5) граф — объединение двух графов;
6) подграф — пересечение двух графов;
7) подграф — дополнение данного графа до полного (графа с тем же количеством вершин, что и в данном, и с линиями между любыми двумя вершинами);
8) число отрезков, выходящих из каждой вершины графа. При запуске должны инициализироваться переменные: Full_Graph — полный граф с числом вершин NumberOfVertix, Null_Graph — граф без отрезков с числом вершин NumberOfVertix.
Граф представить как объект
Const NumberOfVertix=50;
Type Graph=Array[l..NumberOfVertix,
1..NumberOfVertix] Of Boolean;
Используя модуль, решить следующую задачу. Найти все правильные графы из N вершин (граф правилен, если из всех вершин выходит равное количество отрезков).
VIII. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над длинными числами:
1) сложения;
2) вычитания;
3) умножения;
4) нахождения частного и остатка от деления одного числа на другое;
5) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
Длинное число представить следующим типом:
Type Tsifra=0..9;
Chislo=Array[l..1000] Of Tsifra;
Используя этот модуль, решить задачи 1,2.
1. Возвести число в степень (основание и показатель степени — длинные числа).
2. Дан массив длинных чисел. Упорядочить этот массив в порядке убывания.
IX. Реализовать в виде модуля набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени т, второй — степени n):
1) сложения;
2) вычитания;
3) умножения;
4) деления с остатком;
5) операций отношения (равно, не равно);
6) возведения в натуральную степень k;
7) вычисления производной от многочлена;
8) вычисления значения в точке x0.
Многочлен представить следующим типом:
Type Mnogochlen= Array [1. .500] Of Integer;
Используя этот модуль, решить задачи 1, 2.
1. Найти наибольший общий делитель многочленов Р(х) и Q(x).
2. Вычислить Рs(х) — Qr(x).
X. Разработать способ представления множеств, содержащих более 255 элементов (до 2000). Создать модуль, позволяющий выполнять следующие операции над элементами таких множеств:
а) объединение;
б) пересечение;
в) разность;
г) функция проверки принадлежности элемента множеству;
д) функция проверки, является ли данное множество подмножеством (надмножеством) другого.
Используя созданный модуль, решить следующие задачи.
1. Дан массив множеств. Упорядочить элементы массива в порядке возрастания количества компонент соответствующих множеств.
2. Разработать программу, которая вводит несколько множеств, выражение, операндами которого являются эти множества, с операциями объединения, пересечения и вычитания, вычисляет значение этого выражения и выводит результат.