2курс 2сем / TP_Ianysheva_lr_3
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
доцент, канд. техн. нау, доцент |
|
|
|
А. В. Аграновский |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №3 |
Циклические конструкции |
по дисциплине: Технологии программирования |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. |
4716 |
|
|
|
С.А. Янышева |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2019
1. Постановка задачи
Вычислите приближенное значение функции 𝑓(𝑥) посредством вычисления соответствующего ряда. Вычисления следует остановить тогда, когда значение очередного члена ряда оказалось меньше заданного 𝜀
2. Математическая модель
Так как вычисление состоит из одной формулы, математические выкладки и конечные формулы отсутствуют.
3. Описание разработанной программы
Имя переменной |
Тип переменной |
Назначение |
x |
Float |
Аргумент функции |
x1 |
String |
Переменная для теста |
x2 |
Float |
Переменная для теста |
x3 |
Float |
Переменная для теста |
x4 |
Float |
Переменная для теста |
e |
Float |
Аргумент функции |
e1 |
Float |
Переменная для теста |
e2 |
String |
Переменная для теста |
e3 |
Float |
Переменная для теста |
e4 |
Float |
Переменная для теста |
Переменные x1, x2, x3, x4, e1, e2, e3, e4 используются в функции для проверки тестового набора.
Листинг программного кода:
import math
def check_inputx(x): # Проверка введённого значения x на ошибки
try: # Проверка на флоатовское значение float(x) except ValueError: return ('Error') x = float(x) return x
def check_inpute(e): # Проверка введённого значения e на ошибки
try: float(e) except ValueError: return ('Error') e = float(e) return e
def LAB3_VAR_33(x,e): x = check_inputx(x) if (x == 'Error'): print('Ошибка. Введено не числовое значение x.') return ('Error') e = check_inpute(e) if (e == 'Error'): print('Ошибка. Введено не числовое значение e.') return ('Error') if (x) > 1: print('Ошибка. Введено недопустимое значение x.') return ('Error') n = 1 # коэффициент определяющий знак слагаемого z = 1 # значение знаменателя и степени, изначально равно единице result = 0 while 1: s = n * ((x ** z) / z) z = z + 1 n = n * (-1) result = result + s if math.fabs(s) < e: break return result
def TEST_LAB3_VAR_33(): print('Тест 1') print('Х1 = chislo, e1 = 0.000001') x1 = 'chislo' e1 = 0.000001 result = (LAB3_VAR_33(x1, e1)) if result == "Error": print('Тест пройден') else: print('Тест не пройден') print('----------------------------') print('Тест 2') print('Х2 = 0.1, e2 = chislo') x2 = 0.1 e2 = 'chislo' result = (LAB3_VAR_33(x2, e2)) if result == "Error": print('Тест пройден') else: print('Тест не пройден') print('----------------------------') print('Тест 3') print('Х3 = 1.5, e3 = 0.000001') x3 = 1.5 e3 = 0.000001 result = (LAB3_VAR_33(x3, e3)) if result == "Error": print('Тест пройден') else: print('Тест не пройден') print('----------------------------') print('Тест 4') print('Х4 = 0.1, e4 = 0.000001') x4 = 0.1 e4 = 0.000001 result = (LAB3_VAR_33(x4, e4)) print('Ln(1+x)=', result) if ((math.fabs(((result)) - (math.log1p(x4)))) < 0.0000001): print('Тест пройден') else: print('Тест не пройден') print('----------------------------') print('Тест 5') print('Х5 = -0.5, e5 = 0.0000000001') x5 = -0.5 e5 = 0.0000000001 result = (LAB3_VAR_33(x5, e5)) print('Ln(1+x)=', result) if ((math.fabs(((result)) - (math.log1p(x5)))) < 0.0000001): print('Тест пройден') else: print('Тест не пройден')
TEST_LAB3_VAR_33() |
4. Описание тестового набора
Тестирование будет производится на следующих данных, представленных в таблице №3.
Таблица №3 – Тестовый набор
Описание тестового случая |
Входные данные |
Ожидаемый результат |
Результат теста |
Пользователь ввёл строку в x |
x = “chislo” e = 0.000001 |
Ошибка. Введено не числовое значение x. |
Пройден |
Пользователь ввёл строку в e |
x = 0.1 e = “chislo” |
Ошибка. Введено не числовое значение e. |
Пройден |
Пользователь ввёл значение x >= 1 |
x = 1.5 e = 0.000001 |
Ошибка. Введено недопустимое значение x. |
Пройден |
Пользователь ввёл значение x ≤ 1, e |
x = 0.1 e = 0.000001 |
Разность модулей результата работы программы и вычисления с помощью функции math.log1p меньше 0.0000001 |
Пройден |
Пользователь ввёл значение x ≤ 1, e |
x = -0.5 e = 0.0000000001 |
Разность модулей результата работы программы и вычисления с помощью функции math.log1p меньше 0.0000001 |
Пройден |
5. Пример работы программы
На рисунке 1 представлен пример работы программы.
Рисунок 1 – Пример работы программы
6. Выводы
В ходе выполнения лабораторной работы была реализована программа вычисления приближенного значения функции. Были получены практические навыки написание расчетных программ на языке программирования Python.
Было проведено тестирование разработанной программы, во всех случаях полученный результат совпадал с ожидаемым, что говорит о корректной работе написанной программы.