Лабораторная работа по ООП 2 курс. Отчет 1. Вычисление функций с использованием их разложения в степенной ряд
Скачать 79.05 Kb.
|
Министерство образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Пермский национальный исследовательский политехнический университет» Кафедра «Информационные технологии и автоматизированные системы» Лабораторная работа №1 по дисциплине «Объектно-ориентированное программирование» Тема: |
Тест | Входные данные | Ожидаемый результат | Фактический результат |
Т1 | m = M(5) n = -2 x = 1 | Повторное приглашение ввести M, затем: --m-n++ = 6 M, N = 4, -1 m*m < n++: False M, N = 5, -1 n-- > ++m: False M, N = 6, -3 tg(x) - (5-x)^4 = 1,5574077246549023 - 256 = -254,4425922753451 | Совпадает с ожидаемым |
Т2 | m = 0 n = 0 x = 0 | --m-n++ = -1 M, N = -1, 1 m*m < n++: False M, N = 0, 1 n-- > ++m: True M, N = 1, -1 tg(x) - (5-x)^4 = 0 - 625 = -625 | Совпадает с ожидаемым |
Т3 | m = -1 n = 4,0(0) x = X(-14,88) | Повторное приглашение ввести N, затем: --m-n++ = -6 M, N = -2, 5 m*m < n++: True M, N = -1, 5 n-- > ++m: True M, N = 0, 3 tg(x) - (5-x)^4 = 1,088971008059664 - 156194,42196736007 = -156193,33299635202 | Совпадает с ожидаемым |
Т4 | m = 5,5(5) n = n(15) x = sy(3,141592) | Повторное приглашение ввести M, затем: --m-n++ = -11 M, N = 4, 16 m*m < n++: False M, N = 5, 16 n-- > ++m: True M, N = 6, 14 Повторное приглашение ввести X, затем: tg(x) - (5-x)^4 = -6,535897930763814E-07 - 11,927907576368938 = -11,927908229958732 | Совпадает с ожидаемым |
Тестирование по методу чёрного ящика:
Переменная | Тип | Т1 | Т2 | Т3 | Т4 |
m | char | | | | |
double | | | | | |
int | | | | | |
> 0 | | | | | |
< 0 | | | | | |
= 0 | | | | | |
n | char | | | | |
double | | | | | |
int | | | | | |
> 0 | | | | | |
< 0 | | | | | |
= 0 | | | | | |
x | char | | | | |
double | | | | | |
int | | | | | |
> 0 | | | | | |
< 0 | | | | | |
= 0 | | | | |
Тесты для задачи 2.
X и Y могут быть любыми действительными числами
Необходимо проверить ввод положительных, отрицательных чисел, нуля и символов.
Результаты тестирования:
Тест | Входные данные | Ожидаемый результат | Фактический результат |
Т1 | x = 0 y = y(0) | Повторное предложение ввести Y, затем: True | Совпадает с ожидаемым |
Т2 | x = x(0,5) y = -0,5 | Повторное предложение ввести X, затем: True | Совпадает с ожидаемым |
Т3 | x = 1 y = 1,0 | False | Совпадает с ожидаемым |
Т4 | x = -5,0 y = 0 | False | Совпадает с ожидаемым |
Тестирование по методу чёрного ящика:
Переменная | Тип | Т1 | Т2 | Т3 | Т4 |
x | char | | | | |
> 0 | | | | | |
< 0 | | | | | |
= 0 | | | | | |
y | char | | | | |
> 0 | | | | | |
< 0 | | | | | |
= 0 | | | | |
Тестирование задачи 3.
Вычисление значения выражения при без действий пользователя для двух типов данных и, по правилам математики, результат должен равняться 1.
Результат для float – 0;
Результат для double – 0,9999996943445747
Объяснение полученных результатов
В задаче 2 получение результата происходит без проверки внутри if так как выражение (X1 >= 0 && X1 <= 1 && Y1 >= -1 && Y1 <= 1 && (Y1 * Y1 + X1 * X1 <= 1)) вернёт значение логического типа, что позволяет сразу присвоить его в переменную соответствующего типа.
В задаче 3 результаты объясняются точностью типов данных float и double.
Точность float не позволяет получить результат, отличный от нуля
Точность double позволяет получить результат, близкий к 1, но всё равно недостаточно точный