Шаблони

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2016
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Об’єктно-орієнтоване програмування

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет „Львівська політехніка” Кафедра EОМ Звіт з лабораторної роботи №8 з дисципліни: “Об’єктно-орієнтовне програмування ” «Шаблони» Мета роботи Познайомитися із створенням шаблонів. Завдання лабораторної роботи / / Хід виконання роботи Текст програми Текст файлу M_vector.h #ifndef MATRIX_M_VECTOR_H #define MATRIX_M_VECTOR_H #include <vector> #include <iostream> #include <random> #include <ctime> using namespace std; template <typename T> class M_vector { public: vector<vector<T>> matrix; //vector<vector<double>> matrix_d; int size; M_vector(int array_size); //M_vector (int array_size, double d); ~M_vector(); int difference(); void set(); }; template <typename T> M_vector<T>::~M_vector(){} /* * Конструктор генерує двовимірний масив розміру size*size */ template <typename T> M_vector<T>::M_vector(int array_size) { size = array_size; srand((unsigned int) time(0)); vector<int> arg; ((random() % 100) - (random() % 100)); for(int i = 0; i != size; i++){ for(int j = 0; j != size; j++) arg.push_back(((rand() % 100) - (rand() % 100))); //Елементи масиву ініціалізуються випадковими значеннями matrix.push_back(arg); arg.erase(arg.begin(), arg.end()); } } /* * Обчислення різниці середнього арифметичного відємних і додатніх чисел */ template <typename T> int M_vector<T>::difference() { int p_sum = 0, p_number = 0; int n_sum = 0, n_number = 0; for (auto i : matrix) { for(auto j : i){ if(j > 0){ p_sum += j; p_number++; } if(j < 0){ n_sum += j; n_number++; } } } int result = (-(n_sum / n_number) - (p_sum / p_number)); return result; } template <typename T> void M_vector<T>::set() { for (auto i : matrix) { cout << "\t\t"; for (int j = 0; j != size; j++) { cout << i[j] << " "; if (j == (size - 1)) cout << endl; } } } #endif //MATRIX_M_VECTOR_H Текст файлу main.cpp #include <iostream> #include "M_vector.h" using namespace std; int main() { int array_size; int choice = 0; cout << "Input the size of array: " << endl; cin >> array_size; M_vector<int> matrix(array_size); do{ cout << "Make your choice: " << endl; cout << "\t\t1 - Results array " << endl; cout << "\t\t2 - Print the arithmetic difference negative and positive elements " << endl; cout << "\t\t3 - Complete program " << endl; cin >> choice; switch (choice) { case 1: matrix.set(); break; case 2: cout << matrix.difference() << endl; break; case 3: choice = 3; break; default: break; } }while (choice != 3); return 0; } Результати тестування програми / Рис. 1. Результати тестування програми Моя програма успішно створює двовимірний масив(рис.1.) та знаходить різницю середнього арифметичного відємних та додатніх чисел. Висновок У цій лабараторній роботі я засвоїв принцип створення шаблонів, дізнався про шаблони класів та функцій.
Антиботан аватар за замовчуванням

24.11.2018 19:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!