miércoles, 3 de julio de 2019

11 LaboratorioNo1 - GoToXY

Laboratorio No1
Función GOTOXY con Alternativas

Función Gotoxy

Bien, aquí podemos ver que existe una función de tipo "void", ¿que significa eso?, significa que esta función cuyo nombre es "gotoxy", NO RETORNA ningún valor al terminar su ejecución, la razón es que en realidad solo deseamos que "haga" algo, no que nos "devuelva" algo.
Las instrucciones dentro de la función "gotoxy()" están definidas en la cabecera , no voy a entrar mucho en detalle puesto que ya profundizaremos mas adelante acerca de esto. Lo único que les puedo comentar, es que estamos utilizando un tipo genérico de "punteros"(ya los veremos próximamente) que lo que hacen es obtener primeramente, el control de nuestra ventana de salida, en este caso la consola de Windows, y además a partir de dos parámetros enteros ( x, y) asignarle una posición en forma de coordenada donde se imprimirán los datos de salida.
Por ultimo, como pueden ver en la función main(), solo hace falta llamar a la función que acabamos de crear ("gotoxy()")y alimentarla con los parámetros (x,y), para que esta pueda manipular la posición de salida que en este caso es un "*". Como ven es algo muy sencilla de aprender, espero les sirva. Pueden copiar el código y comprobar su funcionamiento, incluso cambiar de parámetros.

Abra un programa nuevo empleando DevC++ y copie el siguiente código, dele un nombre al mismo y ejecútelo. Note que ocurre...

#include <stdio.h>  
#include <windows.h>  
 void gotoxy(int x,int y){  
      HANDLE hcon;  
      hcon = GetStdHandle(STD_OUTPUT_HANDLE);  
      COORD dwPos;  
      dwPos.X = x;  
      dwPos.Y= y;  
      SetConsoleCursorPosition(hcon,dwPos);  
 }  
 int main(){  
      gotoxy(15,10);  
      printf("*");  
      return 0;  
 }

Ahora modifique el las coordenadas dentro del gotoxy(  )....

Vamos a modificar el código anterior de la siguiente manera:


int main()
   { 
      gotoxy(15,10);  printf("*");
      gotoxy(17,10);  printf("*");
      gotoxy(15,12);  printf("*");
      gotoxy(17,12);  printf("*");

      return 0; 
   } 


Ahora es el momento de Jugar :) van a seleccionar 2 de las siguientes figuras y deberán crearlas con el carácter que usted decida:



Vamos a crear nuestro código, empleando en este caso un menú de opciones:

#include <stdio.h>  
#include <windows.h>  
 void gotoxy(int x,int y){  
      HANDLE hcon;  
      hcon = GetStdHandle(STD_OUTPUT_HANDLE);  
      COORD dwPos;  
      dwPos.X = x;  
      dwPos.Y= y;  
      SetConsoleCursorPosition(hcon,dwPos);  
 }  
 int main(){  
      int op;
      printf("Men%c de Opciones:",163);
      printf("\n1. Cuadrado");
      printf("\n2. Tri%cngulo",160);
      printf("\n3. Rect%cngulo",160);
      printf("\n4. C%crculo",161);
      printf("\n\nElija la opci%cn: ",162);
      scanf("%d",&op);
      
      if(op==1)
       {
        gotoxy(20,10), printf("CUADRADO");
        //Aquí colocan el código para crear la figura
       }
      else
       {
        if(op==2)
          {
             gotoxy(20,10), printf("TRI%cNGULO",181);
             //Aquí colocan el código para crear la figura
  }
else
  {
     if(op==3)
       {
        gotoxy(20,10), printf("RECT%cNGULO",181);
                 //Aquí colocan el código para crear la figura
       }
     else
       {
        if(op==4)
           {
             gotoxy(20,10), printf("C%cRCULO",214);
                      //Aquí colocan el código para crear la figura
   }
else
   {
     gotoxy(20,10), printf("ERROR... Opci%cn incorrecta",162);
   }   
       }
  }  
       }
      
      return 0;  
 } 

SUERTE :)