Главная страница
Навигация по странице:

  • Описание входных данных Первая строка(количество элементов массива):«целое число в десятичном формате»Описание выходных данных

  • № Предикат Действия

  • № Предикат Действия № перехода Комментарий

  • Блок-схема алгоритма Код программы Файл header.cpp

  • лаб работа. Разработать объект, который обладает следующей функциональностью


    Скачать 225.4 Kb.
    НазваниеРазработать объект, который обладает следующей функциональностью
    Анкорлаб работа
    Дата13.03.2022
    Размер225.4 Kb.
    Формат файлаpdf
    Имя файла3_17 (1).pdf
    ТипДокументы
    #394930


    Постановка задачи
    Разработать объект, который обладает следующей функциональностью:
    -
    В конструкторе вводит количество элементов целочисленного массива, создает целочисленный массив заданным количеством элементов, определяет значения элементов массива. Значение каждого элемента равно квадрату индекса элемента.
    -
    Выводит значения элементов массива в
    обратном порядке.
    Необходимые свойства объекта определяется разработчиком. Количество элементов массива принадлежит интервалу от
    5
    до
    20.
    Написать программу:
    1.
    Создает объект посредством оператора new.
    2.
    Выводит значения элементов массива в
    обратном порядке.
    3. Удаляет объект посредством оператора delete.
    Описание входных данных
    Первая строка
    (количество элементов массива):
    «целое число в десятичном формате»
    Описание выходных данных
    Первая строка, с первой позиции: целочисленные значения элементов массива в десятичном формате, каждое значение занимает 5 позиций
    Метод решения
    Воспользуемся объектом q класса Arr
    ● класс Arr
    ● Поля, отвечающие за количество элементов массива
    ● Наименования - Arr
    ● Тип - целочисленные

    ● Модификатор доступа - public
    Методы
    ● Конструктор класса Arr() - вводит количество элементов целочисленного массива
    ● Метод squarCout() класса Arr() - выводит значения элементов массива в обратном порядке
    ● Деструктор

    Arr() класса Arr() - освобождение использованных объектов ресурсов и удаление нестатических переменных объекта
    Для решения этой задачи воспользуемся объектами стандартных объектами стандартных потоков ввода и вывода cin, cout, условным оператором if, манипулятора потока ввода/вывода setw, очищение выделенной памяти delete, оператора цикла со счетчиком из библиотеки
    Описание алгоритма
    Функция: main
    Функционал: точка входа в программу
    Параметры: -
    Возвращаемое значение: int, 0

    Предикат
    Действия
    № перехода
    Комментарий
    1
    Объявление i
    2
    Целочисленная переменная
    2
    Ввод целочисленной переменной i
    3 3
    (x >=5 && x
    <=20)
    Объявление объекта q класса
    Arr
    3
    Создаем экземпляр указателя на объект q
    4 4
    Вызов метода squarCout
    5 5
    Удаление объекта q

    Используем delete - удаление объекта
    Класс объекта: Arr

    Модификатор доступа: public
    Метод: Arr
    Функционал: Вводит количество элементов целочисленного массива
    Параметры: x - целочисленная переменная
    Возвращаемое значение: нет
    № Предикат
    Действия
    перехода Комментарий
    1
    Присваивание целочисленной переменной i переменную x
    2 2
    Выделение памяти динамического массива array под размер i
    3 3
    k < i присваиваем элементу массива c индексом k значение элемента в квадрате
    3

    Класс объекта: Arr
    Модификатор доступа: public
    Метод: squarCout
    Функционал: Выводит значения элементов массива в обратном порядке
    Параметры: -
    Возвращаемое значение: нет
    № Предикат
    Действия
    № перехода
    Комментарий
    Уменьшение i на 1
    Цикл for перебирает элементы в
    1
    k >= 0
    Присваивание переменной k префиксный декремент
    1
    обратном порядке, когда значение переменной k не станет равно 0
    Используем функцию setw(5)

    Класс объекта: Arr
    Модификатор доступа: public
    Метод: Arr
    Функционал: Деструктор класса Параметры: -
    Возвращаемое значение: нет

    № Предикат
    Действия
    № перехода Комментарий
    1
    Очищение выделенной памяти массива

    Блок-схема алгоритма

    Код программы
    Файл header.cpp

    #include "header.h"
    using namespace std;
    #include
    Arr::Arr(int x) {
    i = x;
    array = new int[i];
    for(int k = 0; k < i; k++) {
    array[k] = k * k;
    }
    }
    void Arr::squarCout() {
    for(int k = --i; k >= 0; k--) {
    cout << setw(5) << array[k];
    }
    }
    Arr::Arr() {
    delete [] array;
    }
    Файл header.h
    #ifndef Arr_h
    #define Arr_h
    #include
    #include
    using namespace std;
    class Arr {
    int i;
    int *array;
    public:
    };
    #endif
    Arr(int x);
    void squarCout();
    Arr();
    Файл main.cpp
    #include
    #include
    #include "header.h"
    #include
    using namespace std;
    int main()
    {
    int x;
    cin >> x;
    if(x >= 5 && x <= 20) {
    Arr* q = new Arr(x); //вывод?
    q->squarCout(); // вот тут вывод delete q;
    }
    }
    Тестирование
    Входные данные
    Ожидаемые выходные данные
    Фактические выходные данные
    11 100 81 64 49 36 25 16 9 4 1 0 100 81 64 49 36 25 16 9 4 1 0 1
    100 81 64 49 36 25 16 9 4 1 0 6
    25 16 9 4 1 0 25 16 9 4 1 0 2
    100 81 64 49 36 25 16 9 4 1 0


    написать администратору сайта