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

3 Схема алгоритма

Рисунок 2 – Схема алгоритма главной процедуры main для всех проектов

Рисунок 3 – Схема вспомогательного алгоритма

Рисунок 4 – Схема вспомогательного алгоритма

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;

}

}

}

double zero(double& z)

{

while (true)

{

if ((z == 0))

{

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

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

cin >> z;

numb(z);

}

else

{

return z;

}

}

}

double func1(double a, double b)

{

double d;

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

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

d = func1(x,y);

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

system("PAUSE");

return 0;

}

d = func1(x,y);

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

system("PAUSE");

return 0;

}

5 Тестирование программы

Результаты тестирования представлены в таблице 1, а типы возникающих ошибок в таблице 2.

Таблица 1 – Результаты тестирования

№

x

y

d

k

l

m

n

++k

l++

k

l

Ошибки

1

1.3802

-1.9

-3.1282

-3

-3

-3

-4

-2

-3

-2

-2

Нет (рис.4)

2

-7.5

3

-76.474

-76

-76

-76

-77

-75

-76

-75

-75

Нет (рис.5)

3

9

0

-

-

-

-

-

-

-

-

-

1 (рис.6)

4

0

-

-

-

-

-

-

-

-

-

-

1 (рис.7)

5

2

a

-

-

-

-

-

-

-

-

-

2 (рис.8)

6

!

-

-

-

-

-

-

-

-

-

-

2 (рис.9)

Таблица 2 – Типы ошибок

Код ошибки

Описание ошибки

1

Деление на ноль

2

Неверный ввод данных

Результаты тестирования представлены на рисунках 5 - 10:

Рисунок 5 – Работа программы без ошибок

Рисунок 6 – Работа программы без ошибок

Рисунок 7 – Знаменатель обращается в ноль. (Ошибка 1)

Рисунок 8 – Знаменатель обращается в ноль (Ошибка 1)

Рисунок 5 – Неверный ввод данных (Ошибка 2)

Рисунок 10 – Неверный ввод данных (Ошибка 2)