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

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

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

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

Добавлен: 14.03.2024

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

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

Упражнение 2.2

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

Создать пустой класс MyClass и атрибут x объекта класса равным 100. Создать два экземпляра класса obj1 и obj2 и добавить одноимённый атрибут y для первого экземпляра класса равным 10, для второго равным 20.

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

  • Пустой класс MyClass

  • Атрибут класса MyClass.x и задать параметр равным 100.

  • Два экземпляра obj1 и obj2 класса MyClass()

  • Экземплярам obj1 и obj2 добавить одноименные атрибуты y

  • Для экземпляра obj1.y задать параметр 10

  • Для экземпляра obj2.y задать параметр 20

В основной части программы вывести значения экземпляров класса.

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

Код программы представлен в Листинге 2

Листинг 2

class MyClass:

pass

MyClass.x = 100

obj1, obj2 = MyClass(), MyClass()

obj1.y = 10

obj2.y = 20

print('obj1.x = {0} obj1.y = {1}'.format(obj1.x, obj1.y))

print('obj2.x = {0} obj2.y = {1}'.format(obj2.x, obj2.y))

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

Результат работы программы представлен на Рисунке 2:

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

Упражнение 2.3


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

Демонстрация различия между атрибутами объектов класса и атрибутами экземпляров класса.

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

  • Класс MyClass.

  • В классе MyClass добавить атрибут x равный 10

  • Метод __init__(self) для определения атрибута экземпляра класса y равного 20.

  • Экземпляры класса obj1 и obj2.

В основной части программы изменить значение x на 50 и y для экземпляра класса obj1 равного 90. Создать новый x для экземпляра класса obj2 равного 60 и изменить значение атрибута объекта класса MyClass.x на 80 и вывести все атрибуты класса.

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

Код программы представлен в Листинге 3

Листинг 3

class MyClass:

x = 10

def __init__(self):

self.y = 20

obj1, obj2 = MyClass(), MyClass()

print('obj1.x = {0} obj2.x = {1}'.format(obj1.x, obj2.x))

MyClass.x = 50

print('obj1.x = {0} obj2.x = {1}'.format(obj1.x, obj2.x))

print('obj1.y = {0} obj2.y = {1}'.format(obj1.y, obj2.y))

obj1.y = 90

print('obj1.y = {0} obj2.y = {1}'.format(obj1.y, obj2.y))

obj2.x = 60

MyClass.x = 80

print('obj1.x = {0} obj2.x = {1} MyClass.x = {2}'.format(obj1.x, obj2.x, MyClass.x))

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

Результат работы программы представлен на Рисунке 3:

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

Упражнения 2.4

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

Инициализация объектов класса помощью конструктора

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

  • Класс Dist()

  • Метод __init__(self, mt, ct) для инициализации атрибутов класса.

  • В методе __init__(self, mt, ct) реализовать вывод надписи “Конструктор работает”

  • Метод get_dist(self) для получения значений с клавиатуры.

  • Метод show_dist(self) для вывода значений атрибутов.

  • Создать 3 объекта класса Dist(): dist1, dist2 и dist3.

В основной части программы для объектов dist1 и dist2 задать параметры 0, 0.0 и 14, 25 соответственно. Для dist3 параметры вводит пользователь. Вывести значения всех объектов с помощью метода show_dist(self).

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

Код программы представлен в Листинге 4

Листинг 4


class Dist:

def __init__(self, mt, ct):

self.meters = mt

self.centimeters = ct

print('Работает контруктор')

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(0, 0.0)

dist2 = Dist(14, 25.)

dist3 = Dist(0, 0.0)

dist3.get_dist()

print('dist1 = ', end = '')

dist1.show_dist()

print('dist2 = ', end = '')

dist2.show_dist()

print('dist = ', end = '')

dist3.show_dist()

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

Результат работы программы представлен на Рисунке 4:

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

2 Часть

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

Создать класс с методом конструктора, в котором есть метод расчета варианта из ЛР 1 и в котором есть три метода для каждой ветви системы расчета кусочно-ломанной функции из ЛР2.


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

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

  • Класс Lab(a, b, x, y) в котором создать 4 метода

  • Метод resh0(self) для решения арифметического выражения из ЛР1

  • Методы resh1(self), resh2(self) и resh3(self) предназначенные для решения 3-х веток кусочно-ломанной функции из ЛР2

  • В каждом методе организовать вывод ответа, после подстановки значений

В основной части программы реализовать объявление класса, ввод значений, а также вывод ответов после подстановки значений.

Формализация задания:

Для объявления класса в языке программирования Python надо воспользоваться оператором class, после этого нужно задать имя классу. Для инициализации значений надо воспользоваться методом __init__(self) и инициализировать значения a, b, x, y. После создать 4 метода, которые решают арифметические выражения.

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

Ниже представлена блок-схема метода resh0(), который решает арифметическое выражение из ЛР№1

Рисунок 5 - Блок-схема функции resh0(), для решения арифметического выражения из ЛР№1

На рисунке 6 показана блок-схема метода resh1(), который решает условие 1-ой ветки из ЛР№2

Рисунок 6 - Блок-схема метода resh1(), который решает условие из 1-ой ветки ЛР№2

На рисунке 7 показана блок-схема метода resh2(), который решает условие 2-ой ветки из ЛР№2

Рисунок 7 - Блок-схема метода resh2(), который решает условие 2-ой ветки из ЛР№2

На рисунке 8 показана блок-схема метода resh3(), который решает условие 3-ей ветки из ЛР№2

Рисунок 8 - Блок-схема метода resh3(), который решает условие 3-ей ветки из ЛР№2

На рисунке 5 показана блок-схема основной части программы

Рисунок 5 - Блок-схема основной части программы


Код программы

import math

class Lab():

def __init__(self, a, b, x, y):

self.x = x

self.y = y

self.a = a

self.b = b

def resh0(self):

h = math.sqrt(math.exp(2*self.x) * math.sqrt(self.x) + ((self.x-1/3)/self.x)) * math.fabs(math.cos(2.5*self.x))

return h

def resh1(self):

r = x**3 + (math.log(x + a))**2

return r

def resh2(self):

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

return r

def resh3(self):

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

a = float(input('Введите значение a: '))

b = float(input('Введите значение b: '))

x = float(input('Введите значение x: '))

y = float(input('Введите значение y: '))

rez = Lab(a, b, x, y)

print('Результат ЛР1: ', rez.resh0())

if x > 0:

j = rez.resh1()

elif x <= 0 and y <= 0:

j= rez.resh2()

else:

j = rez.resh3()

print('Результат ЛР2: ', j)