Python - Crear una clase llamada Punto y Rectángulo. (Problema con "math")

 
Vista:
sin imagen de perfil
Val: 58
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por DANI (24 intervenciones) el 24/04/2021 14:52:26
2021-04-24-2
2021-04-24-3
2021-04-24-4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
class Punto:
    def __init__(self, coordenada_X=0, coordenada_Y=0):
 
        self.coordenada_X = coordenada_X
        self.coordenada_Y = coordenada_Y
 
    def __str__(self):
        return  "({}, {})".format(self.coordenada_X, self.coordenada_Y)
 
    def cuadrante(self):
        if self.coordenada_X > 0 and self.coordenada_Y > 0:
            print("{} pertenece al primer cuadrante".format(self))
        elif self.coordenada_X < 0 and self.coordenada_Y > 0:
            print("{} pertenece al segundo cuadrante".format(self))
        elif self.coordenada_X < 0 and self.coordenada_Y < 0:
            print("{} pertenece al tercer cuadrante".format(self))
        elif self.coordenada_X > 0 and self.coordenada_Y < 0:
            print("{} pertenece al cuarto cuadrante".format(self))
        elif self.coordenada_X != 0 and self.coordenada_Y == 0:
            print("{} se sitúa sobre el eje X".format(self))
        elif self.coordenada_X == 0 and self.coordenada_Y != 0:
            print("{} se sitúa sobre el eje Y".format(self))
        else:
            print("{} se encuentra sobre el origen".format(self))
 
    def vector(self, p):
        print("El vector entre {} y {} es ({}, {})".format(
            self, p, p.coordenada_X - self.coordenada_X, p.coordenada_Y - self.coordenada_Y) )
 
    def distancia(self, p):
        d = math.sqrt ( (p.coordenada_X - self.coordenada_X)**2 + (p.coordenada_Y - self.coordenada_Y)**2 )
        print("La distancia entre los puntos {} y {} es {}".format(
            self, p, d))
 
class Rectangulo:
    def __init__(self, pInicial=Punto(), pFinal=Punto()):
        self.pInicial = pInicial
        self.pFinal = pFinal
 
    def base(self):
        print("La base del rectángulo es {}".format( self.vBase ) )
 
    def altura(self):
        print("La altura del rectángulo es {}".format( self.vAltura ) )
 
    def area(self):
        print("El área del rectángulo es {}".format( self.vArea ) )
 
class Rectangulo:
    def __init__(self, pInicial=Punto(), pFinal=Punto()):
        self.pInicial = pInicial
        self.pFinal = pFinal
 
        self.vBase = abs(self.pFinal.x - self.pInicial.x)
        self.vAltura = abs(self.pFinal.y - self.pInicial.y)
        self.vArea = self.vBase * self.vAltura
 
    def base(self):
        print("La base del rectángulo es {}".format( self.vBase ) )
 
    def altura(self):
        print("La altura del rectángulo es {}".format( self.vAltura ) )
 
    def area(self):
        print("El área del rectángulo es {}".format( self.vArea ) )
 
 
 
A = Punto(2,3)
B = Punto(5,5)
C = Punto(-3, -1)
D = Punto(0,0)
 
A.cuadrante()
C.cuadrante()
D.cuadrante()
 
A.vector(B)
B.vector(A)
 
 
 
A.distancia(B)
B.distancia(A)
 
A.distancia(D)
B.distancia(D)
C.distancia(D)
 
R = Rectangulo(A, B)
R.base()
R.altura()
R.area()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por tincopasan (1082 intervenciones) el 24/04/2021 16:15:16
¿y en que parte del código importas math?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 58
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por DANI (24 intervenciones) el 24/04/2021 16:26:28
Hola tincopasan, muy buenas tardes.
En la clase Punto:

1
2
3
4
def distancia(self, p):
d = math.sqrt ( (p.coordenada_X - self.coordenada_X)**2 + (p.coordenada_Y - self.coordenada_Y)**2 )
print("La distancia entre los puntos {} y {} es {}".format(
self, p, d))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por tincopasan (1082 intervenciones) el 24/04/2021 18:24:50
eso no es importarla es intentar usarla!
1
import math

eso es importarla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 58
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por DANI (24 intervenciones) el 24/04/2021 18:29:17
Genial gracias por avisarme.
Pero me sigue dando error. En este caso soy yo que no se hacer el ejercicio, pero confío en tu comentario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por tincopasan (1082 intervenciones) el 24/04/2021 21:08:23
no se que error te da, pero.. en ese código hay dos clases rectángulo, eso ya es un error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por tincopasan (1082 intervenciones) el 24/04/2021 22:59:43
como ya tenés casi todo te muestro como haría la primera clase:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import math
class Punto:
    def __init__(self, X = 0, Y = 0):
 
        self.X = X
        self.Y = Y
 
    def __str__(self):
        return f"({self.X}, {self.Y})"
 
    def cuadrante(self):
        cadena ="{} pertenece al {} cuadrante"
        if self.X > 0 and self.Y > 0:
            print(cadena.format(self,'primer'))
        elif self.X < 0 and self.Y > 0:
            print(cadena.format(self,'segundo'))
        elif self.X < 0 and self.Y < 0:
            print(cadena.format(self,'tercer'))
        elif self.X > 0 and self.Y < 0:
            print(cadena.format(self,'cuarto'))
        elif self.X != 0 and self.Y == 0:
            print(f"{self} se sitúa sobre el eje X")
        elif self.X == 0 and self.Y != 0:
            print(f"{self} se sitúa sobre el eje Y")
        else:
            print(f"{self} se encuentra sobre el origen")
 
    def vector(self, p):
        return f"El vector entre {self} y {p} es ({p.X - self.X}, {p.Y-self.Y})"
 
    def distancia(self, p):
        d = math.sqrt ( (p.X - self.X)**2 + (p.Y - self.Y)**2 )
        return f"La distancia entre los puntos {self} y {p} es {d}"
 
A = Punto(2,3)
B = Punto(5,5)
C = Punto(-3, -1)
D = Punto(0,0)
 
A.cuadrante()
C.cuadrante()
 
print(A.vector(B))
print(B.vector(A))
 
 
 
print(A.distancia(B))
print(B.distancia(A))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 58
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Crear una clase llamada Punto y Rectángulo. (Problema con "math")

Publicado por DANI (24 intervenciones) el 25/04/2021 17:59:26
Hola Tincopasan.
Muchas gracias por indicarme que en el código hay el error de haber dos clases de rectángulo. Y gracias por corregir el ejercicio. Ya lo aplique.
Como ahora ejecutamos el rectángulo que nos pide el ejercicio:
'
Crea una clase llamada Rectángulo con dos puntos (inicial y final) que formarán la diagonal del rectángulo.
Añade un método constructor para crear ambos puntos fácilmente, si no se envían se crearán dos puntos en el origen por defecto.
Añade al rectángulo un método llamado base que muestre la base.
Añade al rectángulo un método llamado altura que muestre la altura.
Añade al rectángulo un método llamado area que muestre el area.
Puedes identificar fácilmente estos valores si intentas dibujar el cuadrado a partir de su diagonal. Si andas perdido, prueba a dibujarlo en un papel, ¡seguro que lo verás mucho más claro! Además recuerda que puedes utilizar la función abs() para saber el valor absolute de un número.
Experimentación:
Crea un rectángulo utilizando los puntos A y B.
Consulta la base, altura y área del rectángulo.
'
Que tengas un buen día, gracias amigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar