Advertisement
DiegoDBA02

Ejercicio 3 - Lista 1 - Líneas de código comentadas

May 21st, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //La funcion posicionarY, da "y"(valor ingresado por el usuario) saltos de línea
  5. //de arriba hacia abajo después de los cuales se ejecutará la siguiente instrucción
  6. //Recordar que en la consola de Windows el eje Y está invertido y cada vez que
  7. //se aumente un valor irá de arriba hacia abajo
  8. void posicionarY(short* y)
  9. {
  10. short* i = new short; //creando un puntero a una variable de tipo short y luego apunta hacia ella (i)
  11. for (*i = 1; *i <= (*y) - 1; (*i)++) //se usa *i (comando de indirección) para obtener
  12. //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
  13. {
  14. cout << endl;
  15. }
  16. }
  17.  
  18. //La función posicionarX, da "x"(valor ingresado por el usuaria) número espacios
  19. //de izquierda a derecha después de los cuales se ejecutará la siguiente instrucción
  20. void posicionarX(short* x)
  21. {
  22. short* i = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (i)
  23. for (*i = 1; *i <= (*x) - 1; (*i)++)//se usa *i (comando de indirección) para obtener
  24. //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
  25. {
  26. cout << " ";
  27. }
  28. }
  29.  
  30. //La función DibujaCuadrado, dibujará un cuadrado con un caractér seleccionado por el
  31. //usuario (caracter) y de una longitud ingresada por el usuario (n)
  32. void DibujaCuadrado(short* n, char* caracter, short* x, short* y)//
  33. {
  34. system("cls");//cls: clear screen(limpia la pantalla de la consola)
  35. short* f = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (f)
  36. short* c = new short;//creando un puntero a una variable de tipo short y luego apunta hacia ella (c)
  37. //se llama a la función posicionarY para asignar y saltos de línea ingresados por el usuario,
  38. //antes de ejecutar la siguiente instrucción
  39. posicionarY(y);
  40. for (*f = 1; *f <= *n; (*f)++) //se usa *f (comando de indirección) para obtener
  41. //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
  42. //*f representa al número filas que tendrá la imagen, las cuales se imprimirán de acuerdo mientras
  43. //se cumplan las condiciones del for
  44. {
  45. //se llama a la función posicionarX para asignar x números de espacios ingresados por el usuario,
  46. //antes de ejecutar la siguiente instrucción
  47. posicionarX(x);
  48. for (*c = 1; *c <= *n; (*c)++) {//se usa *f (comando de indirección) para obtener
  49. //el valor que está en alojado en la dirección de memoria a la que apuntaba el puntero
  50. //*c representa al número columnas que tendrá la imagen, las cuales se imprimirán de acuerdo mientras
  51. //se cumplan las condiciones del for
  52. cout << *caracter;
  53. }
  54. cout << endl;
  55. }
  56. }
  57.  
  58. int main() {
  59. //n, x, y: NO SON VARIABLES SHORT, SON PUNTEROS
  60. //A VARIABLES SHORT, aunque aun no he creado las variables
  61. //short a las que apuntan
  62. short *n, *x, *y;
  63. //Creando las variables short y apuntando a ellas
  64. n = new short;
  65. x = new short;
  66. y = new short;
  67. //caracter: NO ES UNA VARIABLE CHAR, ES UN PUNTERO A UNA
  68. //VARIABLE CHAR, aunque aun no he creado la variable
  69. //char a las que apunta
  70. char *caracter;
  71. //Creando la variable char y apuntando a ella
  72. caracter = new char;
  73.  
  74. cout << "Ingrese los Datos" << endl;
  75. //Ingresando los valores en las indirecciones de los
  76. //valores guardados los punteros (recordando que
  77. //un puntero solo puede guardar direcciones)
  78. cout << "Caracter: "; cin >> *caracter;
  79. cout << "n: "; cin >> *n;
  80. cout << "x: "; cin >> *x;
  81. cout << "y: "; cin >> *y;
  82.  
  83. //Se llama a la función DibujarCuadrado para dibujar la figura
  84. //utilizando los datos ya ingresados por el usuario
  85. DibujaCuadrado(n, caracter, x, y);
  86. system("pause");//se utiliza para darle pausa al programa
  87. //y esperar a que el usuario presione una tecla para que
  88. //continue ejecutándose
  89.  
  90. //delete permite liberar la memoria reservada por new
  91. //ya que una vez liberada la memoria ya no se podrá acceder a ella,
  92. //por lo que es necesario liberarla una vez ya no se necesite utilizarla
  93. //RECORDAR QUE SIEMPRE QUE EXISTA UN NEW DEBERÁ EXISTIR UN DELETE
  94. delete n;
  95. delete caracter;
  96. delete x;
  97. delete y;
  98.  
  99. return 0; //retorna a 0 la función y finaliza el programa
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement