Está en la página 1de 18

UNIVERSIDAD MAYOR DE SAN ANDRS S

FACULTAD DE INGENIERA INGENIER


Ingeniera ELCTRICA

PROYECTO ELT-230 GRAFICA GRAFICA DE UNA PARABOLA PARABOLA


Estudiante: Chocanapi Aldano David Marcos CI: 6182933LP RU.:1643537

Gestin: II/ 2013

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

I) Objetivos: Manejar el entorno grafico en wxDev-c++ - Estilo de letras - Uso de diferentes colores Disear un programa que grafique una parbola a partir de la ecuacin despejada. Disear un men para poder seleccionar el eje de simetra de la parbola Con el uso de contadores generar la escala de los ejes y graficar los ejes coordenados. Con el uso de condicionales validar cada dato ingresado por teclado. - Para el men - Para el dato de la constante A en la ecuacin despejada de la parbola. Mostar las constantes ingresadas por teclado en el entorno grafico.

II)

Teora: Libreras y cdigos utilizados para el programa: Winbgim: Librera que simula el modo grafico del turbo C++. Cdigo para la seleccin de colores: NORMAL 0 - Negro 1 - Azul 2 - Verde 3 - Azul Claro 4 - Rojo 5 - Fushia 6 - Naranja 7 - Blanco 8 - Gris FLUORESCENTE 9 - Azul 10 - Verde 11 - Azul Claro 12 - Rojo 13 - Fushia 14 - Amarillo 15 - Blanco 16 - Negro

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Funciones:

initwindow(400,400);

DA LAS DIMENSIONES DE LA PANTALLA DE GRAFICO

setcolor(7);

PONE EL COLOR EN LAS RDENES SIGUIENTES

settextstyle(0,0,2);

PONE LAS DIMENSIONES DEL TEXTO (POSICION Y EL ALTO DE LAS LETRAS

outtextxy(x,y,"Texto");

IMPRIME EL TEXTO CON SUS COORDENADAS

moveto(x,y);

INGRESA EL PUNTO INICIAL DE LO QUE SE VA A GRAFICAR

lineto(x,y);

GENERA UNA LINEA DESDE EL LTIMO PUNTO HASTA LAS COORDENADAS

clearviewport();

LIMPIA LA PANTALLA

while(!kbhit());

ESPERA HASTA PRESIONAR UNA TECLA PARA CERRAR

closegraph();

CIERRA EL PROGRAMA GRAFICO

Iostream: Librera para de sentencias de lectura, proceso y salida de datos.


2

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Sentencias:

Cout < < "" < < endl;

MUESTRA EN PANTALLA LOS VALORES DE LAS VARIABLES

cin > > ..;

LEE LOS DATOS INGRESADOS POR TECLADO

ciclo do while

EJECUTAN LAS CONDICIONES AL FINAL DE LA CONDICIN

ciclo for

REPITE EL PROGRAMA MS DE UNA VEZ

switch ()

{ case 1: Break; } ES UN INSTRUCCIN DE SELECCION MLTIPLE

system("pause");

ESPERA HASTA PRESIONAR UNA TECLA PARA CERRAR


If(condicion) Else(condicion)

INGRESA A LA RUTINA DEPENDIENDO DE LA CONDICION

String: librera para el manejo de datos del tipo caracter. Funcin: itoa(a,b,10); CONVIERTE LA VARIABLE a DE TIPO ENTERO A LA VARIABLE b DE TIPO CHAR PARA PODER MOSTAR EN EL MODO GRAFICO.
3

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

III)

DISEO DEL PROGRAMA

CODIGO #include<winbgim.h> #include<iostream.h> #include<string.h>

FUNCION Iniciando las libreras para los diferentes procesos del programa: Modo grafico; lectura, proceso y salida de datos en modo consola; para la conversin de las variables enteras a caracter. Iniciando el inicio del programa

main() { int pos,menu,e,n,ny;

Declarando las variables de tipo entero. pos= Para la opcin del men menu= Para el label del men. e= Para el contador de la escala n= para la numeracin en el eje x ny=para la numeracin en el eje y

char a[10],b[10],c[10],nm[10],nmy[10]; Declaracin de variables del tipo caracter. a, b, c = Reservados para guardar los valores convertidos de las variables A, B, C constantes de la ecuacin de la parbola nm, nmy= Reservados para los valores convertidos de los nmeros generados por los contadores para la numeracin de las escalas de los ejes coordenados. float xx,yy,y2,A,B,C,i; Declaracion de las variables de tipo flotante. xx= Posiciones en el eje x yy=Posiciones en el eje y y2=valores de la variable dependiente de la ecuacin de la parbola. A, B, C= valores ingresados de las constantes de la ecuacin de la parbola. i= variable para generara los valores de x
4

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

initwindow(900,700); settextstyle(8,0,1); outtextxy(20,20,"UNIVERSIDAD MAYOR DE SAN ANDRES"); outtextxy(65,40,"FACULTAD DE INGENIERIA"); outtextxy(75,60,"INGENIERIA ELECTRICA"); settextstyle(1,0,4); outtextxy(720,40,"II/2013"); settextstyle(7,0,3); outtextxy(200,200,"Univ. Chocanapi Aldano David Marcos"); outtextxy(200,235,"1643537"); outtextxy(560,235,"6182933"); outtextxy(200,300,"Grfica de una parbola:"); outtextxy(50,400,"Parbola simtrica respecto al eje Y: "); outtextxy(50,500,"Parbola simtrica respecto al eje X: "); outtextxy(300,600,"Presione una tecla para ingresar datos.... "); settextstyle(7,0,6); setcolor(9); outtextxy(100,95,"ELT-230 * TEORIA *"); settextstyle(9,0,2); setcolor(4); outtextxy(50,200,"Estudiante: "); outtextxy(50,235,"RU:"); outtextxy(500,235,"CI:"); outtextxy(50,300,"Presenta:"); settextstyle(9,0,3); outtextxy(600,400,"Y=A*X^2+B*X+C "); outtextxy(600,500,"X=A*Y^2+B*Y+C "); while(!kbhit()); menu: { closegraph();
5

Iniciando el modo grafico. Seleccionando el estilo, posicin y tamao de las letras. Mostrando en modo grafico los textos con sus respectivas posiciones en el plano de pantalla iniciada; para construir la caratula principal de presentacin del programa.

Espera del programa hasta presionar una tecla para continuar. Marcando el lablel del men.

Cierre del modo grafico cada vez

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

que se ingrese al men del programa system("color 13"); do{ Seleccin del color de pantalla en el modo consola. Iniciando la condicional do while para la verificacin de los valores de seleccin del men. Limpieza de la pantalla del modo consola cada vez que ingresa al menu para borrar los mensajes de entrada y/o errores generados por las anteriores entradas. Presentacin del men. Lectura de la opcin por la variable pos.

system("cls");

cout<<"\n\n ****** SELECCIONE UNA OPCION ******\n"<<endl; cout<<" 1) Parabola simetrica respecto al eje Y"<<endl; cout<<" 2) Parabola simetrica respecto al eje X\n"<<endl; cout<<" 3) SALIR"<<endl; cin>>pos; if(pos<1||pos>3) { system("cls"); cout<<"\n\n\n Ingrese una opcion valida"<<endl; system("pause");}

Pregunta si el valor ingresado para las opciones son las incorrectas; en caso afirmativo muestra un mensaje de error de dato. La pausa es para poder visualizar el mensaje de error y despus de presionar una tecla continuar con la secuencia del programa. Retorna al men si el valor de la opcin es incorrecta Si el valor de la opcin del men es 3 prosigue a salir del programa. En el caso de que el valor de la opcin ingresada no sea igual a 3 el programa continuara su curso. Porque el valor para la opcin del men ya fue validado con el do while Iniciando la condicional do while para verificar si se trata de una

}while(pos<1||pos>3); if(pos==3) { exit(0);} else {

do{

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

entrada de datos de una parbola cout<<"Ingrese los coeficientes A, B y C de la ecuacion despejada de la parabola"<<endl; cin>>A>>B>>C; if(A==0) {cout<<"f!@&k ingresaste la ecuacion de una recta"<<endl; cout<<"Ingrese correctamente los datos de una parabola"<<endl; system("pause");} ltoa(A,a,10); ltoa(B,b,10); ltoa(C,c,10); } } system("cls"); }while(A==0); Limpia la pantalla en el caso de que do while vuelva a pedir las constantes en caso de que el valor de A=0 Inicia el modo grafico y limpia la pantalla del modo grafico de los datos mostrados en la caratula principal del programa y de las graficas ya corridas. Seleccin del color y grafica de los ejes coordenados Peticin de datos de las constantes de la ecuacin de la parbola y lectura de datos.

Pregunta si la constante A es igual a cero en caso afirmativo se tratara de la ecuacin de una recta; entonces se muestra un mensaje de error y el programa espera hasta presionar una tecla para continuar la secuencia del programa. Se convierte los datos ingresados de las constante de la ecuacin a tipo char para poder ser mostrados en el modo grafico.

initwindow(900,700); { clearviewport();

setcolor(10); line(0,350,900,350); line(450,0,450,700); n=-19; ny=15;

Definiendo valores inciales de las variables para la numeracin de las escalas de los ejes coordenados. Se realiza en esta parte del programa para que en cada nueva grafica los valores de estas constantes siempre empiecen en estos valores y no en los ltimos valores tomados por la anterior grafica. Generacion de los valores de la
7

for(e=0;e<=900;e=e+25)

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

{ line(e,335,e,365); line(435,e,465,e); n=n+1; ny=ny-1; itoa(n,nm,10); itoa(ny,nmy,10); outtextxy(e,335,nm); outtextxy(460,e,nmy); } setcolor(4); switch(pos) { case 1: { for(i=-700;i<=700;i=0.1+i) { y2=A*i*i+B*i+C;

numeracin de la escala con un incremento de 25 ya que el conteo de uno en uno significa un pixel de la pantalla y para obtener una escala manejable seleccione cada 25 pixeles en una escala de los ejes coordenados; una vez generados estos valores se transforman en tipo char para poder ser mostrados en el modo grafico. Cambiando el color para la grafica de la parbola. Seleccionando la opcin para el tipo de grafica. Entrando en la opcin 1 para la grafica de la parbola con eje de simetra en el eje Y Generando los valores para evaluar la ecuacin de la parbola.

xx=(450+25*i); yy=(350-25*y2);

Variables de posicionamiento 450 y 350 para iniciar en el origen de nuestro eje de coordenadas ya que el origen de coordenadas del modo grafico es el la esquina izquierda superior y 450, 350 porque iniciamos una pantalla grafica de 900,700 asi nos posicionamos en el centro de la pantalla. En ambos casos por 25 para darle la escala de 25 pixeles por cada escala del eje de coordenadas de la grafica. Generaremos valores para todo el espectro de la pantalla iniciada y una vez cumplida ese rango el programa continuara con su secuencia Seleccin de color y estilo de letra para mostrar la ecuacin de la parbola con los datos ingresados por teclado y con el texto de que
8

if (i==-700) moveto(xx,yy); lineto(xx,yy); } { setcolor(11); settextstyle(9,0,3); outtextxy(20,200,"Y="); outtextxy(70,200,a);

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

outtextxy(120,200,"X^2 +"); outtextxy(210,200,b); outtextxy(260,200,"X +"); outtextxy(320,200,c); settextstyle(7,0,2); outtextxy(10,170,"Parbola simtrica al eje Y: "); } getch(); while(!kbhit());

tipo de simetra tiene.

Pausa el programa en modo grafico para que se pueda visualizar la grafica de la parbola. El programa espera a que se presione una tecla para continuar Se prepara limpia la pantalla para el modo consola y se regresa al men con el salto al menu. El mismo proceso que la opcin 1 pero con la variante en las variables de posicionamiento ya que ahora se generara para el eje de simetra respecto a x. Y los textos y valores hacen referencia a una parbola con eje de simetra en el eje X. Salta el programa igualmente al men principal.

system("cls"); goto menu; } case 2: { for(i=-700;i<=700;i=0.1+i) { y2=A*i*i+B*i+C; xx=(450+25*y2); yy=(350+25*i); if (i==-700) moveto(xx,yy); lineto(xx,yy); } { setcolor(11); settextstyle(9,0,3); outtextxy(20,200,"X="); outtextxy(70,200,a); outtextxy(120,200,"Y^2 +"); outtextxy(210,200,b); outtextxy(260,200,"Y +"); outtextxy(320,200,c); settextstyle(7,0,2); outtextxy(10,170,"Parbola simtrica al eje X: "); } getch();
9

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

while(!kbhit()); system("cls"); goto menu; } Estas tres llaves cierran respectivamente: - Switch - else opcin 3 Salir del programa del menu! - Cierra el inicio del programa principal.

} } }

IV) -

Procedimiento Creando un nuevo proyecto.

Seleccionando consola grafica una vez instalada el winbgim.h

10

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Seleccionando la ubicacin donde se guardara el proyecto

Transcribiendo el cdigo del programa:

11

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Corriendo el programa presionando F9 el compilador pide la ubicacin para guardar el cdigo del programa realizado preferiblemente guardar en la ubicacin donde se guardo el proyecto de consola en modo grafico primer paso!

Y listo el Dev compilara el cdigo del programa realizado y se ejecutara el programa.

12

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

V) -

Pruebas y resultados del programa. Cartula principal:

Despus de presionar una tecla: - Men principal:

Prueba del ingreso de la opcin: _ valor errneo ejemplo 5

Despus de presionar una tecla el programa regresa al men.

13

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Ingresando a la opcin 1.

Ingresando los coeficientes de A, B y C

Muestra los coeficientes ingresados con la grafica de la parbola.

Presionando una tecla se cierra el modo grafico y regresa al men en modo consola. - Ingresando la constante A=0

Presionando una tecla vuelve a pedir los coeficientes para la opcin antes elegida.
14

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Ingresando un valor negativo de A

Presionando una tecla regresamos al men principal. - Eligiendo la opcin 2 Ingresando datos se obtiene:

15

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

Presionando una tecla regresamos al men principal. Ingresando el valor de A=0 para este caso

Despus de presionar una tecla nos vuelve a pedir los coeficientes para la opcin 2. Ingresando un valor negativo para A se tiene:

Presionando una tecla regresa al men principal. - Eligiendo la opcin 3 el programa se cierra.

16

ELT-230 Teora Estudiante: Univ. Chocanapi Aldano David Marcos

Proyecto II/2013

VI) -

Conclusiones Con el uso correcto de las sentencias y funciones de las libreras se puede obtener un programa con diferentes grados de aceptacin en su funcionamiento; como en este caso la generacin de la numeracin de la escala de los ejes coordenados, las verificaciones a la entrada de datos. El uso de los estilos grficos puede hacer que un programa se vea mucho mejor que otro aunque realicen la misma funcin. Al ir aumentando restricciones y estilos grficos el cdigo del programa se vuelve mas grande y si no se lleva un orden se puede llegar a enredar y generar errores al momento de ejecutar el problema que generalmente pasa por la falla de llaves abiertas y cerradas en las secuencias del programa. Recomendaciones

VII)

Si bien se trato de mejorar la ejecucin de un programa fcil como es la grafica de una parbola; se fue complicando el cdigo con las restricciones en la lectura de los datos y en los estilos grficos; aun se pueden mejorar en: - Graficar la recta directriz, el lado recto de la parbola. - Encontrar el vrtice de la parbola - Mostrar en pantalla grfica el vrtice y el foco de la parbola. - Este programa funciona bien para un rango de entrada de valores de algunas decenas dependiendo de todos los valores de las constantes de la ecuacin. Y se podra mejorar el programa para una seleccin automtica de la escala para poder mostrar graficas de parbolas de mayor numeracin.

ELT-230 Docente: Gestin: Proyecto:

Computacin para ingeniera I Ing. Irma Prado II/2013 Grafica de una parbola a partir de su ecuacin despejada.

17

También podría gustarte