Разработка программного кода проекта
Разработан программный код для четырёх файлов: GetPut.cpp, Calc.cpp, MinMax и Main.cpp.
#include <iostream>
void vvod(double& x, double& y, double& c, double& d, int& r)
{
setlocale(LC_ALL, "rus");
std::cout << "Введите значение X - ";
std::cin >> x;
std::cout << std::endl <<"Введите значение Y - ";
std::cin >> y;
std::cout << std::endl << "Введите значение C - ";
std::cin >> c;
std::cout << std::endl << "Введите значение D - ";
std::cin >> d;
std::cout << std::endl << "Выберете способ решения 1/2 - ";
std::cin >> r;
}
void vivod(double otvet, double N_vetvi)
{
setlocale(LC_ALL, "rus");
std::cout << std::endl << "Ответ - " << otvet << " с номером ветви - " << N_vetvi;
}
void error_1()
{
std::cout << std::endl << "Возникла ошибка при вводе выбора принципа решения";
}
void error_2()
{
std::cout << std::endl << "Возникла ошибка при вычислении условий";
}
Листинг 1 – Программный код файла GetPut.cpp.
#include <cmath>
double MyMax(double A, double B, double C);
double MyMin(double A, double B, double C);
double razv_max(double A, double B);
double razv_min(double A, double B);
double vetka_1(double x, double y, double c, double d, int r)
{
if (r == 1) {
return MyMax(pow(x, 3), pow(log10(x * y), c * d), 0);
}if (r == 2)
{
return razv_max(pow(x, 3), pow(log10(x * y), c * d));
}
}
double vetka_2(double x, double y, double c, double d, int r)
{
if (r == 1) {
return 3 * MyMin(x, y, MyMax(c * x, d * y, 0));
}if (r == 2)
{
return 3 * razv_min(razv_min(x, y), razv_max(c * x, d * y));
}
}
double vetka_3(double x, double c, double d)
{
return pow(2, c * d) - x;
}
int kakaya_vetka(double x, double y)
{
if (x * y > 3)
{
return 1;
}
if(0 <= x*y <= 3)
{
return 2;
}
if (x * y < 0)
{
return 3;
}
else
{
return 0;
}
}
Листинг 2 – Программный код файла Calc.cpp.
double MyMax(double A, double B, double C) {
int size;
if (C == 0)
{
size = 2;
double perebor[2] =
{
A, B
};
}
else
size = 3;
double perebor[3] =
{
A, B, C
};
int temp;
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (perebor[j] < perebor[j + 1]) {
temp = perebor[j];
perebor[j] = perebor[j + 1];
perebor[j + 1] = temp;
}
}
}
return perebor[0];
delete[] perebor;
}
double MyMin(double A, double B, double C) {
int size;
if (C == 0)
{
size = 2;
double perebor[2] =
{
A, B
};
}
else
size = 3;
double perebor[3] =
{
A, B, C
};
int temp;
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (perebor[j] > perebor[j + 1]) {
temp = perebor[j];
perebor[j] = perebor[j + 1];
perebor[j + 1] = temp;
}
}
}
return perebor[0];
delete[] perebor;
}
double razv_max(double A, double B)
{
if (A > B)
{
return A;
}
else
{
return B;
}
}
double razv_min(double A, double B)
{
if (A < B)
{
return A;
}
else
{
return B;
}
}
Листинг 3 – программный код файла MinMax.cpp.
#include <iostream>
void error_1();
void error_2();
void vivod(double otvet, double N_vetvi);
void vvod(double& x, double& y, double& c, double& d, int& r);
double vetka_1(double x, double y, double c, double d, int r);
double vetka_2(double x, double y, double c, double d, int r);
double vetka_3(double x, double c, double d);
int kakaya_vetka(double x, double y);
int main()
{
double x, y, c, d;
int r;
vvod(x, y, c, d, r);
if (r != 1 && r != 2)
{
error_1();
}
switch (kakaya_vetka(x, y))
{
case 0:
error_2();
break;
case 1:
vivod(vetka_1(x, y, c, d, r), 1);
break;
case 2:
vivod(vetka_2(x, y, c, d, r), 2);
break;
case 3:
vivod(vetka_3(x, c, d), 3);
break;
}
return 0;
}
Листинг 3 – Программный код файла Main.cpp.