Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа №3.docx
Скачиваний:
0
Добавлен:
27.01.2025
Размер:
1.13 Mб
Скачать

2) Реализация 2-го проекта:

2.1) Создадим второй пустой проект с именем Project_2 в уже существующем решении. Для этого выполним команду Файл/Добавить/Создать проект. В открывшемся окне “Добавить новый проект” зададим имя проекта Project_2.

2.2) Запишем в файл с именем ex2.cpp программные коды разработанных в первом проекте функций (переименовав функцию func1 в func2) в следующем порядке:

  • сначала программный код главной функции main;

  • после него определение функции func2 с параметрами и возвращаемым значением.

Текст программы проекта 2:

#include <iostream>

#include <cmath>

using namespace std;

double numb(double& nu)

{

while (true)

{

if (cin.fail())

{

cin.clear();

cin.ignore(1000, '\n');

cout << "Ошибка! Введенные данные не являются числом\n";

cout << "Повторите ввод: ";

cin >> nu;

}

else

{

return nu;

break;

}

}

}

double zero(double& z)

{

while (true)

{

if ((z == 0))

{

cout << "Ошибка! При данном значении знаменатель обращается в ноль\n";

cout << "Повторите ввод: ";

cin >> z;

numb(z);

}

else

{

return z;

break;

}

}

}

double func1(double, double);

int main()

{

setlocale(LC_ALL, "rus");

double x, y, d;

cout << "Введите х = ";

cin >> x;

numb(x);//проверка является ли введенный х числом

zero(x);//проверка на обращение знаменателя в ноль

cout << "Введите y = ";

cin >> y;

numb(y);//проверка является ли введенный у числом

zero(y);//проверка на обращение знаменателя в ноль

d = func1(x, y);

cout << endl << "Вещественное d = " << d << endl;

system("PAUSE");

return 0;

}

double func1(double a, double b)

{

double d;

d = ((a * b * b - sqrt(abs(a * a - 2.5 * pow(10, -3) * b))) / (2 * sin(a * b)) + 0.5);

return d;

}

}

}

double func2(double, double);

int main()

{

setlocale(LC_ALL, "rus");

double x, y, d;

cout << "Введите х = ";

cin >> x;

numb(x);//проверка является ли введенный х числом

zero(x);//проверка на обращение знаменателя в ноль

cout << "Введите y = ";

cin >> y;

numb(y);//проверка является ли введенный у числом

zero(y);//проверка на обращение знаменателя в ноль

d = func2(x, y);

cout << endl << "Вещественное d = " << d << endl;

system("PAUSE");

return 0;

}

double func2(double a, double b)

{

double d;

d = (a * b * b - sqrt(abs(a * a - 2.5 * pow(10, -3) * b))) / (2 * sin(a * b)) + 0.5;

return d;

}

2.3) Перед кодом главной функции main запишем прототип функции func2:

double func2(double, double)

{

2.4) Откомпилируем файл ex2.cpp и выполним перестроение решения ProjectLab3.

2.5) Выполним проект Project_2. Получим следующие результаты при заданных значениях исходных данных (рис.17).

Рисунок 6 – Результат выполнения Project_2

2.6) Проведем следующий эксперимент: закомментируем прототип функции func2 перед кодом главной функции main.

Итог: при попытке запуска программы возникла ошибка, так как произошло обращение к неинициализированной функции.