Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 18, 2013 21:15:02

Amfibia
От: Moscow
Зарегистрирован: 2013-04-18
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача №3455. Гипотенуза

Дано два числа a и b. Выведите гипотенузу треугольника с заданными катетами.

Офлайн

#2 Апрель 19, 2013 00:21:17

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Задача №3455. Гипотенуза

=) и в чем трудность? это настолько сложное задание что вы не можете справиться самостоятельно?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 19, 2013 06:30:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Задача №3455. Гипотенуза

JOHN_16, зачем троллите новичка?
Amfibia, если по простому, то так.

class Shape(object):
   sides_count = 0
   def __init__(self):
       if self.sides_count<3:
           raise Exception("In the figure should be at least three sides")
       self.initialized = False
       self.initialize_begined = False
       self.sides = list()
   def begin_initialize(self):
       self.initialize_begined = True
       
   def add_side(self,side):
       if not self.initialize_begined:
           raise Exception("The figure should be able to initialize")
       if side<0:
           raise Exception("WHAT?")
       self.sides.append(side)
   def end_initialize(self):
       if not self.initialize_begined:
           raise Exception("The figure should be able to initialize")
       if len(self.sides)>self.sides_count:
           raise Exception("Too much sides")
       if len(self.sides)<self.sides_count:
           raise Exception("Too little sides")
       self.initialize_begined=False
       self.initialized = True
def ShapeFabric(sides_count, name):
    return type(name,(Shape,),{"sides_count":sides_count})
BaseTriangle = ShapeFabric(3, "BaseTriangle")
class Triangle(BaseTriangle):
    
    def normalize(self):
       if len(filter(None,self.sides))==self.sides_count: return
       if len(filter(None,self.sides))<2:
           print "I want two katets"
           return
       katets = [x for x in self.sides if x>0]
       katets_square = map(lambda x: x**2, katets)
       katets_sum = sum(katets_square)
       hypotenuse = math.sqrt(katets_sum)
       self.sides = [katets[0], katets[1], hypotenuse]
triangle = Triangle()
triangle.begin_initialize()
triangle.add_side(3)
triangle.add_side(4)
triangle.add_side(0)
triangle.end_initialize()
triangle.normalize()
print triangle.sides



Офлайн

#4 Апрель 19, 2013 08:26:07

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

Задача №3455. Гипотенуза

Если на python 3, то так:

import math
class Shape(object):
   sides_count = 0
   def __init__(self):
       if self.sides_count<3:
           raise Exception("In the figure should be at least three sides")
       self.initialized = False
       self.initialize_begined = False
       self.sides = list()
   def begin_initialize(self):
       self.initialize_begined = True
       
   def add_side(self,side):
       if not self.initialize_begined:
           raise Exception("The figure should be able to initialize")
       if side<0:
           raise Exception("WHAT?")
       self.sides.append(side)
   def end_initialize(self):
       if not self.initialize_begined:
           raise Exception("The figure should be able to initialize")
       if len(self.sides)>self.sides_count:
           raise Exception("Too much sides")
       if len(self.sides)<self.sides_count:
           raise Exception("Too little sides")
       self.initialize_begined=False
       self.initialized = True
def ShapeFabric(sides_count, name):
    return type(name,(Shape,),{"sides_count":sides_count})
BaseTriangle = ShapeFabric(3, "BaseTriangle")
class Triangle(BaseTriangle):
    
    def normalize(self):
       if len(list(filter(None,self.sides)))==self.sides_count: return
       if len(list(filter(None,self.sides)))<2:
           print("I want two katets")
           return
       katets = [x for x in self.sides if x>0]
       katets_square = map(lambda x: x**2, katets)
       katets_sum = sum(katets_square)
       hypotenuse = math.sqrt(katets_sum)
       self.sides = [katets[0], katets[1], hypotenuse]
triangle = Triangle()
triangle.begin_initialize()
triangle.add_side(3)
triangle.add_side(4)
triangle.add_side(0)
triangle.end_initialize()
triangle.normalize()
print(triangle.sides)

Я тоже считаю, новичкам надо помогать:
http://bit.ly/13t87cE



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Апрель 19, 2013 08:36:16)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version