Buscar en el Foro: 
Junio 25, 2019, 10:04:23 pm

Noticias:

Para hacer tu consulta: debes registrarte y hacer un nuevo tema en la sección que consideres más adecuada. Ver: Acerca de este Foro.


Recientes

[Ejemplo] Implementar la función GOTOXY en Dev-C++

Iniciado por JorgeAVM, Mayo 20, 2019, 08:20:47 pm

Tema anterior - Siguiente tema

JorgeAVM

Para quienes quieran aprender a programar, Dev-C++ es un entorno para el lenguaje C y C++.
Entre las primeras prácticas que normalmente tienen los estudiantes de programación, está hacer pequeñas aplicaciones en la consola de texto. Una de las rutinas más comunes que se pueden llegar a ocupar en este ambiente, es la de ubicar el cursor en posiciones dadas por columnas y filas. En otros entornos esto se resuelve utilizando la función gotoxy, pero en Dev-C++ no está, por tanto este código de ejemplo viene a mostrar cómo implementar por nuestra cuenta dicha función.

Para empezar vamos a necesitar incluir la siguiente línea al inicio de nuestro código:
#include <windows.h>
(este ejemplo fue probado en el sistema operativo Windows), luego vamos poner el código de la función gotoxy, seguido del main donde haremos un llamado a una función que pinta un recuadro, le enviaremos los parámetros de 48 columnas y 24 filas. Por último la implementación de la función de pintar un recuadro.

Utilizaremos unos caracteres tomados de la tabla ascii para dar forma al recuadro. (Ver tabla ascii adjunta).


#include <iostream>
#include <windows.h>
void gotoxy(int x, int y) //implementación de la función gotoxy
{
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
using namespace std;
void recuadro(int Col1, int Col2, int Fil1, int Fil2); //declaración de la función recuadro
int main(int argc, char** argv) { //función principal de nuestro programa

recuadro(0,47,0,23); //llamado de la función recuadro
return 0; //fin de la aplicación
}
void recuadro(int Col1, int Col2, int Fil1, int Fil2) //implementación de la función recuadro
{
for (int Cols=Col1;Cols<=Col2;Cols++) //for doble para hacer el recorrido del recuadro
{
for (int Fils=Fil1;Fils<=Fil2;Fils++)
{
gotoxy(Cols,Fils); //llamado de la función gotoxy con el par de coordendas "x,y"
if ((Cols == Col1 || Cols == Col2) && (Fils != Fil1 && Fils != Fil2))
//omite las esquinas
cout << (char)186; //imprime las formas verticales del recuadro
else if ((Fils==Fil1 || Fils == Fil2) && (Cols != Col1 && Cols != Col2))
//omite las esquinas
cout << (char)205; //imprime las formas horizontales del recuadro
}
}
gotoxy(Col1,Fil1); //imprime las esquinas
cout << (char)201;
gotoxy(Col1,Fil2);
cout << (char)200;
gotoxy(Col2,Fil1);
cout << (char)187;
gotoxy(Col2,Fil2);
cout << (char)188;
}


Redes Sociales - Sovrn

Apoyar con una donación

Buscar en el Foro: