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)
