Nuestro procedimiento, en este momento, sirve para crear cuadrados.
void dibujaCuadrado() { final def Lados = 4; final def Angulo = 90; final def Distancia = 50; for(def i = 0; i < Lados; ++i) { turtle.forward( Distancia ); turtle.turnRight( Angulo ); } }De acuerdo, pero quizás... podríamos hacer que la distancia (la longitud del lado, representada por la distancia que recorre la tortuga), pudiese cambiar. De esta manera, podríamos crear cuadrados más grandes o más pequeños. Eso se puede conseguir, precisamente, mediante parámetros. Le añadiremos parámetros al procedimiento, de forma que podamos cambiar algunos aspectos. De hecho, si pudiéramos cambiar el número de lados... ¡podríamos dibujar cualquier polígono regular, pues el ángulo se obtiene dividiendo 360 entre el número de lados!
Sintaxis de creación del procedimiento
void nombreProcedimiento(tipo1 id1 [, tipo2 id2 [,... tipon idn]]) { instruccion1; instruccion2; ... instruccionn; }
Sintaxis de llamada al procedimiento
nombreProcedimiento( expresión1 [, expresión2 [,... expresiónn]]);Los parámetros, tal cual aparecen en la definición del procedimiento, se denominan formales. Los que aparecen cuando llamamos al procedimiento, se denominan reales. Los parámetros reales pueden ser valores literales, variables, cálculos...
Ejemplo
void dibujaPoligono(int lados, int distancia) { def angulo = 360 / lados; for(def i = 0; i < lados; ++i) { turtle.forward( distancia ); turtle.turnRight( angulo ); } } dibujaPoligono( 4, 50 );En este ejemplo, estaríamos dibujando un polígono regular de 4 lados, es decir, un cuadrado cuyo lado es de longitud 50.
Ejemplo
Podemos hacer figuras aleatorias utilizando el procedimiento rand() en el módulo math. Veamos un programa completo, que crea cuatro figuras haciendo girar la tortuga cuatro veces./** @name poligonos * @brief Dibuja polígonos al azar * @author jbgarcia@uvigo.es * @date 2013-9-30 */ import media.gw; import media.turtle; import std.math; void dibujaPoligono(int lados, int distancia) { def angulo = 360 / lados; for(def i = 0; i < lados; ++i) { turtle.forward( distancia ); turtle.turnRight( angulo ); } } for(def i = 0; i < 4; ++i) { dibujaPoligono( ( rand() * 15 ) + 3, 20 ); turtle.setPen( false ); turtle.forward( 60 ); turtle.turnRight( 90 ); turtle.setPen( true ); }
No hay comentarios:
Publicar un comentario