ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Codigo de Grafico de Tortuga en lenguage de Programacion C.

Luis Angel Cariño BravoApuntes14 de Octubre de 2018

8.662 Palabras (35 Páginas)504 Visitas

Página 1 de 35

CODIGO DE TIB.C

#include   //se agrega las lbrerias principales  

#include   //que ocuparemos en este programa*

#include      

void mostrarM(void);//se declarael prototipo de la funcion que realizaremos para mostrar el menu de comandos de la tortuga//

void printmovs(int *,int *,int);

void *gestmem(int); //el prototipo de la funcion para poder gestionar o reservar memoria para nuestra estructura//

void tortuga(int *,int **,int,int *);  //el prototipo de nuestra funcion de tortuga//

void vD(int *); //el prototipo para saber la derccion que tendra nuestra tortuga//

void vI(int *); //el prototipo para saber la derccion que tendra nuestra tortuga//

void avanza(int **,int,int,int *,int *,int);//el prototipo para realizar los comandos en la tortuga//

void imprime(int **); //prototipo de la funcion para imprimir la matriz de la tortuga//

void playTortuga(void); //prototipo de la funcion para  leer comandos ingresados de la tortuga//

int main(void){//funcion principal del prgorama//

        int n;//se declra un entero para la opcion de continuar o terminar el programa//

        

        do{//se utiliza un ciclo para realizar el programa hasta que el usuario ingrese el centinela//

                playTortuga(); //se manda a llamar la funcion para validar las opciones de comando que ingrese el usuario//

                system("cls");  //es una funcion  para  limpia la pantalla //

                printf("¿DESEA INTENTAR DE NUEVO?\n");//se pregunta si desea realizarlo nuevamente//  

                printf("0.-NO.\n1.-SI.\n");//son los valores para salir o para intentar nuevamente//

                scanf("%d",&n);//se lee el dato para saber si continua  o desea salir del programa//

        } while(n!=0);//se coprueva la vandera para continuar o salir del programa//

        

        return 0;//final de la funcion principal//

}

//esta funcion lee y valida los comnandos ingresados para realizar en nuestra tortuga//

void playTortuga(void){

        int m=0,j=0,a,cont=0,n,i;//se declaran y se inicializan las variales las cuales ocuparemos para la funcion//

        int **ARRAY,*comando,*desplazamiento; //se declara el areglo de apuntadores para nuestra matriz y dso arreglos para almacenar comandos y movimientos de la tortuga//

        ARRAY=(int **) gestmem(sizeof(int *)*50);//se llama a la funcion para reservar memoria para ARRAY//

        for(a=0;a<50;a++){//se utiliza un ciclo de 1 a 50 para reservar memoria//

                *(ARRAY+a)=(int *)gestmem(sizeof(int)*50);//se manda a llamar la funcion para gestionar memoria para nuestro arreglo de 50//

        }

        desplazamiento=(int *)malloc (sizeof (int)*100);//se llama a nuestra funcion para reservar memoria para nuestro desplazamiento//

        comando=(int *) malloc(sizeof(int)*100);//se llama a nuestra funcion para reservar memoria para nuestros comanos//

        

        do{ //se crea un ciclo para que continue validando comandos hasta que se ingrese el valor centinela//

                

                mostrarM();//se llama a la funcion para poder mostrar en pantalla nuestro menu de comandos//

                do{//se crea un ciclo para validar que los comandos ingresados //

                        printf("\n INGRESE COMANDO: \n");//se imprime en pantalla para pedirle al usuario que ingrese los comandos//

                        scanf("%d",&m);//se lee el comando ingresado//

                        if(m==10){//se evalua si el comando es igual a 10//

                                m=5;//si el comando es igual entonces se camvia el valor a 5 por que ambos comandos realizan la misma accion//

                        }

                        if(m==5){//se compara la opocion si es para realizar movimientos//

                                do{//se crea un cilo para  pedirle los movimientos de la tortuga//

                                printf("*");

                                //printf("\ningrese cuanto desea que se mueva la tortuga\nun numero mayor a 0 y que sea menor a 10:::\n");//se pide al suario la cantida de movimientos que se desplazara la tortuga//

                                scanf("%d",&n);//se lee la variable para saber la cntidad de movimientos//

                                        if(n>0 && n<11){//se evalua la cantidad que sea menor a n y mayor a n//

                                                *(desplazamiento+cont)=n;//se llama a la funion para realizar los movimientos de la tortuga//

                                                cont++;//se aumenta en uno a nuestro contador de movimientos//

                                        }

                                }while(n<0 || n>10);//se evalua si elvalor n es mayor a 0 o si en menor a 10//        

                        }

                        if(m<0 || m<7){//se evalua si el comando es menor a 0 o si es menor a 7//

                                comando[j]=m;//se agrega el comando a nuestro vector de comandos en la posocion correspondiente//

                                j++;//se aunmenta el contador en uno//

                        }

                } while(m<1 || m>10 || m==7 || m==8);//se comprueba que el comando este dentro del rango impreso en pantalla si no se repite el ciclo hasta que se ingrese un comando valido

                system("cls");//se llama a una funcion para limpiar la pantlla//

        }while(m!=9);//se valida el centina para continuar ingresando comandos o salir del ciclo//

        

        tortuga(comando,ARRAY,j,desplazamiento);//se llama a la funcion principal de la tortuga y se le envian los datos//

        

        /*for(i=0;i

                printf("%d\n",desplazamiento[i]);//se imprime el valor correspondiente del desplazamiento//

        }*/

        

        free(comando);//se libera la mamoria para el vector de comando//

        for(a=0;a<50;a++){//se crea un cilo que empieze en 0 y termine en 49//

                free(*(ARRAY+a));//se libera la memoria de los apuntadores del  arreglo//

        }

        free(ARRAY);//se libera la mamoria del arreglo//

}

//Es la funcion que muestra el menu de comandos para el usuario//

void mostrarM (){        

        printf("\t\t\tT.I.B\n\n\n");

        printf(" *****************************************************\n");

        printf("* MENU DE COMANDOS.                                   *\n");

        printf("*  1.-NO TRAZAR MOVIMIENTO.                           *\n");

        printf("*  2.-TRAZAR MOVIMIENTO.                              *\n");

        printf("*  3.-GIRO A LA DERECHA.                              *\n");

        printf("*  4.-GIRO A LA IZQUIERDA.                            *\n");

        printf("*  5.-MOVIMIENTO HACIA ADELANTE. [1-10 POSCICIONES]   *\n");

        printf("*  6.-MUESTRA LOS MOVIMIENTOS DE LA TORTUGA.          *\n");

        printf("*  9.-FIN DE DATOS.                                   *\n");

        printf("* 10.-MOVIMIENTO HACIA ADELANTE. [1-10 POSCICIONES]  *\n");

        printf(" ****************************************************\n");

}

//ESTA FUNCON GESTIONA LA MEMORIA Y ANALIZA SI SE REALIZO DICHA ACCION

void *gestmem(int x){

        void *ptr; //SE DECLARA UN UN APUNTADOR GENERICO

        ptr=malloc(x);//SE PIDE MEMORIA AL SISTEMA

        if(ptr==NULL){//ANALIZA SI NO SE GESTIONADO LA MEMORIA

                printf("NO SE PUDO REALIZAR ACCION /n");//ALERTA DE QUE NO SE PUDO REALIZAR ACCION

...

Descargar como (para miembros actualizados) txt (23 Kb) pdf (82 Kb) docx (60 Kb)
Leer 34 páginas más »
Disponible sólo en Clubensayos.com