Diferencia entre revisiones de «PrInf17: Algunos ejemplos con funciones»

De MateWiki
Saltar a: navegación, buscar
(Contenido de la práctica)
(Contenido de la práctica)
Línea 14: Línea 14:
 
<math>\displaystyle d = \sqrt{(x_1-x_0)^2+(y_1-y_0)^2}</math>
 
<math>\displaystyle d = \sqrt{(x_1-x_0)^2+(y_1-y_0)^2}</math>
 
{{ Tarea | Crea una función de nombre ''distancia'', que devuelva el valor de ''d'' dados cuatro argumentos de entrada: ''x0'', ''y0'', ''x1'' e ''y1''.}}
 
{{ Tarea | Crea una función de nombre ''distancia'', que devuelva el valor de ''d'' dados cuatro argumentos de entrada: ''x0'', ''y0'', ''x1'' e ''y1''.}}
Una vez que tenemos una función que calcula la distancia entre dos puntos en el plano, vamos a empezar a programar la función que encuentra el vértice más cercano de un polígono. Esta función acepta como argumentos de entrada las coordenadas <math>(x_p,y_p)</math> del punto, y dos vectores ''x'' e ''y'', que contienen los vértices del polígono. Estos vectores contienen los vértices en el mismo formato que usan las funciones ''fill'' e ''inpolygon''.
+
Una vez que tenemos una función que calcula la distancia entre dos puntos en el plano, vamos a empezar a programar la función que encuentra el vértice más cercano de un polígono. Esta función acepta como argumentos de entrada las coordenadas <math>(x_p,y_p)</math> del punto, y dos vectores ''x'' e ''y'', que contienen los vértices del polígono. Estos vectores contienen los vértices en el mismo formato que usan las funciones ''fill'' e ''inpolygon''. La función devolverá las coordenadas <math>(x_v, y_v)</math> del vértice más cercano al punto.
 +
 
 +
Por tanto, la cabecera de la función será:
 +
{{#tag:source|function [xv, yv] = encuentraVerticeMasCercano(xp, yp, x, y)|lang="matlab"}}
  
 
== Ejercicio post-práctica ==
 
== Ejercicio post-práctica ==
 
[[Categoría:Prácticas de Informática]]
 
[[Categoría:Prácticas de Informática]]

Revisión del 12:56 9 ago 2013

Práctica de Informática
Algunos ejemplos con funciones
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


Warning.png Este artículo está en versión beta. El autor de este artículo no lo ha terminado todavía, por favor no lo edites hasta que elimine este mensaje.

En esta práctica vamos a escribir dos funciones y usarlas dentro de un programa, para ilustrar la metodología de diseño top-down. Tenemos que realizar un programa que, dado un polígono, pregunte un punto al usuario, y encuentre el vértice del polígono más próximo al punto introducido por el usuario. El programa debe dibujar el polígono, el punto introducido por el usuario y el vértice encontrado. Como es un programa algo complejo, vamos a escribir dos funciones, que usaremos desde el programa principal.

1 Requisitos previos

Antes de realizar esta práctica, es imprescindible haber realizado antes la siguiente práctica:

Además, una de las funciones que vamos a programar tiene varios argumentos de salida, por lo que puede ser útil visualizar este vídeo (aunque en nuestro caso, los argumentos de salida no son opcionales):

2 Contenido de la práctica

El programa necesita encontrar el vértice más cercano, dado un punto que introduce el usuario. El vértice más cercano será el que tiene la menor distancia al punto en cuestión. No existe ninguna función en Octave UPM para calcular la distancia entre dos puntos, así que tendremos que escribirla nosotros. Sabemos que la distancia entre dos puntos [math](x_0,y_0)[/math] y [math](x_1, y_1)[/math] viene dada por [math]\displaystyle d = \sqrt{(x_1-x_0)^2+(y_1-y_0)^2}[/math]

Lapiz.png Tarea: Crea una función de nombre distancia, que devuelva el valor de d dados cuatro argumentos de entrada: x0, y0, x1 e y1.


Una vez que tenemos una función que calcula la distancia entre dos puntos en el plano, vamos a empezar a programar la función que encuentra el vértice más cercano de un polígono. Esta función acepta como argumentos de entrada las coordenadas [math](x_p,y_p)[/math] del punto, y dos vectores x e y, que contienen los vértices del polígono. Estos vectores contienen los vértices en el mismo formato que usan las funciones fill e inpolygon. La función devolverá las coordenadas [math](x_v, y_v)[/math] del vértice más cercano al punto.

Por tanto, la cabecera de la función será:

function [xv, yv] = encuentraVerticeMasCercano(xp, yp, x, y)

3 Ejercicio post-práctica