Uploaded by Anton Arzhevikin

Лаба2

advertisement
Министерство цифрового развития, связи и массовых коммуникаций РФ
Ордена Трудового Красного Знамени федеральное государственное бюджетное
образовательное учреждение высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И
ИНФОРМАТИКИ» (МТУСИ)
Кафедра «Информатика»
Лабораторные работы
по дисциплине «Информационные технологии и программирование»
Вариант №2
Выполнил:
Студент группы БАП2251
Аржевикин А.А.
Проверил:
доц. кафедры «Информатика»
к.п.н. Гуриков С. Р.
Москва, 2023
Лабораторная работа №2
«Программирование алгоритмов разветвляющихся структур. Нахождение
максимального и минимального значений»
2
1.
Введение в задание.
Вариант 2
Исходные данные:
1 − 𝑒 𝑥𝑦+𝑎𝑏 ,
𝑧 = { 𝑏 − min{𝑎𝑥, 𝑦} ,
если 𝑥𝑦 > 0
если 𝑥𝑦 = 0
max {𝑥 3 , 𝑒 𝑦 , √|𝑙𝑛𝑦 2 |} ,
если 𝑥𝑦 < 0
В данной лабораторной работе нам необходимо написать программу на
языке python, выполняющую вычисление выражения из системы кусочноломаной функции, в зависимости от значений переменных.
Для начала необходимо написать программу-модуль, используя одну
пользовательскую функцию, в которой описываются инструкции по выбору
ветви системы и расчёт выражения.
После чего в лабораторной работе нужно написать основную программу
ввода переменных, вызова модуля с пользовательской функцией. Затем вывести
полученные результаты на экран и сохранить их в текстовый файл. Также
нужно помнить про перехват исключений, который не приведёт к случайному
завершению программы, избежит сбоев в работе написанного алгоритма.
3
2. Модуль с пользовательской функцией.
На рисунке 1 представлен алгоритм вычисления арифметического
выражения.
Рисунок 1 – Алгоритм вычисления арифметического выражения
4
Программа, написанная на языке Python
import math
def znach(a, b, x, y):
if (x*y) < 0:
max = (x ** 3)
if math.exp(y) > max:
max = math.exp(y)
if math.sqrt(abs(math.log(y ** 2))) > max:
max = math.sqrt(abs(math.log(y ** 2)))
z = max
n = 3
# Номер ветви
elif (x*y) == 0:
min = a * x
if y < min:
min = y
z = (b - min)
n = 2
# Номер ветви
else:
z = (1 - math.exp(x * y + a * b))
n = 1
# Номер ветви
return z, n
Результат работы данной программы будет наглядно показан в
дальнейшем выполнении лабораторной работы. Данный модуль будет
использоваться в основной программе.
5
3. Основная программа
Теперь нам необходимо написать основную программу, в которой мы
будем вводить переменные, вызывать ранее написанный модуль с
пользовательской функцией, в которой происходят все необходимые операции
и вычисления, выполнять вывод значений и их запись в текстовый файл, а так
же обеспечим перехват исключений, который не приведёт к случайному
завершению программы и избежит сбоев в работе написанного алгоритма в
случае неверного выбора модуля или пути к нему.
На рисунке 2 представлен алгоритм выполнения основной программы
Рисунок 2 – Алгоритм для создания функции
6
На языке python основную программу напишем так:
try:
import modul_Lab2
a = float(input('Введите значение a: '))
b = float(input('Введите значение b: '))
x = float(input('Введите значение x: '))
y = float(input('Введите значение y: '))
z, n = modul_Lab2.znach(a, b, x, y)
print("\nНомер ветви", n)
print("\nРезультат z =", z)
file = open ('Lb2.txt', 'w')
file.write("Результат z - " + str(z))
file.write("\nНомер ветви - " + str(n))
file.write("\nЗначение a - " + str(a))
file.write("\nЗначение b - " + str(b))
file.write("\nЗначение x - " + str(x))
file.write("\nЗначение y - " + str(y))
file.close()
except:
print("Ошибка. Возможно, выбран неверный модуль")
input("Program successful")
Результаты работы приведенной программы представлены на рисунках
3.1, 3.2 и 3.3
Рисунок 3.1 - Результат выполнения программы, когда xy>0 (1 ветвь
системы уравнений из задания)
7
Рисунок 3.2 – Результат выполнения программы, когда xy=0 (2 ветвь
системы уравнений из задания)
Рисунок 3.3 - Результат выполнения программы, когда xy<0 (3 ветвь
системы уравнений из задания)
8
Список используемых источников
1. Гуриков, С. Р. Основы алгоритмизации и программирования на Python :
учебное пособие / С.Р. Гуриков. — Москва : ИНФРА-М, 2022. — 343 с. —
(Высшее образование: Бакалавриат). - ISBN 978-5-16-017142-5. - Текст :
электронный. - URL: https://znanium.com/catalog/product/1356003
9
Download