Professional Documents
Culture Documents
Bilet 2
Bilet 2
ЕКЗАМЕНАЦІЙНИЙ БІЛЕТ № 9
з навчальної дисципліни «Програмування»
На тему
«Програмування лінійних обчислювальних процесів»
Варіант 4
Виконав
Перевірив:
Доцент Фролов О. В.
Харків, 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>
/// <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");
srand(time(NULL));
4
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
}
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>
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");
8
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
<< "Об`єм грн."<<endl;
void Start()
{
while (true)
{
setlocale(LC_ALL, "Russian");
9
Ерліхман С. Є. 1 курс, група 6.04.122.010.Z.20.1, 5.05.2021
ShowTable();
break;
case 2:
{
int id;
string p,h;
double v,z;
AddProduct(id,p,h,v,z);
}
break;
case 3:
{
int 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>
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