[ Foro de Pascal ]

representacion

27-Jan-2014 12:21
oscar gomez
1 Respuestas

Cordial saludo profesor Nacho.
Profesor queria preguntarte como puede representarsen coordenadas en una linea y en una matriz, porejemplo;

a)
si tengo una linea y en ella 5 puntos como puedo definir y hacer referencia a dichos puntos?
   
 |____|____|____|____|____|____|___|
 1       2        3       4       5        6        7     8
se que a traves de una estructura o tipo de dato registro de puede, pero se podria tambien a traves  de un vector?, como seria? como podria moverme desde el punto 1 al punto5 porejemplo?

b)
 si es el caso de una matriz como puedo definir esas coordenadas y como pòdria hacer porejemplo un recorrido, imaginate porejemplo el caso de una ciudad formada por calles y carreras, donde cada esquina corresponde a la interseccion de una calle con una carrera y que se denota por las coordenadas (x,y) y que la distancia entre calles y carreteras es de 1, como ves se formaria una especia de matriz o incluso mejor de malla, mi pregunta en este caso es como se podria definir dicha matriz o malla y como seria la forma de moverme entra coordenada y coordenada, porejemplo si quiero ir del punto (1,1) al ( 5,6)?
se podria al igual que en el cso a) hacerlo sin usar un tipo de datos registro, usar una matriz directramente o seria imposible dado que se estan tratndo nodos y no casillas o elementos de una matriz?
agradezco toda ayuda que me puedas brindar profesor y por las explicaciones y ojala ejemplos que puedas darme mil gracias como siempre.


27-Jan-2014 21:17
Nacho Cabanes (+30)

Lo habitual es representar los puntos como un registro (record), con componentes (campos) "x" e "y". Una alternativa un poco menos elegante es usar un array de 2 dimensiones, en el que la primera componente represente la "x" y la segunda sea la "y".

En cualquier caso, si quieres tener varios puntos, necesitarías un array del tipo de datos que elijas, de modo que llegarías a un array de records o a un array bidimensional.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)