Лабораторная работа № 4. Введение в объектно-ориентированное программирование (продолжение)

Согласно варианту cоставить программу, используя объектно-ориентированную методологию программирования. В каждом разработанном классе предусмотреть проверку всех методов (можно оформить в виде меню либо последовательно, друг за другом).

 

 

 

  1. Построить систему классов для описания плоских геометрических фигур: круг, квадрат, прямоугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и вращения на заданный угол.
  2. Составить описание класса для объектов-векторов, задаваемых координатами концов в трехмерном пространстве. Обеспечить операции сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами.
  3. Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменения размеров, построения наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников.
  4. Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов, взятия производной произвольного порядка с получением нового объекта-многочлена, печать (вывод на экран) описания многочлена.
  5. Составить описание объектного типа TMatr, обеспечивающего размещение матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы.
  6. Реализовать в виде класса набор подпрограмм для выполнения следующих операций над комплексными числами:
    1. сложение;
    2. вычитание;
    3. умножение;
    4. деление;
    5. модуль комплексного числа;
    6. возведение комплексного числа в степень n (n — натуральное).
    Комплексное число представить следующим типом:
    Type Complex = Record
    R : Real; M : Real
    End;
    
  7. Реализовать в виде класса набор подпрограмм для выполнения следующих операций с квадратными матрицами: 1) сложение двух матриц; 2) умножение одной матрицы на другую; 3) нахождение транспонированной матрицы; 4) вычисление определителя матрицы.

    Матрицу описать следующим образом:

          Const NMax = 10;
          Type Matrica = Array [1..NMax, 1..Nmax] Of Real;
    
  8. Реализовать в виде класса набор подпрограмм для выполнения следующих операций над векторами на плоскости: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора.

    Вектор представить следующим типом:

    Type Vector = Record X, Y : Real End;
    
  9. Реализовать в виде класса набор подпрограмм для выполнения следующих операций над натуральными числами в P-ичной системе счисления (2<=P<=9): 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из десятичной системы счисления в P-ичную; 6) перевод из P-ичной системы счисления в десятичную; 7) логическая функция проверки правильности записи числа в P-ичной системе счисления; 8) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

    P-ичное число представить следующим типом:

    Type Chislo = Array [1..64] Of 0..8;
    
  10. Реализовать в виде класса набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления: 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из двоичной системы счисления в шестнадцатеричную; 6) перевод из шестнадцатеричной системы счисления в десятичную; 7) функция проверки правильности записи числа в шестнадцатеричной системе счисления; 8) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

  11. Определим граф как набор точек, некоторые из которых соединены отрезками, подграф — граф, подмножество данного графа. Реализовать в виде класса набор подпрограмм, определяющих: 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;
    
  12. Реализовать в виде класса набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени m, второй - степени n):
    1. сложение;
    2. вычитание;
    3. умножение;
    4. деление с остатком;
    5. операции отношения (равно, не равно);
    6. возведение в натуральную степень k;
    7. вычисление производной от многочлена;
    8. вычисление значения в точке x0.

    Многочлен представить следующим типом:

    	Type Mnogochlen = Array [1..500] Of Integer;
    
  13. Разработать способ представления множеств, содержащих более 255 элементов (до 2000). Создать класс, позволяющий выполнять следующие операции над элементами таких множеств:
    1. объединение;
    2. пересечение;
    3. разность;
    4. функция проверки принадлежности элемента множеству;
    5. функция проверки, является ли данное множество подмножеством (надмножеством) другого.
  14. Разработать класс для работы с числами, записанными в римской системе счисления.

    Класс должен содержать подпрограммы для следующих операций:

    1. перевод натурального числа из десятичной системы счисления в римскую;
    2. перевод числа из римской системы счисления в десятичную;
    3. сложение;
    4. вычитание;
    5. умножение;
    6. целочисленное деление и нахождение остатка от деления;
    7. операции отношения (описать в виде логических функций).
  15. Реализовать в виде класса набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (P — целое, Q — натуральное):
    1. сложение;
    2. вычитание;
    3. умножение;
    4. деление;
    5. сокращение дроби;
    6. возведение дроби в степень n (n — натуральное);
    7. функции, реализующие операции отношения (равно, не равно, больше или рав-но, меньше или равно, больше, меньше).
    Дробь представить следующим типом:
    Type Frac = Record
    P : Integer; Q : 1..32767
    End;
    
  16. Разработать класс, обеспечивающий работу стека. Стек — структура данных, где доступным является единственный элемент, помещенный в структуру последним (действует принцип "Последний пришёл — первый ушёл"). Указатель на доступный элемент называют вершиной стека.

    Стек описать следующим образом:

    Type Stek = Record A: Array[1..1024] Of Integer;
    Vershina: 0..1025 End;
    
    Класс должен содержать следующие подпрограммы: а) поместить элемент в стек; б) извлечь элемент из стека; в) проверка стека на пустоту (вершина имеет значение 0); г) проверка стека на переполнение (вершина имеет значение 1025); д) проверка, равно ли число, на которое указывает вершина стека, заданному числу k.

 


Рейтинг ресурсов УралWeb

 

© А.П. Шестаков, 2008-2009
Сайт создан в системе uCoz