
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.
Итог: при попытке запуска программы возникла ошибка, так как произошло обращение к неинициализированной функции.