
- •Общее задание.
- •Разработка двух функциональных алгоритмов и алгоритма главной функции main.
- •Функциональный алгоритм Branch – вычисление условного алгоритма.
- •Функциональный алгоритм Pred – вычисление условного выражение решения задачи.
- •Разработка программного кода проекта.
- •5.1 Программный код файла GetAndPut.Cpp.
- •5.2 Программный код файла Solve.Cpp.
- •5.3 Программный код файла Main.Cpp.
- •Выводы.
- •Список используемой литературы.
5.3 Программный код файла Main.Cpp.
Программный код представлен на Листинге 3.
// Файл main.cpp
#include <iostream>
//Директива iostream для вывода и ввода данных
void getABX(double& a, double& b, double& x);
void putRetN(double ret, short n);
double Branch(double a, double b, double x, short& n);
double Pred(double a, double b, double x, short& n);
int main()
{
double a, b, x, ret;
short n;
getABX(a, b, x);
short methodChoosing;
std::cout << "[1] С вложенными разветвлениями;\n";
std::cout << "[2] Со своими функциями minimum и maximum.\n";
std::cout << "\n";
std::cout << "[#] Каким способом вы хотите решить эту задачу? Напишите 1 или 2: ";
std::cin >> methodChoosing;
std::cout << "\n";
switch (methodChoosing)
{
case 1:
ret = Branch(a, b, x, n);
putRetN(ret, n);
std::cout << "[#] Выбранный вами метод: " << methodChoosing << "\n";
break;
case 2:
ret = Pred(a, b, x, n);
putRetN(ret, n);
std::cout << "[#] Выбранный вами метод: " << methodChoosing << "\n";
break;
default:
std::cout << "[!] Вы ввели неверное значение! Оно должно быть либо 1, либо 2! Попробуйте ещё раз, написав правильное значение.\n";
std::cout << "\n";
system("PAUSE");
system("CLS"); // Очистка консоли при ошибочном выборе метода решения задачи
return main(); // Повторное решение путем возврата к main()
break;
}
}
Листинг 3. – Программный код файла Main.cpp.
Результат выполнения проекта.
Ниже представлены результат выполнения проекта с разными методами: алгоритмом Branch и Pred. Для точной проверки результатов взяты следующие значения переменных:
Результат выполнения проекта методом 1 (алгоритм Branch).
Результат выполнения программы представлен на рисунке 4.
Рисунок 4. – Выполнение проекта первым методом (алгоритм Branch).
Результат выполнения проекта методом 2 (алгоритм Pred).
Результат выполнения программы представлен на рисунке 5.
Рисунок 5. – Выполнение проекта вторым методом (алгоритм Pred).
Доказательство правильности результатов.
Правильность результатов можно проверить путём ручного решения. Так как x больше, чем 1, решение пойдёт по второй ветке. Переменная ret1 равна корню из x:
Переменная ret2 равна произведению a и x:
Далее необходимо понять, правильно ли это неравенство:
Подставим значения переменных ret1 и ret2:
Видно, что неравенство неверно, поэтому, следуя алгоритму Branch (рис. 1), ответ ret принимает значение ret2, т. е. 8, что и требовалось доказать.
Выводы.
Проведен анализ поставленной задачи. Необходимо её решить, реализовав проект с помощью разветвлений.
Были разработаны блок-схемы алгоритмов Branch, Pred и main методом «Сверху Вниз».
В соответствии с блок-схемами были реализованы программные коды этих алгоритмов
Была проверена правильность выполнения программы.
Результат выполнения программы совпал с тестовыми данными, следовательно программа отработала без ошибок.