Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Султонов Фирдавс.docx
Скачиваний:
6
Добавлен:
08.11.2023
Размер:
2.08 Mб
Скачать
  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("")