Файл: Лабораторные работы Султонов Фирдавс.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 14.03.2024

Просмотров: 145

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Лабораторная работа №1 «Запись арифметических выражения на языке Python. Обработка исключений. Запись информации в текстовый файл. Создание пользовательских функций»

Лабораторная работа №2 «Программирование алгоритмов разветвляющихся структур. Нахождение максимального и минимального значения»

Лабораторная работа №3 «Создание классов. Создание экземпляров классов. Создание конструкторов»

Часть 1

2 Часть

Арифметическое выражение лр1: Арифметическое выражение лр2:

Лабораторная работа №4 «Создание меню в Python-программе. Инкапсуляция»

Лабораторная работа №5 «Табулирование функции»

Лабораторная работа №6 «Работа с библиотеками Python»

Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»

3. Выполнение проекта и получение результатов

4.Доказательство правильности работы программ

Лабораторная работа №8 «Программирование Python-приложений с использованием библиотеки Tkinter»

1.Задание на разработку проекта

2.Разработка алгоритма

3.Выполнение проекта и получение результатов

4.Доказательство правильности работы программ

Лабораторная работа №9 «Работа с кортежами»

Лабораторная работа №10 «Работа со словарями»

1 Часть

2. Разработка алгоритма

2 Часть

Лабораторная работа №11 «Работа со списками»

Лабораторная работа №12 «Базовые алгоритмы обработки списков и их сортировка»

Лабораторная работа №13 «Работа со вложенными последовательностями»

Дополнительное задание «Реализация пошаговой детализации»

3. Выполнение проекта и получение результатов

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. Выполнение проекта и получение результатов

Ниже представлены результаты работы программы (Рисунок 1, Рисунок 2):

Рисунок 2 - Записанные в Excel результаты программы

Рисунок 1 - Результат работы программы

Лабораторная работа № 7 «Создание приложений, использующих итеративные циклические структуры»

  1. Задание на разработку проекта

Создать проект для вычисления и отображения на экране тех членов последовательности, значения которых по модулю больше =0.0001, при x=1.5

Для выполнения задания требуется разработать:

  1. Функцию func(x, e), предназначенную для вычисления натурального логарифма, воспользовавшись разложением в ряд.

  2. В функции func(x, e) осуществить вывод значения функции после подстановки корня.

  3. Разработанную функцию поместить в модуль

  4. Записать полученные ответы в Excel файл, а также считать данные из Excel файла.

Формализация и уточнение задания:

Для решения поставленной задачи необходимо вывести рекуррентную формулу вычисления члена последовательности.

Очевидно, что выражение для n-го члена заданной последовательности имеет вид:

Тогда формула для (n+1) члена последовательности имеет вид:

Разделив an+1 на an получим:

Откуда получаем следующую рекуррентную формулу:

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

  1. Разработка алгоритма

Блок-схема функции 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 программу решения заданной согласно варианту системы.

Для выполнения задания требуется разработать:

  1. Класс Application(Frame), для рисовки GUI.

  2. Функцию func(self), предназначенную для решения системы.

  3. В функции func(self) осуществить подстановку ответа в пользовательском интерфейсе программы.

  4. Метод widget(self), предназначенный для отображения пользовательского интерфейса.

  5. В методе 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)