ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.03.2024
Просмотров: 155
Скачиваний: 0
СОДЕРЖАНИЕ
Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»
Арифметическое выражение лр1: Арифметическое выражение лр2:
Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»
Лабораторная работа №5 «Табулирование функции»
Лабораторная работа №6 «Работа с библиотеками Python»
Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»
3. Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»
1.Задание на разработку проекта
3.Выполнение проекта и получение результатов
4.Доказательство правильности работы программ
Лабораторная работа №9 «Работа с кортежами»
Лабораторная работа №10 «Работа со словарями»
Лабораторная работа №11 «Работа со списками»
Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»
Лабораторная работа №13 «Работа со вложенными последовательностями»
par1 = doc.add_paragraph('Разработать программу, которая запишет результаты табулирования функции в текстовый редактор Word, а так же разместит в нем результаты работы программы')
doc.add_paragraph("_________________________________________________________________________________________________________")
par2 = doc.add_paragraph('Кроме того, разместить результаты работы программы по табулированию функции в Excel')
doc.add_paragraph("_________________________________________________________________________________________________________")
doc.add_picture('C:\\test.png', width = docx.shared.Cm(15))
doc.save('C:\\test.docx')
a = float(input('Нижняя граница: '))
b = float(input('Вверхняя граница: '))
h = float(input('Шаг: '))
workbook = openpyxl.load_workbook('C:\\Tabulirovanie.xlsx')
sheet = workbook.active
sheets = workbook.sheetnames
sheet = workbook.active
def cycle(a, b, h):
n = round((b-a)/h+1)
x = a
for i in range (1, n+1):
z = task(x)
print('x=', x, 'z=', '{0:.3}'.format(z))
cell=sheet.cell(row=i+1,column=1)
cell.value=i
cell=sheet.cell(row=i+1,column=2)
cell.value=z
x += h
workbook.save('C:\\Tabulirovanie.xlsx')
-
Выполнение проекта и получение результатов
Ниже представлены результаты работы программы (Рисунок 1, Рисунок 2):
Рисунок
2 - Записанные в Excel
результаты программы
Рисунок
1
- Результат
работы программы
Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»
-
Задание на разработку проекта
Создать проект для вычисления и отображения на экране тех членов последовательности, значения которых по модулю больше =0.0001, при x=1.5
Для выполнения задания требуется разработать:
-
Функцию func(x, e), предназначенную для вычисления натурального логарифма, воспользовавшись разложением в ряд.
-
В функции func(x, e) осуществить вывод значения функции после подстановки корня.
-
Разработанную функцию поместить в модуль
-
Записать полученные ответы в Excel файл, а также считать данные из Excel файла.
Формализация и уточнение задания:
Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности.
Очевидно, что выражение для n-го члена заданной последовательности имеет вид:
Тогда формула для (n+1) члена последовательности имеет вид:
Разделив an+1 на an получим:
Откуда получаем следующую рекуррентную формулу:
В основной части программы осуществить ввод данных и вывод значении функции после подстановки искомого корня.
-
Разработка алгоритма
Блок-схема функции func(), предназначенная для вычисления натурального логарифма представлена на рисунке 1.
Рисунок 12 - Блок-схема функции func(), предназначенная для вычисления натурального логарифма
На рисунке 2 представлена блок-схема основной части программы.
Рисунок 13 - Блок-схема основной части программы
Ниже представлен код пользовательской функции, а также код основной части программы.
Код пользовательской функции
import openpyxl
def func(x, e):
workbook = openpyxl.load_workbook('C:\\lr7s.xlsx')
sheet = workbook.active
sheets = workbook.sheetnames
n = 0
q = ((2*n+1)*(x-1)**2)/((2*n+3)*((x+1)**2))
s = 0
a = (x-1)/(x+1)
while abs(a) > e:
s = s + a
a = a*q
n = n + 1
print(n, s)
cell=sheet.cell(row=n+1,column=1)
cell.value=n
cell=sheet.cell(row=n+1,column=2)
cell.value=s
sheet.merge_cells('A5:B5')
cell = sheet.cell(row = 5, column =1)
cell.value = 'Значение выражения: '
cell = sheet.cell(row=5, column=3)
cell.value = 2*s
workbook.save('C:\\lr7s.xlsx')
return s
Код основной части программы:
from func import *
import openpyxl
x = float(input("Введите начальное значение x: "))
e = float(input("Введите значение точности e: "))
g = func(x, e)
print('Приближенное значение ln(x) при x = 1.5 равно: ', '{0:.14f}'. format(2*g))
#Чтение из файла
workbook = openpyxl.load_workbook('C:\\lr7s.xlsx')
worksheet = workbook.active
for i in range(0, worksheet.max_row):
for col in worksheet.iter_cols(1, worksheet.max_column):
print(col[i].value, end='\t\t')
print("")
3. Выполнение проекта и получение результатов
Результат работы программы представлен на рисунке 3.
Рисунок 14 - Результат работы
На рисунках 5-6 показаны запись данных в excel файл, а также считывание этих данных.
Рисунок
15 - Записанные в excel
файл результаты программы
Рисунок
16 - Считывание данных из excel
4.Доказательство правильности работы программ
Все выведенные значения последовательности больше 0.0001, и они совпадают с результатом встроенной функции по нахождению логарифма (Рисунок 4).
Рисунок
17 - Результат встроенной функции
Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»
1.Задание на разработку проекта
Разработать на основе использования библиотеки Tkinter программу решения заданной согласно варианту системы.
Для выполнения задания требуется разработать:
-
Класс Application(Frame), для рисовки GUI.
-
Функцию func(self), предназначенную для решения системы.
-
В функции func(self) осуществить подстановку ответа в пользовательском интерфейсе программы.
-
Метод widget(self), предназначенный для отображения пользовательского интерфейса.
-
В методе widget(self), осуществить отображение и ввод значений a, b, x, y пользователем, а также осуществить вывод ответа.
В основной части программы импортировать нужные библиотеки, а также задать параметры пользовательского интерфейса, а именно название и размер отображаемого окна.
2.Разработка алгоритма
Код программы
import math
from tkinter import *
class Application(Frame):
def __init__(self, fr):
super(Application, self).__init__(fr)
self.grid()
self.widget()
class Application(Frame):
def __init__(self, fr):
super(Application, self).__init__(fr)
self.grid()
self.widget()
def func(self):
x = float(self.textbox1.get())
y = float(self.textbox2.get())
a = float(self.textbox3.get())
b = float(self.textbox4.get())
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)
self.textbox5.insert(0.0, r)
def widget(self):
self.lbl1 = Label(self, text = 'Введите х:', font=('Times New Roman', 16), fg = 'blue')
self.lbl1.grid(row = 0, column = 0)
self.textbox1 = Entry(self, width = 67, font=('Times New Roman', 16))
self.textbox1.grid(row = 1, column = 0)
self.lbl2 = Label(self, text = 'Введите y:', font=('Times New Roman', 16), fg = 'blue')
self.lbl2.grid(row = 2, column = 0)
self.textbox2 = Entry(self, width = 67, font=('Times New Roman', 16))
self.textbox2.grid(row = 3, column = 0)
self.lbl3 = Label(self, text = 'Введите a:', font=('Times New Roman', 16), fg = 'blue')
self.lbl3.grid(row = 4, column = 0)
self.textbox3 = Entry(self, width = 67, font=('Times New Roman', 16))
self.textbox3.grid(row = 5, column = 0)
self.lbl4 = Label(self, text = 'Введите b:', font=('Times New Roman', 16), fg = 'blue')
self.lbl4.grid(row = 6, column = 0)
self.textbox4 = Entry(self, width = 67, font=('Times New Roman', 16))
self.textbox4.grid(row = 7, column = 0)
self.btn = Button(self, font=('Times New Roman', 14, "bold"), fg = 'red')
self.btn['text'] = 'Вычислить функцию'
self.btn['command'] = self.func
self.btn['width'] = 20
self.btn['height'] = 2
self.btn.grid(row = 8, column = 0)
self.lbl5 = Label(self, text = 'Значение функции:', font=('Times New Roman', 14), fg = 'green')
self.lbl5.grid(row = 9, column = 0)
self.textbox5 = Text(self, width = 30, height = 1, font = ("Times New Roman", 14))
self.textbox5.grid(row = 10, column = 0)
root = Tk()
root.title('Многозначные ветвления')
root.geometry('743x400')
app = Application(root)