examen_1erparcial

5
S.E.P D.G.E.S.T D.I.T.D. INSTITUTO TECNOLÓGICO SUPERIOR DE LIBRES Organismo Público Descentralizado del Gobierno del Estado de Puebla INGENIERÍA EN SISTEMAS COMPUTACIONALES PROYECTO (EXAMEN)PRESENTA: ABURTO SANTAMARIA HUMBERTO ROMERO HERNANDEZ JOSE ANTONIO LIBRES, PUEBLA, FEBRERO DE 2012.

Upload: tono-tono

Post on 23-Mar-2016

213 views

Category:

Documents


0 download

DESCRIPTION

Examen del primer parcial DDA

TRANSCRIPT

Page 1: Examen_1erParcial

S.E.P D.G.E.S.T D.I.T.D.

INSTITUTO TECNOLÓGICO SUPERIOR DE LIBRES Organismo Público Descentralizado del Gobierno del Estado de Puebla

INGENIERÍA EN SISTEMAS COMPUTACIONALES

“PROYECTO (EXAMEN)”

PRESENTA:

ABURTO SANTAMARIA HUMBERTO ROMERO HERNANDEZ JOSE ANTONIO

LIBRES, PUEBLA, FEBRERO DE 2012.

Page 2: Examen_1erParcial

RECURSIVIDAD

La recursividad y la iteración (ejecución en bucle) están muy relacionadas, cualquier acción que

pueda realizarse con la recursividad puede realizarse con iteración y viceversa. Normalmente, un

cálculo determinado se prestará a una técnica u otra, sólo necesita elegir el enfoque más natural o

con el que se sienta más cómodo.

Es una alternativa diferente para implementar estructuras de

repetición (ciclos). Los módulos se hacen llamadas recursivas.

Se puede usar en toda situación en la cual la solución pueda ser

expresada como una secuencia de movimientos, pasos o

transformaciones gobernadas por un conjunto de reglas no ambiguas.

PROYECTO (EXAMEN)

1.- Realizar el programa polígono a partir del algoritmo DDA para trazado de líneas

a) Mostrar la ejecución de los polígonos.

b) Mostrar el código modificado.

A continuación se muestra la imagen con el código en la cual se piden los datos para el trazado del

pentágono y el triángulo.

Page 3: Examen_1erParcial

Fig. 1 Pedir datos

Se almacenan en variables las cuales p(y,x) para poder graficar, con la función ddadibujar se pintan

los puntos dados, la cual se muestra a continuación.

Fig2. Función para aplicar la recursividad

Para poder usar la recursividad se manda a traer la misma función varias veces pero con puntos

diferentes para poder formar un polígono.

Page 4: Examen_1erParcial

Fig3 aplicando la recursividad y solo mandamos a llamar la función únicamente

public static void dda()

{

Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);//limpia el buffer de la pantall

Gl.glColor3f(0.6F, 0.6F, 0.6F);//poner color a los pixeles

Gl.glLoadIdentity();//''muy importante;

Gl.glPointSize(2.0f);//medida de los puntos

Gl.glBegin(Gl.GL_POINTS);//funcion para dibujar puntos

//dibujando el plano

float z = -1, w = 1, c = 0;

for (int i = 0; i < 200; i++)

{

Gl.glColor3f(w, c, z);

Gl.glVertex2d(z, 0);

Gl.glVertex2d(0, w);

z += .01f;

w -= .01f;

c += .1f;

}

Gl.glEnd();//termina funcion para dibujar puntos

///pasamos las

Gl.glPointSize(5.0f);//sirve para el tamaño de los pixeles

Gl.glColor3f(0.6f, 1.0f, 0.6f);//sirve para el color de los pixeles

ddaDibujar(x1, y1, x2, y2);

ddaDibujar(x2, y2, x3, y3);

ddaDibujar(x3, y3, x4, y4);

ddaDibujar(x4, y4, x5, y5);

ddaDibujar(x5, y5, x1, y1);

ddaDibujar(x7, y7, x8, y8);

ddaDibujar(x8, y8, x9, y9);

ddaDibujar(x9, y9, x7, y7);

}

public static void ddaDibujar(double x1, double y1, double x2, double y2)

{

double xinicial = x1, yinicial = y1, xfinal = x2, yfinal = y2, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las coordenadas

especificadas

for (double k = .1; k <= pasos; k += .1)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

//Gl.glVertex2d(x - .01, y + .01);

}

Gl.glEnd();

}

Aplicamos la recursividad usando la misma

función (ddadibujar), con diferentes variables

Page 5: Examen_1erParcial

Con los puntos siguientes se puede dibujar un pentágono y un triángulo con las siguientes

coordenadas, los valores dados a las coordenadas e insertados en la consola deberán ser

expresados como valores decimales ya que los parámetros dentro del código son rangos pequeños.

Pentágono Triangulo

P1(-5,4) P1(4,2)

P2(-3,2) P2(6,-2)

P3(-3,-3) P3(3,-2)

P4(-7,-3)

P5(-7,3)

Fig4 Con los puntos dados e insertados adecuadamente se obtiene esta imagen

Conclusión

Podemos ahorrar varias líneas de código aplicando la recursividad a funciones que realizan una

tarea específica y apoyarse de ella para solucionar un problema más grande.

Bibliografía

Instituto tecnológico superior de Campeche

http://www.google.com.mx/url?sa=t&rct=j&q=recursividad%20pdf&source=web&cd=3&ved=0CC8QFjAC&url=http%3A

%2F%2Fwww.itescam.edu.mx%2Fprincipal%2Fsylabus%2Ffpdb%2Frecursos%2Fr4886.PDF&ei=ibk-T-

zeK8fc2AW20ZGZCA&usg=AFQjCNFQBiYGnDfI_Sig0wHo_8vXtsummQ