You are on page 1of 12

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Харківський економічний університет ім. С. Кузнеця

Кафедра українознавства і мовної


підготовки іноземних громадян

ЕКЗАМЕНАЦІЙНИЙ БІЛЕТ № 9
з навчальної дисципліни «Програмування»
На тему
«Програмування лінійних обчислювальних процесів»

Варіант 4

Виконав

студент 1 курсу, групи


6.04.122.010.Z.20.1
Махiнов Б.С.

Перевірив:

Доцент Фролов О. В.

Харків, 2021
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021

ЗАДАЧА 1

Хід роботи
Після розробки була реалізована програма яка генерує матрицю, знаходить
суму елементів та кількість додаткових парних елементів та зберігає їх
кількість у файл .txt, який знаходиться у папці з проектом.
1. Вивід повідомлення де юзеру пропонується ввести розмір квадратної
матриці.
2. Заповнення матриці випадковими числами
3. Вивід повідомлення з видом заповненої матриці.
4. Виконання методу для знаходження суми чисел нижче головної
діагоналі.
5. Виконання методу для знаходження додатних, парних елементів
мариці вище головної діагоналі
6. Створення, та записування знаходженних даних у текстовий файл.

2
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021

КОД ПРОГРАМИ

#include <iostream>
#include <vector>
#include <cmath>
#include <fstream>
#include <ctime>

using namespace std;

/// <summary>
/// Сумма чисел ниже главной диагонали
/// </summary>
/// <param name="array">Массив</param>
/// <returns>int</returns>
int GetSumBelowDiagonal(vector<vector <int> > array)
{
int sum = 0;
for (int i=0;i<array.size();i++)
{
for (int j=0;j<array.size();j++)
{
if (i>j)
{
sum += abs(array[i][j]);
}
}
}
return sum;
}

/// <summary>
/// Количество положительных чётных элементов выше главной диагонали
/// </summary>
/// <param name="array">Массив</param>
/// <returns>int</returns>
int GetNumberOfPositiveEvenElementsAboveDiagonal(vector<vector <int> > array)
{
int count = 0;
for (int i = 0; i < array.size(); i++)
{
for (int j = 0; j < array.size(); j++)
{
if (i < j)
{
int num = array[i][j];
if ((num % 2 == 0)&& (num>0))
{
count++;
}
}
}
}
return count;
}

/// <summary>

3
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
/// Выводит в .txt файл информацию о сумме чисел ниже главной диагонали и количестве
положительных чётных элементов выше главной диагонали.
/// output.txt файл разположен в папке проекта
/// </summary>
/// <param name="sum">Сумма чисел ниже главной диагонали</param>
/// <param name="number">Количество положительных чётных элементов выше главной
диагонали</param>
/// <returns>bool</returns>
bool OutputToFile(int sum,int number)
{
try
{
ofstream Output("output.txt");
Output << "Сумма чисел ниже главной диагонали: " << sum << endl;
Output << "Количество положительных чётных элементов выше главной диагонали: " <<
number;
Output.close();
return true;
}
catch (...)
{
return false;
}

int main()
{
setlocale(LC_ALL, "Russian");

cout << "Введите размерность квадратной матрицы X(n,n): ";


int n;
cin >> n;
if (n <= 0)
{
cerr << "Invalid size" << endl;
return 1;
}

vector<vector <int> > MatrixArray(n, vector <int>(n));

srand(time(NULL));

//Заполнение матрицы случайными числами


for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
MatrixArray[i][j] = rand() %100 - rand()%-100;
}
}

cout << "\nЗаполненная матрица имеет вид: \n";


for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << MatrixArray[i][j] << "\t";
}
cout << endl;

4
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
}

const int SumBelowDiagonal = GetSumBelowDiagonal(MatrixArray);


const int NumberOfPositiveEvenElementsAboveDiagonal =
GetNumberOfPositiveEvenElementsAboveDiagonal(MatrixArray);

//cout << SumBelowDiagonal<<"\n";


//cout << NumberOfPositiveEvenElementsAboveDiagonal<<"\n";

if (OutputToFile(SumBelowDiagonal, NumberOfPositiveEvenElementsAboveDiagonal))
{
cout << "\n\nРезультат успешно записан в файл!";
}else
{
cout << "Ошибка";
}

int t;
cin >> t;
return 0;
}

5
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021

СКРІНШОТ ВИКОНАНОЇ РОБОТИ

6
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
ЗАДАЧА 2
Хід роботи
1. Створення класу mytable.
2. Створення класу prduct. Конструктора для створенная продукту.
3. Створення таблиці з даними про продукцію, яка буде за замовчанням.
4. Створення методу для виводу таблиці на консоль.
5. Створення методів для додавання та видалення продукту.
6. Створення форми для додавання продукту.
7. Вивід повідомлення користувачеві, де він може вибрати дію за
програмою («1. Показати таблицю»; «2. Додати елемент»; «3. Видалити
елемент»)

7
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021

КОД ПРОГРАМИ

MyTable.h
#pragma once

#include <iostream>
#include <vector>
#include "Product.h"
#include <iomanip>

using namespace std;

class MyTable
{
public:
vector<Product> Products;

/// <summary>
/// Метод для добавления продукта в список
/// </summary>
/// <param name="Id">№ п/п</param>
/// <param name="P">Продукція</param>
/// <param name="H">Шифр</param>
/// <param name="V">Об'єм постачань</param>
/// <param name="Z">Оптова ціна</param>
void AddProduct(int Id, string P, string H, double V, double Z)
{
Products.push_back(Product(Id,P,H,V,Z));
}

/// <summary>
/// Метод для удаления позиции по Id
/// </summary>
/// <param name="Id">№ п/п</param>
void DeleteProduct(int Id)
{
for (int i=0;i<Products.size();i++)
{
if (Products[i].Id==Id)
{
Products.erase(Products.begin()+i);
}
}
}

/// <summary>
/// Вывод таблицы на консоль
/// </summary>
void ShowTable()
{
setlocale(LC_ALL, "Ukrainian");

cout << "№ п/п\t" << left << setw(25)


<< "Продукцiя"<< left << setw(25)
<< "Шифр"<< left << setw(25)
<< "Об`єм постачань"<< left << setw(25)
<< "Оптова цiна"<< left << setw(25)

8
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
<< "Об`єм грн."<<endl;

for (auto element : Products)


{
cout<<left << element.Id<<"\t" << setw(25)
<< element.P << left << setw(25)
<< element.H << left << setw(25)
<< element.V << left << setw(25)
<< element.Z << left << setw(25)
<< element.O << endl;
}

double sumO=0, sumZ = 0, sumV = 0;


Product maxProduct = Products[0];

for (auto element : Products)


{
sumO+=element.O;
sumZ += element.Z;
sumV += element.V;
}
cout << " \t" << left << setw(25)
<< "Разом" << left << setw(25)
<< " " << left << setw(25)
<< sumV << left << setw(25)
<< sumZ << left << setw(25)
<< sumO << endl<<endl;

cout << "Максимальный объём продаж:" << endl;


for (int i = 0; i < Products.size(); ++i)
{
if (Products[i].O > maxProduct.O)
{
maxProduct = Products[i];
}
}
cout << left << maxProduct.Id << "\t" << setw(25)
<< maxProduct.P << left << setw(25)
<< maxProduct.H << left << setw(25)
<< maxProduct.V << left << setw(25)
<< maxProduct.Z << left << setw(25)
<< maxProduct.O << endl;
}

void Start()
{
while (true)
{
setlocale(LC_ALL, "Russian");

cout << "1. Показать таблицу"<<endl<<"2. Добавить елемент"<<endl<<"3.


Удалить елемент"<<endl;
cout << "Введите номер: ";
int operation;
cin >> operation;

cout << endl;


switch (operation)
{
case 1:

9
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
ShowTable();
break;
case 2:
{
int id;
string p,h;
double v,z;

cout << "Введите номер: ";


cin >> id;

cout << "\nВведите имя продукции: ";


cin >> p;
cout << endl;

cout << "Введите шифр: ";


cin >> h;
cout << endl;

cout << "Введите объём поставок: ";


cin >> v;
cout << endl;

cout << "Введите оптовую цену: ";


cin >> z;
cout << endl;

AddProduct(id,p,h,v,z);
}
break;
case 3:
{
int id;

cout << "Введите номер: ";


cin >> id;

DeleteProduct(id);
}
break;
default:
break;
}
cout << endl;

}
}

MyTable()
{
AddProduct(1, "Сыр", "ggvs23", 1000, 120);
AddProduct(2, "Чай", "hvde231", 1300, 30);
AddProduct(3, "Посуда", "bfhaw31", 500, 60);
AddProduct(4, "Постельное бельё", "bstsw33", 700, 400);
AddProduct(5, "Телефон", "AAgvd2", 1888, 379);
AddProduct(6, "Ноутбук", "HTxxw2", 300, 542);
AddProduct(7, "Холодильник", "HYQ2d", 50, 8999);
AddProduct(8, "Стиральная машина", "gdWW23", 75, 6799);
AddProduct(9, "Кровать", "fvXsE24", 65, 4599);
AddProduct(10, "Музыкальное оборудование", "GtwsEWQ3222", 35, 21999);

10
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
}
};

Product.h
#pragma once

#include <string>

using namespace std;

class Product
{
public:
//№ п/п
int Id;

//Продукція
string P;

//Шифр
string H;

//Об'єм постачань
double V;

//Оптова ціна
double Z;

//Об'єм грн. ( О = V * Z )
double O;

/// <summary>
/// Конструктор для создания продукта
/// </summary>
/// <param name="Id">№ п/п</param>
/// <param name="P">Продукція</param>
/// <param name="H">Шифр</param>
/// <param name="V">Об'єм постачань</param>
/// <param name="Z">Оптова ціна</param>
/// <param name="O">Об'єм грн. ( О = V * Z )</param>
Product(int Id, string P, string H, double V,double Z)
{
this->Id = Id;
this->P = P;
this->H = H;
this->V = V;
this->Z = Z;
this->O = this->V * this->Z;
}
};

11
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021

СКРІНШОТ ВИКОНАНОЇ РОБОТИ

12

You might also like