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

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).

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