Министерство цифрового развития, связи и массовых коммуникаций РФ Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ» (МТУСИ) Кафедра «Информатика» Лабораторные работы по дисциплине «Информационные технологии и программирование» Вариант №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