ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.03.2024
Просмотров: 177
Скачиваний: 0
СОДЕРЖАНИЕ
Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»
Арифметическое выражение лр1: Арифметическое выражение лр2:
Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»
Лабораторная работа №5 «Табулирование функции»
Лабораторная работа №6 «Работа с библиотеками Python»
Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»
3. Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»
1.Задание на разработку проекта
3.Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №9 «Работа с кортежами»
Лабораторная работа №10 «Работа со словарями»
Лабораторная работа №11 «Работа со списками»
Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»
Лабораторная работа №13 «Работа со вложенными последовательностями»
Министерство цифрового развития, связи и массовых коммуникаций РФ
ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ»
Кафедра «Информатика»
Лабораторные работы
По дисциплине «Информационные технологии и
программирование (1 часть)»
Вариант №16
Выполнил:
студент группы БУТ2201
Султонов Ф. С
Проверил:
Доц. Кафедры «Информатика»
К.п.н Гуриков С.Р
Москва, 2022
Оглавление
Лабораторная работа №1…………………………………………………………3
Лабораторная работа №2…………………………………………………………8
Лабораторная работа №3………………………………………………………..15
Лабораторная работа №4………………………………………………………..34
Лабораторная работа №5………………………………………………………..41
Лабораторная работа №6………………………………………………………..47
Лабораторная работа №7………………………………………………………..52
Лабораторная работа №8………………………………………………………..60
Лабораторная работа №9………………………………………………………..67
Лабораторная работа №10..……………………………………………………..72
Лабораторная работа №11………………………………………………………82
Лабораторная работа №12………………………………………………………89
Лабораторная работа №13………………………………………………………99
Дополнительное задание.....……………………………………………………112
Лабораторная работа №1 «Запись арифметических выражения на языке Python. Обработка исключений. Запись информации в текстовый файл. Создание пользовательских функций»
-
Задание на разработку проекта
Записать арифметическое выражение на языке Python, написать программу расчёта этого арифметического выражения, вывести полученный результат, применить к полученному результату следующие функции: math.сeil(), math.trunc(), math.floor(), round(), результаты вывести на экран, далее, осуществить запись всех результатов в текстовый файл.
Для выполнения задания следовало разработать:
- Пользовательскую функцию math_solution(x), предназначенную для решения заданного уравнения.
- В пользовательской функции math_solution(x), осуществить решение задания, а также вывод ответа.
В основной части программы осуществить ввод значения, применение округления различных видов к полученному результату через встроенные функции math.сeil(), math.trunc(), math.floor(), round(), а также записать полученные результаты в текстовый файл
-
Разработка алгоритма
На рисунке 1 показана блок-схемы пользовательской функции math_solution()
Рисунок
1 - Блок-схема функции math_solution(),
которая решает уравнение
На рисунке 2 показана блок-схема основной части программы.
Рисунок
2 - Блок-схема основной части программы
Ниже представлен код пользовательской функции и основной части программы
Код пользовательской функции
def math_solution(x):
y = math.sqrt(math.exp(2*x) * math.sqrt(x) + ((x-1/3)/x)) * math.fabs(math.cos(2.5*x))
return y
Код основной части программы
import math
x = float(input(‘\n Введите число: ‘))
v = math_solution(x)
print('Ответ арифметического выражения:', v)
s = math.ceil(v)
d = math.trunc(v)
w = math.floor(v)
z = round(v, 3)
print('Округление до ближайшего большего числа:', s)
print('Целая часть числа равна:', d)
print('Округление числа вниз:', w)
print('Округление числа Y до 3:', z)
f = open(‘text.txt’, ‘a’)
f.write('Ответ арифметического выражения:: '+ str(v))
f.write('\nОкругление до ближайшего большего числа: '+ str(s))
f.write('\nЦелая часть числа равна: '+ str(d))
f.write('\nОкругление числа вниз: '+ str(w))
f.write('\nОкругление числа Y до 3: '+ str(z))
f.close()
-
Выполнение проекта и получение результатов
Ниже представлен результат работы программы (Рисунок 3):
Рисунок 3 - Полученные результаты
На рисунке 4 представлен результат записи ответов в текстовый файл:
Рисунок
4 - Записанные в текстовый файл ответы
Лабораторная работа №2 «Программирование алгоритмов разветвляющихся структур. Нахождение максимального и минимального значения»
-
Задание на разработку проекта
Согласно варианту задания, запрограммировать систему кусочно-ломанной функции.
Для выполнения задания следовало разработать:
- Пользовательскую функцию minl(x, a, y, b) для поиска минимального и максимального значения
- Пользовательскую функцию minl(x, a, y, b) разместить в модуле
В основной части программы импортировать пользовательскую функцию, осуществить перехват исключений, записать полученные ответы в текстовый файл и записать лог-файл.
Формализация задания
Для того чтобы записать лог-файл и реализовать перехват исключений
необходимо импортировать для начала библиотеку logging и написать код ‘logging.basicConfig(filename = 'log.txt', level = logging.INFO)’ который будет задавать путь к файлу в котором будут сохраняться данные лог-файла. Далее, чтобы реализовать перехват исключений нужно воспользоваться конструкцией
‘try:
except Exception as e:’, в котором первая часть будет пытаться выполнить код, в случае ошибки будет выполнена вторая часть конструкции. Во второй части конструкции нужно написать ‘logging.error(str(e))’, который будет записывать ошибки в лог-файл.
-
Разработка алгоритма
Ниже представлена блок-схема функции minl() (Рисунок 1):
Рисунок
1 - Блок-схема функции minl(),
для нахождения минимального и
максимального значения
На рисунке 2 показана блок-схема основной части программы.
Рисунок
2 - Блок-схема основной части программы
Ниже представлен код пользовательской функции основной части программы:
Код пользовательской функции
def minl(x, y, a, b):
if x > 0:
r = x**3 + (math.log(x + a))**2
elif x <= 0 and y <= 0:
if abs(x) + a > abs(y) + b:
minim1 = abs(y) + b
else:
minim1 = abs(x) + a
if a > x:
minim2 = x
else:
minim2 = a
if minim1 > minim2:
r = minim2
else:
r = minim1
else:
if math.e**(a+b) < math.log(x**2 + y**2)**2:
r = math.log(x**2 + y**2)**2
else:
r = math.e**(a+b)
return r
Код основной части программы
import math
import logging
from mindef import *
logging.basicConfig(filename = 'log.txt', level = logging.INFO)
a = float(input('Введите значенние a: '))
b = float(input('Введите значенние b: '))
x = float(input('Введите значенние x: '))
y = float(input('Введите значенние y: '))
rez = minl(x, y, a, b)
print('Результат выражения: ' + str(rez))
try:
print("Открытие файла...")
f = open('lab2.txt', 'a')
f.write('\nВходные параметры: a = ' + str(a) + ' b = ' + str(b) + ' x = ' + str(x) + ' y = ' + str(y))
f.write('\nОтвет полученного выражения: ' + rez)
f.close()
print('Данные успешно записаны в файл!')
except Exception as e:
print('Что-то пошло не так')
logging.error(str(e))
-
Выполнение проекта и получение результатов
Ниже на рисунках 3-5 представлены результаты работы программы
Рисунок
3 - Тестирование 3-х веток программы
Рисунок 5 - Запись в лог файл
Рисунок
4 - Записанные в текстовый файл результаты
программы
Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»
Часть 1
Упражнение 2.1
-
Задание на разработку проекта
Создания класса, объекты которого представляют расстояния, выраженные в метрической системе мер.
Для выполнения задания следовало разработать:
-
Класс Dist.
-
Атрибуты класса Dist – meters и centimeters.
-
Метод set_dist(self, mt, ct) для инициализации атрибутов класса
-
Метод get_dist(self) для ввода значений атрибутов
-
Метод show_dist(self) для вывода значений атрибутов
-
3 объекта класса Dist: dist1, dist2 и dist3.
В основной части программы задать параметры dist2 равным 14,25. Вывести значения всех атрибутов класса.
-
Разработка алгоритма
Код программы представлен в Листинге 1
Листинг 1
class Dist:
meters, centimeters = 0, 0.0
def set_dist(self, mt, ct):
self.meters = mt
self.centimeters = ct
def get_dist(self):
self.meters = int(input('Введите число метров: '))
self.centimeters = float(input('Введите число сантиметров '))
def show_dist(self):
print('{0} м {1} см'.format(self.meters, self.centimeters))
dist1 = Dist()
dist2 = Dist()
dist3 = Dist()
dist2.set_dist(14,25.)
dist3.get_dist()
print('dist1 = ', end = '')
dist1.show_dist()
print('dist2 = ', end = '')
dist2.show_dist()
print('dist3 = ', end = '')
dist3.show_dist()
-
Выполнение проекта и получение результатов.
Результат работы программы представлен на Рисунке 1:
Рисунок
1
- Результат
работы первой программы