Добавил:
t.me Инфо для ГУАП студентов от меня: https://kafaka.notion.site/99e6d9b70ca74f7baef3daea17839e5a Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Z9411_Чурилов_Техн_прог_ЛР-1

.docx
Скачиваний:
0
Добавлен:
10.11.2024
Размер:
80.12 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

Кафедра проблемно-ориентированных вычислительных комплексов

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

доцент _________________ А.В. Аграновский

подпись, дата

ЛАБОРАТОРНАЯ РАБОТА №1

Использование условных конструкций

по дисциплине «Технологии программирования»

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. Z9411 __________________ А.С. Чурилов

подпись, дата

Студенческий билет № 2019/3684

Санкт-Петербург 2021г.

Оглавление

1. Постановка задачи 3

2. Математическая модель 3

3. Описание разработанной программы 3

4. Описание тестового набора 6

5. Примеры работы программы 6

Вывод 7

Приложение 1. Листинг программного кода 9

  1. Постановка задачи

Формулировка задания (задание №9, строка №11): вычислить значение функции 𝑓рез(𝑥) при условии, что функция вычисляется по формуле

Входным параметром является вещественное число, которое в программе выступает в качестве аргумента функции.

Конечная цель программы – нахождение значения функции fрез после анализа введенного параметра x и определения соответствующего выражения для вычисления и вывод на экран полученного результата.

  1. Математическая модель

В зависимости от величины введенного аргумента x результирующая функция будет вычисляться по одному из трёх заданных выражений.

Если значение x меньше 1 (x<1), искомая функция определяется по следующей формуле:

Если значение x лежит в диапазоне от 1 до 2 (1x2), искомая функция определяется по следующей формуле:

Если значение x больше 2 (x>2), искомая функция определяется по следующей формуле:

  1. Описание разработанной программы

В качестве входных параметров имеем одну характеристику, равную значению аргумента функции (см. табл. 1).

Таблица 1 – Перечень входных параметров

Имя переменной

Тип переменной

Описание

x

float

Аргумент функции fрез

Введенная переменная должна являться вещественным числом, причем она может принимать как отрицательное значение, так и положительное, а также может быть равно 0.

В таблице 2 приведен перечень выходных характеристик. Таковой является значение результирующей функции, вычисляемое по одной из формул, описанных в разделе «Математическая модель».

Таблица 2 – Перечень выходных параметров

Имя переменной

Тип переменной

Описание

f_res

float

Значение искомой функции

Разработанный для данной задачи алгоритм содержит разветвленные и циклические структуры (см. рис. 1).

Рисунок 1 – Блок-схема алгоритма

Вся программа состоит из трёх функций. Первая функция is_number(inp) даёт возможность проверить, содержит ли полученный параметр сторонние символы, отличные от цифр. Во второй функции LAB2_VAR_19(x) после осуществления проверок выполняется вычисление искомой функции на основе численного значения введенного аргумента x. В третьей функции TEST_LAB2_VAR_19() прописан автоматический тестовый сценарий, позволяющий проанализировать поведение программы при граничных условиях и различных форматах входных и выходных данных.

Листинг программного кода приведен в Приложении 1.

  1. Описание тестового набора

Изучим набор тестовых случаев (см. табл. 3).

Таблица 3 –Тестовый набор

Описание тестового случая

Входные данные

Ожидаемый результат

Результат теста

Переменная x содержит буквенные символы

x = ”test”

Ошибка. «Была введена строка!»

Пройден

Переменная х имеет значение меньше 1, функция должна вычисляться по первой формуле

x = -1

f_res = -21

Пройден

Переменная х имеет граничное значение в диапазоне от 1 до 2, функция должна вычисляться по второй формуле

x = 1

f_res = 7

Пройден

Переменная х имеет значение в диапазоне от 1 до 2, функция должна вычисляться по второй формуле

x = 1,5

f_res ≈ 4,67

Пройден

Переменная х имеет граничное значение в диапазоне от 1 до 2, функция должна вычисляться по второй формуле

x = 2

f_res = 3,5

Пройден

Переменная х имеет значение больше 2, функция должна вычисляться по третьей формуле

x = 3

f_res = -3,5

Пройден

Ожидаемые результаты вычислялись вручную согласно описанной математической модели.

  1. Примеры работы программы

Далее представлен пример работы написанной программы с подобранными тестовыми значениями (см. рис. 2).

Рисунок 2 – Пример работы программы

Вывод

В ходе выполнения лабораторной работы была реализована программа расчета значения функции с выбором выражения для вычисления в зависимости от величины введенного параметра. Были получены практические навыки написания структурно продуманных программ на языке программирования Python3.

Было проведено тестирование разработанной программы. Во всех случаях полученный результат совпал с ожидаемым, что позволяет сделать вывод о корректной работе созданной программы.

Приложение 1. Листинг программного кода

import math #модуль для мат. операций

#функция проверки введенного числа на сторонние символы

def is_number(inp):

try:

float(inp)

return True

except ValueError:

return False

#основная функция

def LAB2_VAR_19(x):

if is_number(x)==False:

print("Была введена строка!")

return('Error!')

elif x<1:

return(7*(2*x-1))

elif x>=1 and x<=2:

return (3.5*(2/((x-1)+1)))

else:

return (-3.5*(2*(x-2)-1))

#автоматический тестовый сценарий

def TEST_LAB2_VAR_19():

print('ТЕСТ №1: x="test".')

x='test'

f_res=LAB2_VAR_19(x)

if f_res=='Error!':

print('Тест пройден!')

else:

print('Тест не пройден!')

print('\nТЕСТ №2: x=-1.')

x=-1

f_res=LAB2_VAR_19(x)

print("Значение функции равно ", f_res)

if f_res==-21:

print('Тест пройден!')

else:

print('Тест не пройден!')

print('\nТЕСТ №3: x=1.')

x=1

f_res=LAB2_VAR_19(x)

print("Значение функции равно ", f_res)

if f_res==7:

print('Тест пройден!')

else:

print('Тест не пройден!')

print('\nТЕСТ №4: x=1,5.')

x=1.5

f_res=LAB2_VAR_19(x)

print("Значение функции равно ", f_res)

if round(f_res,3)==4.667:

print('Тест пройден!')

else:

print('Тест не пройден!')

print('\nТЕСТ №5: x=2.')

x=2

f_res=LAB2_VAR_19(x)

print("Значение функции равно ", f_res)

if f_res==3.5:

print('Тест пройден!')

else:

print('Тест не пройден!')

print('\nТЕСТ №6: x=3.')

x=3

f_res=LAB2_VAR_19(x)

print("Значение функции равно ", f_res)

if f_res==-3.5:

print('Тест пройден!')

else:

print('Тест не пройден!')

TEST_LAB2_VAR_19() #вызов тестовой функции