Tema

P8, ej 1 + Módulo para testear

2 respuestas 5416 visitas

Bueh, me desconecté un poco del TP y arranqué la práctica. 😄

Acá va el de vectores y en otro topic el de matrices. Subo también un módulo para testear.

Cualquier cosa pregunten.

Ejercicio y módulo (para bajar)

CÓDIGO:

igualX :: Vector -> Vector -> Bool
igualX v1 v2 = (abscisa v1)==(abscisa v2)

igualY :: Vector -> Vector -> Bool
igualY v1 v2 = (ordenada v1)==(ordenada v2)

colineales :: Vector -> Vector -> Bool
colineales v1 v2
	| ((abscisa v1)==0 && (ordenada v1)==0) || ((abscisa v2)==0 && (ordenada v2)==0) = True
	| (abscisa v1)==0 = (abscisa v2)==0
	| (abscisa v2)==0 = (abscisa v1)==0
	| (ordenada v1)==0 = (ordenada v2)==0
	| (ordenada v2)==0 = (ordenada v1)==0
	| otherwise = (abscisa v1)/(abscisa v2) == (ordenada v1)/(ordenada v2)
	

modulo :: Vector -> Float
modulo v = sqrt (x^2 + y^2)
	where 	x = abscisa v
		y = ordenada v

productoEscalar :: Vector -> Vector -> Float
productoEscalar v1 v2 = x1*x2 + y1*y2
	where	x1 = abscisa v1
		x2 = abscisa v2
		y1 = ordenada v1
		y2 = ordenada v2

ahora no estoy 100% seguro pero creo que colineales sale directo asi:

colineales :: Vector -> Vector -> Bool
colineales v1 v2 = (abscisa v1) * (ordenada v2) == (abscisa v2) * (ordenada v1)

Creo que tenés toda la razón.... pero no quedan preciosas tantas guardas? 😄