Ім'я файлу: ПОГИБА ООП.docx
Розширення: docx
Розмір: 18кб.
Дата: 20.09.2020
скачати

Екзамен з дисципліни «Об’єктно-орієнтоване програмування».

Навчальна група 3901. Екзаменаційний білет №17. Євгеній ПОГИБА

Питання № 1. Використання циклів в мові Сі.

Цикли використовуються для багаторазового повторення шматків коду. Можливість повторення певних фрагментів коду - це одна з основних і в той же час важливих задач, які доводиться вирішувати програмісту. Більшість програм або сайтів використовують цикли, наприклад - для виведення новинної інформації або оголошень. Тобто в таких завданнях необхідно виконувати постійно операції читання і запису, і для того щоб не дублювати один і той же код на допомогу приходять цикли. Цикли досить просто оголошуються в коді, проте вони виконують складні завдання, всього лише простим повторенням.
Питання №2. Визначення базових класів та похідних класів, їх властивості.

Клас являє собою абстрактний тип даних, що визначається користувачем і являє собою модель реального об’єкта у вигляді даних та функцій для роботи з ними.

Упадкування класів дозволяє створювати похідні класи (класи спадкоємці), взявши за основу всі методи й елементи базового класу (класу батька). Таким чином, економиться маса часу на написання і налагодження коду нової про­гра­ми. Об'єкти похідного класу вільно можуть використовувати все, що створено і налагоджено в базовому класі. При цьому ми можемо в похідний клас дописати необхідний код для удосконалення програми: додати нові поля, методи і т. д. Базовий клас залишиться недоторканим.

Основна інформація про успадкування класів:

Успадкування – це визначення похідного класу, який може звертатися до всіх елементів і методів базового класу, за винятком тих, що перебувають у розділі private.

Похідний клас ще називають нащадком або підкласом, а базовий – батьківським, або надкласом, або суперкласом.

Синтаксис визначення похідного класу:

class Імя_Похідн_Класу: специфікатор доступу Імя_Баз_Класу { . . . };

Похідний клас має доступ до всіх полів і методів базового класу, а базовий клас може використовувати тільки свої власні поля і методи.

У похідному класі необхідно явно визначати свої конструктори, деструк­тори і перевантажені оператори присвоювання через те, що вони не успадковуються від базового класу. Але їх можна викликати явним чином при визначенні конструктора, деструктора або перевантаження оператора присвоєння похідного класу, наприклад, таким чином (для конструктора):

Конструктор_Похідн_Класу (...): Конструктор_Баз_Класу (...) {...}.

3. Практична задача. Обчислити добуток непарних додатних елементів послідовності

#include

#include

using namespace std;

int main()

{

int column, row, n, **matrix;

cout << "Enter the size of the square matrix: ";

cin >> n;

try {

matrix = new int*[n];

for (int i = 0; i < n; i++)

matrix[i] = new int[n];

} catch (bad_alloc) {

cout << "Unable to allocate memory." << endl;

system("pause");

return 1;

}

srand(time(NULL));

cout << "Source matrix:" << endl;

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

matrix[i][j] = rand() % 199 - 99;

cout << setw(3) << matrix[i][j] << " ";

// міняємо місцями строки

for (int j = 0; j < n; j++)

swap(matrix[row][j], matrix[n - 1][j]);

// міняємо місцями колонки

for (int i = 0; i < n; i++)

swap(matrix[i][column], matrix[i][n - 1]);

cout << "Resulting matrix:" << endl;

скачати

© Усі права захищені
написати до нас