Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2019, 13:44   #1
print_Alex
Пользователь
 
Регистрация: 24.07.2019
Сообщений: 52
Стрелка Классы. Python

1. Напишите класс Fraction для работы с дробями. Пусть дробь в нашем классе предстает в виде числитель/знаменатель. Дробное число должно создаваться по запросу Fraction(a, b), где a – это числитель, а b – знаменатель дроби.

2. Добавьте возможность взятия разности (вычитания через оператор вычитания) для дробей. Предполагается, что операция вычитания может проводиться как только для двух дробей, так и для дроби и целого числа. Результат операции должен быть представлен в виде дроби.

3. Добавьте возможность приведения дроби к целому числу через стандартную функцию int().

4. Создайте дочерний класс OperationsOnFraction и добавьте туда собственные методы getint и getfloat, которые будут возвращаясь целую часть дроби и представление дроби в виде числа с плавающей точкой соответственно.

Есть небольшая заготовка:

Код:
class Fraction:
    
    def __init__(self, a, b):
        self.a = a
        self.b = b
        
    def __str__(self):
        return '{0}/{1}'.format("a", "b")
    
     
    def add(self):
        return str(self.a)+"+"+str(self.b)
    
    def subtraction(self):
        return str(self.a)+"-"+str(self.b)
    
    def generation(self):
        return "{} * {}".format(self.a, self.b)
    
class OperationsOnFraction(Fraction):
    
    def getint(self):
        pass
    
    def getfloat(self):
        pass
    
    
    
shot = Fraction(56, 14)

print(shot)
За каждый пункт готов заплатить 75 руб.
print_Alex вне форума Ответить с цитированием
Старый 12.12.2019, 15:14   #2
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 184
По умолчанию

Цитата:
Сообщение от print_Alex Посмотреть сообщение
За каждый пункт готов заплатить 75 руб.
Издеваешься?

Вы вроде на kwork публиковали объявления я Вам там минимальную что можно цену указал (500р).
Мое предложение в силе. "Чудо-заготовки" мне не нужны они не годятся, у меня есть свои наработки на С++.

Последний раз редактировалось Avazart; 12.12.2019 в 15:20.
Avazart вне форума Ответить с цитированием
Старый 12.12.2019, 16:43   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Не люблю бессмысленных заданий.. В чём глубинный смысл класса OperationsOnFraction?

Это типа
Код:
x = OperationsOnFraction(p, q)
print(x.getint(), x.getfloat())
Бред какой-то, извините
Black Fregat вне форума Ответить с цитированием
Старый 12.12.2019, 22:32   #4
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 184
По умолчанию

Да особого смысла искать в учебных заданиях наверное нет смысла, это тупо класс что бы показать наследование.
Avazart вне форума Ответить с цитированием
Старый 07.01.2021, 17:36   #5
boomix
Новичок
Джуниор
 
Регистрация: 07.01.2021
Сообщений: 0
Подмигивание я сделала для OperationsOnFraction

полностью готовый код с объяснениями за 150 рублей. писать на эту почту dubrovskayaalisia@yandex.ru

Последний раз редактировалось boomix; 08.01.2021 в 13:10.
boomix вне форума Ответить с цитированием
Старый 08.01.2021, 14:54   #6
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Пишите: larbossfreelance@yandex.ru
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 14.01.2021, 11:11   #7
boomix
Новичок
Джуниор
 
Регистрация: 07.01.2021
Сообщений: 0
Счастье ловите

class Fraction:

def __init__(self, a, b):
self.a = a
self.b = b

def __str__(self):
return str(self.a) + "/" + str(self.b)
def show(self):
print(self.a, "/", self.b, sep=" ")

def __add__(self, otherfraction):
if isinstance(otherfraction, int):
y = otherfraction * self.b + self.a
z = self.b
else:
y = self.a * otherfraction.b + self.b * otherfraction.a # числитель
z = self.b * otherfraction.b # знаменатель
return Fraction(y, z)

def __sub__(self, otherfraction):
if isinstance(otherfraction, int):
y = otherfraction * self.b - self.a
z = self.b
else:
if self.a * otherfraction.b - self.b * otherfraction.a == 0:
y = 1
z = self.b * otherfraction.b
if self.a * otherfraction.b - self.b * otherfraction.a != 0:
y = self.a * otherfraction.b - self.b * otherfraction.a
z = self.b * otherfraction.b
return Fraction(y, z)

def __mul__(self, otherfraction):
if isinstance(otherfraction, int):
y = otherfraction * self.a
z = self.b
else:
y = self.a * otherfraction.a
z = self.b * otherfraction.b
return Fraction(y, z)

def __truediv__(self, otherfraction):
if isinstance(otherfraction, int):
y = otherfraction * self.b
z = self.a
else:
y = self.a * otherfraction.b
z = self.b * otherfraction.a
return Fraction(y, z)

def __int__(self):
y = self.a // self.b
return y
print(y)

def __float__(self):
y =self.a / self.b
return y
print(y)


class OperationsOnFraction (Fraction):

def getint(self):
super().__int__(self)

def getfloat(self):
super().__float__(self)

ac_1 = int(input("Введите числитель 1 дроби: "))
bd_1 = int(input("Введите знаминатель 1 дроби: "))
rezult_1 = Fraction(ac_1,bd_1)
print(rezult_1)
ac_2 = int(input("Введите числитель 2 дроби: "))
bd_2 = int(input("Введите знаминатель 2 дроби: "))
rezult_2 = Fraction(ac_2,bd_2)
print(rezult_2)

slog = rezult_1 + 7
print("сложение: " ,slog)
vicht = rezult_1 - 6
print("вычитание: ",vicht)
ymnog = rezult_1 * 8
print("умножение: ",ymnog)
delen = rezult_1 / 6
print("деление: ",delen)

print("целое число: ",int(rezult_1))
print("обыкновенная дробь: ",float(rezult_1))

ac_3 = int(input("Введите числитель 3 дроби: "))
bd_3 = int(input("Введите знаминатель 3 дроби: "))
rezult_3 = OperationsOnFraction(ac_3,bd_3)
print(rezult_3.getint())
print(rezult_3.getfloat())
boomix вне форума Ответить с цитированием
Старый 14.01.2021, 12:12   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Выложить на халяву код и перебить кому-то небольшую халтурку? Ну-ну...
Получишь за это от Larboss ата-та по попе
Хорошо ещё, если код кривой, тогда заказ остался бы в силе.
-----
Прямо кризис какой-то: берутся выполнять халтурку за жалкие 2$
digitalis вне форума Ответить с цитированием
Старый 15.01.2021, 12:50   #9
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

digitalis
Цитата:
Выложить на халяву код ...
Халявный код лежит под носом у ТС.
Это готовые библиотечные модули decimal.py и fractions.py, которые лежат, например, тут: ..\WPy64-3830\python-3.8.3.amd64\Lib

Конечно же там надо подработать под себя любимого, но ...
И да, за работу надо платить.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 15.01.2021, 14:18   #10
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Прямо кризис какой-то: берутся выполнять халтурку за жалкие 2$
И надеются что ТС от декабря 2019 ждет именно их решений :D
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Python] Нужно решить в среду вечером 5 -6 заданий для начинающих на языку Python. Пример заданий смогу выслать. Задания на английском языке. foxylen Фриланс 2 17.03.2019 12:30
Python help Kadet12 Помощь студентам 1 01.02.2019 16:51
ИЗ Си в Python clav9nski Python 1 09.04.2018 08:26
Начальный уровень Python. Функции - Python YYYUUU Python 5 09.06.2017 12:09