
- •Оглавление
- •Введение
- •Создать решение, состоящие из пяти программных проектов, для вычисления арифметического выражения
- •1.Индивидуальное задание, вариант 14
- •2.Формализация и уточнение задания
- •3.Разработка пяти программных проектов в одном решении и получение результатов их работы
- •4.Реализация первого проекта
- •5.Реализация второго проекта
- •6.Реализация третьего проекта
- •7.Реализация четвертого проекта
- •8.Реализация пятого проекта
- •9.Доказательство правильности результатов
- •Заключение
- •Список используемой литературы
7.Реализация четвертого проекта
Создадим четвертый проект с именем lr5.4 в уже имеющемся решении. Разработаем алгоритм процедуры без параметров и без возвращаемого значения. Схема алгоритма этой процедуры func4 (см.рис.8).
Рисунок 8 – схема алгоритма func4
Разработаем программные коды двух функций в соответствии со схемами алгоритмов. Программные кода разработанных функций запишем в файл с именем zad4.cpp в следующем порядке (см. листинг 4):
1.Объявление (прототип) функции func4.
2.Определение глобальных переменных.
3.Определение функции main.
4.Опрееление функции func4 без параметров и без возвращаемого значения.
#include <iostream>
#include <cmath>
using namespace std;
void func3(double, double, double&);
int main(){
setlocale(LC_ALL, "rus");
double x, y, z;
cout << "Ввод x = ";
cin >> x;
cout << endl << "Ввод y = ";
cin >> y;
func3(x, y, z);
cout << endl << "результат z = " << z << endl;
system("PAUSE");
return 0;
}
void func3(double x, double y, double& z){
z = (sqrt(abs(x)) + exp(-y))/(5.8 * cos(pow(y,3)));
}
Листинг 4 – код файла zad4.cpp
Откомпилируем файл zad4.cpp, выполним перестроение решения resh1 и выполнение проекта lr5.4, назначив его запускаемым проектом. Получим следующие результаты при заданных значениях исходным данных (см.рис.9).
Рисунок 9 – Результат lr5.4
Получившийся результат совпадает с результатом проекта lr5, а это значит, что ответ верный. Выполним проект с помощью отладчика по шагам, так же, как и в первом проекте, поставив точку оcтанова после ввода исходных данных x и y на операторе вызова функции. Проследим за изменением значений всех переменных в окнах Локальные и видимые. В тело главной функции main добавим определение переменных x, y, f до оператора ввода исходных данных. Перестроить решение и выполним проект. Проанализируем полученные результаты и ответим на вопрос: почему и как изменились результаты проекта?
Ответ: Результаты никак не изменились так как определение переменных до оператора ввода исходных данных не влияет на конечный результат.
8.Реализация пятого проекта
Создадим в уже имеющемся решении пятый проект с именем lr5.5, состоящий из двух файлов. В первый файл с именем zad5_m.cpp поместим текст функции main из второго проекта. Во второй файл с именем zad5_f.cpp поместим текст функции func2 из того же проекта.
После раздельной компиляции файлов выполним их совместную компоновку (перестроение решения) и выполнение проекта. Результаты выполнения при заданных значениях исходных данных (см.рис.10).
Рисунок 10 – результаты проекта lr5.5
9.Доказательство правильности результатов
Результат выполнения всех пяти проектов одинаков и равен -870.758. Выполним расчеты арифметического выражения с использованием программы Microsoft Excel и получим совпадающий результат, что доказывает правильность решения (см.рис.11).
Рисунок 11 – решение в excel
Замечание: в данном случае предполагается, что функция переписана без ошибок, и мы проверяем наличие ошибки в типах данных переменных (пример: 1/2 в C++ выдаст ответ 0, а 1./2 выдаст ответ 0.5).