Согласно варианту cоставить программу, используя объектно-ориентированную
методологию программирования. В каждом разработанном классе предусмотреть
проверку всех методов (можно оформить в виде меню либо последовательно,
друг за другом).
- Построить систему классов для описания плоских геометрических фигур:
круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов,
перемещения на плоскости, изменения размеров и вращения на заданный угол.
- Составить описание класса для объектов-векторов, задаваемых
координатами концов в трехмерном пространстве. Обеспечить операции
сложения и вычитания векторов с получением нового вектора (суммы или
разности), вычисления скалярного произведения двух векторов, длины
вектора, косинуса угла между векторами.
- Составить описание класса прямоугольников со сторонами, параллельными
осям координат. Предусмотреть возможность перемещения прямоугольников на
плоскости, изменения размеров, построения наименьшего прямоугольника,
содержащего два заданных прямоугольника, и прямоугольника, являющегося
общей частью (пересечением) двух прямоугольников.
- Составить описание класса многочленов от одной переменной, задаваемых
степенью многочлена и массивом коэффициентов. Предусмотреть методы для
вычисления значения многочлена для заданного аргумента, операции сложения,
вычитания и умножения многочленов, взятия производной произвольного порядка с получением нового объекта-многочлена,
печать (вывод на экран) описания многочлена.
- Составить описание объектного типа TMatr, обеспечивающего размещение
матрицы произвольного размера с возможностью изменения числа строк и
столбцов, вывода на экран подматрицы любого размера и всей матрицы.
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций над комплексными числами:
- сложение;
- вычитание;
- умножение;
- деление;
- модуль комплексного числа;
- возведение комплексного числа в степень n (n натуральное).
Комплексное число представить следующим типом:
Type Complex = Record
R : Real; M : Real
End;
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций с квадратными матрицами: 1) сложение двух матриц; 2) умножение одной матрицы на другую; 3) нахождение транспонированной матрицы; 4) вычисление определителя матрицы.
Матрицу описать следующим образом:
Const NMax = 10;
Type Matrica = Array [1..NMax, 1..Nmax] Of Real;
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций над векторами на плоскости: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора.
Вектор представить следующим типом:
Type Vector = Record X, Y : Real End;
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций над натуральными числами в P-ичной системе счисления (2<=P<=9): 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из десятичной системы счисления в P-ичную; 6) перевод из P-ичной системы счисления в десятичную; 7) логическая функция проверки правильности записи числа в P-ичной системе счисления; 8) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
P-ичное число представить следующим типом:
Type Chislo = Array [1..64] Of 0..8;
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления: 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из двоичной системы счисления в шестнадцатеричную; 6) перевод из шестнадцатеричной системы счисления в десятичную; 7) функция проверки правильности записи числа в шестнадцатеричной системе счисления; 8) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
- Определим граф как набор точек, некоторые из которых соединены отрезками, подграф граф, подмножество данного графа. Реализовать в виде класса набор подпрограмм, определяющих: 1) число точек в графе; 2) число отрезков в графе; 3) число изолированных подграфов в графе (подграфов, не соединенных отрезками); 4) диаметр графа длину максимальной незамкнутой линии в графе (длина каждого звена единица); 5) граф объединение двух графов; 6) подграф пересечение двух графов; 7) подграф дополнение данного графа до полного (графа с тем же количеством вершин, что и в заданном, и с линиями между любыми двумя вершинами); 8) число отрезков, выходящих из каждой вершины графа; 9) при запуске должны инициализироваться переменные: Full_Graph полный граф с числом вершин NumberOfVertix, Null_Graph граф без отрезков с числом вершин NumberOfVertix.
Граф представить как объект
Const NumberOfVertix = 50;
Type Graph = Array[1..NumberOfVertix, 1..NumberOfVertix] Of Boolean;
- Реализовать в виде класса набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени m, второй - степени n):
- сложение;
- вычитание;
- умножение;
- деление с остатком;
- операции отношения (равно, не равно);
- возведение в натуральную степень k;
- вычисление производной от многочлена;
- вычисление значения в точке x0.
Многочлен представить следующим типом:
Type Mnogochlen = Array [1..500] Of Integer;
- Разработать способ представления множеств, содержащих более 255 элементов (до 2000). Создать класс, позволяющий выполнять следующие операции над элементами таких множеств:
- объединение;
- пересечение;
- разность;
- функция проверки принадлежности элемента множеству;
- функция проверки, является ли данное множество подмножеством (надмножеством) другого.
- Разработать класс для работы с числами, записанными в римской системе счисления.
Класс должен содержать подпрограммы для следующих операций:
- перевод натурального числа из десятичной системы счисления в римскую;
- перевод числа из римской системы счисления в десятичную;
- сложение;
- вычитание;
- умножение;
- целочисленное деление и нахождение остатка от деления;
- операции отношения (описать в виде логических функций).
- Реализовать в виде класса набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (P целое, Q натуральное):
- сложение;
- вычитание;
- умножение;
- деление;
- сокращение дроби;
- возведение дроби в степень n (n натуральное);
- функции, реализующие операции отношения (равно, не равно, больше или рав-но, меньше или равно, больше, меньше).
Дробь представить следующим типом:
Type Frac = Record
P : Integer; Q : 1..32767
End;
- Разработать класс, обеспечивающий работу стека. Стек структура данных, где доступным является единственный элемент, помещенный в структуру последним (действует принцип "Последний пришёл первый ушёл"). Указатель на доступный элемент называют вершиной стека.
Стек описать следующим образом:
Type Stek = Record A: Array[1..1024] Of Integer;
Vershina: 0..1025 End;
Класс должен содержать следующие подпрограммы:
а) поместить элемент в стек; б) извлечь элемент из стека; в) проверка стека на пустоту (вершина имеет значение 0); г) проверка стека на переполнение (вершина имеет значение 1025); д) проверка, равно ли число, на которое указывает вершина стека, заданному числу k.