Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Laba_varik1_7.2.docx
Скачиваний:
7
Добавлен:
10.06.2023
Размер:
216.72 Кб
Скачать

Разработка программного кода проекта

Разработан программный код для четырёх файлов: 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.

Соседние файлы в папке лабы