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

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

4.1) Создадим четвертый проект с именем Project_4 в уже имеющемся решении.

4.2) Разработаем алгоритм процедуры без параметров и без возвращаемого значения. Схема алгоритма этой процедуры func4 представлена на рисунке 22.

Рисунок 8 – Схема алгоритма процедуры func4 без параметров и без возвращаемого значения для четвертого проекта

4.3) Разработаем программные коды двух функций в соответствии со схемами алгоритмов. Программные коды разработанных функций запишем в файл с именем ex4.cpp в следующем порядке:

  • объявление (прототип) функции func4;

  • определение глобальных переменных;

  • определение функции main;

  • определение func4 без параметров и возвращаемого значения.

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

#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;

}

}

}

void func4();

double x, y, d;

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);//проверка на обращение знаменателя в ноль

func4();

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

system("PAUSE");

return 0;

}

void func4()

{

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

}

void func4()

{

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

}

4.5) Проведем следующий эксперимент:

Проверим, изменятся ли результаты выполнения проекта, если в тело главной функции main добавить определение переменных x, y, d до оператора ввода исходных данных.

Список ошибок, возникших после запуска программы, представлен на рисунке 23.

Рисунок 23 – Список ошибок после добавления определения переменных до оператора ввода исходных данных

Добавив определение переменных x, y, d в тело главной функции main мы сделали их глобальными. Вследствие этого они не могут быть использованы в других функциях нашего проекта.

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

5.1) Создадим в уже имеющемся решении пятый проект с именем Project_5, состоящий из двух файлов. В первый файл с именем ex5_m.срр поместим текст функции main из второго проекта. Во второй файл с именем ex5_f.срр поместим текст функции func2 из того же проекта.

5.2) После раздельной компиляции файлов выполним их совместную компоновку (перестроение решения) и выполнение проекта. Результаты выполнения при заданных значениях исходных данных приведены на рисунке 24.

Рисунок 9 – Результаты выполнения проекта 5