Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- //La funcion posicionarY, da "y"(valor ingresado por el usuario) saltos de línea
- //de arriba hacia abajo después de los cuales se ejecutará la siguiente instrucción
- //Recordar que en la consola de Windows el eje Y está invertido y cada vez que
- //se aumente un valor irá de arriba hacia abajo
- void posicionarY(short* y)
- {
- short* i = new short; //creando un puntero a una variable de tipo short y luego apunta hacia ella (i)
- for (*i = 1; *i <= (*y) - 1; (*i)++) //se usa *i (comando de indirección) para obtener
- //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
- {
- cout << endl;
- }
- }
- //La función posicionarX, da "x"(valor ingresado por el usuaria) número espacios
- //de izquierda a derecha después de los cuales se ejecutará la siguiente instrucción
- void posicionarX(short* x)
- {
- short* i = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (i)
- for (*i = 1; *i <= (*x) - 1; (*i)++)//se usa *i (comando de indirección) para obtener
- //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
- {
- cout << " ";
- }
- }
- //La función DibujaCuadrado, dibujará un cuadrado con un caractér seleccionado por el
- //usuario (caracter) y de una longitud ingresada por el usuario (n)
- void DibujaCuadrado(short* n, char* caracter, short* x, short* y)//
- {
- system("cls");//cls: clear screen(limpia la pantalla de la consola)
- short* f = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (f)
- short* c = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (c)
- //se llama a la función posicionarY para asignar y saltos de línea ingresados por el usuario,
- //antes de ejecutar la siguiente instrucción
- posicionarY(y);
- for (*f = 1; *f <= *n; (*f)++) //se usa *f (comando de indirección) para obtener
- //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
- //*f representa al número filas que tendrá la imagen, las cuales se imprimirán de acuerdo mientras
- //se cumplan las condiciones del for
- {
- //se llama a la función posicionarX para asignar x números de espacios ingresados por el usuario,
- //antes de ejecutar la siguiente instrucción
- posicionarX(x);
- for (*c = 1; *c <= *n; (*c)++) {//se usa *f (comando de indirección) para obtener
- //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
- //*c representa al número columnas que tendrá la imagen, las cuales se imprimirán de acuerdo mientras
- //se cumplan las condiciones del for
- cout << *caracter;
- }
- cout << endl;
- }
- }
- int main() {
- //n, x, y: NO SON VARIABLES SHORT, SON PUNTEROS
- //A VARIABLES SHORT, aunque aun no he creado las variables
- //short a las que apuntan
- short *n, *x, *y;
- //Creando las variables short y apuntando a ellas
- n = new short;
- x = new short;
- y = new short;
- //caracter: NO ES UNA VARIABLE CHAR, ES UN PUNTERO A UNA
- //VARIABLE CHAR, aunque aun no he creado la variable
- //char a las que apunta
- char *caracter;
- //Creando la variable char y apuntando a ella
- caracter = new char;
- cout << "Ingrese los Datos" << endl;
- //Ingresando los valores en las indirecciones de los
- //valores guardados los punteros (recordando que
- //un puntero solo puede guardar direcciones)
- cout << "Caracter: "; cin >> *caracter;
- cout << "n: "; cin >> *n;
- cout << "x: "; cin >> *x;
- cout << "y: "; cin >> *y;
- //Se llama a la función DibujarCuadrado para dibujar la figura
- //utilizando los datos ya ingresados por el usuario
- DibujaCuadrado(n, caracter, x, y);
- system("pause");//se utiliza para darle pausa al programa
- //y esperar a que el usuario presione una tecla para que
- //continue ejecutándose
- //delete permite liberar la memoria reservada por new
- //ya que una vez liberada la memoria ya no se podrá acceder a ella,
- //por lo que es necesario liberarla una vez ya no se necesite utilizarla
- //RECORDAR QUE SIEMPRE QUE EXISTA UN NEW DEBERÁ EXISTIR UN DELETE
- delete n;
- delete caracter;
- delete x;
- delete y;
- return 0; //retorna a 0 la función y finaliza el programa
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement