Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ianmorar03 en 14 Abril 2016, 00:33 am



Título: Cuadrado en c++
Publicado por: ianmorar03 en 14 Abril 2016, 00:33 am
Hola gente.
Quiero hacer un cuadrado en c++
tengo este codigo
Código:
int numero=5;
char letra;
cin>>letra;
while(numero>0){
    cout>>letra;
    numero=numero+1;
}

Necesito que me imprima para abajo la misma cantidad de numeros, se que se hace con un salto de linea pero no se como.
Con while y no con for
Se les agradece la ayuda, muchas gracias.


Título: Re: Cuadrado en c++
Publicado por: ivancea96 en 14 Abril 2016, 00:37 am
Tendrás que hacer 2 bucles, uno dentro del otro.

En el de fuera, primero tendrás un bucle dentro escribiendo toda una fila, y luego despues de ese bucle, un salto de línea.

En el de dentro, simplemente escribes la letra.

Utiliza 2 variables más para hacerlo: una para cada bucle.


Título: Re: Cuadrado en c++
Publicado por: ianmorar03 en 14 Abril 2016, 01:14 am
Tendrás que hacer 2 bucles, uno dentro del otro.

En el de fuera, primero tendrás un bucle dentro escribiendo toda una fila, y luego despues de ese bucle, un salto de línea.

En el de dentro, simplemente escribes la letra.

Utiliza 2 variables más para hacerlo: una para cada bucle.
Entendi lo que me quisiste decir, es como un ancho y un alto, pero necesito que con solo una entrada, me haga para abajo y a los lados...


Título: Re: Cuadrado en c++
Publicado por: HardForo en 14 Abril 2016, 02:16 am
Como te dicen, debes hacer 2 bucles ya que necesitas llenar todas las posiciones de una fila para cada columna (o de una columna para cada fila)

No hay otra.


Título: Re: Cuadrado en c++
Publicado por: NOB2014 en 14 Abril 2016, 03:30 am
Hola .-
Si interprete correctamente lo que necesitas el siguiente programa logra el cometido, solo que está hecho en c, pasarlo a c++ debe ser tan simple como respirar. -

Vacio.
Código
  1. #include<stdio.h>
  2.  
  3. int main( void ){
  4. int i = 0, b = 0, c = 0;
  5.  
  6. while( i < 20 ){
  7. if( i == 19 && b == 0 ){
  8. i = 0; b = 1;
  9. }
  10. if(  i == 19 && b == 1 ){
  11. i = 0; b = 0;
  12. printf("\n 5 5");
  13. }
  14. if( b == 0 )
  15. printf(" 5");
  16. else
  17. printf( "\n 5                                   5" );
  18.  
  19. i++; c++;
  20. if( c == 55 )
  21. break;
  22. }
  23.  
  24. return 0;
  25. }

(http://i68.tinypic.com/2gwdz0x.png)

Lleno.

Código
  1. #include<stdio.h>
  2.  
  3. int main( void ){
  4. int i = 0, c = 0;
  5.  
  6. while( i < 20 ){
  7. if ( i == 19 ){
  8. c++; i = 0; printf("\n");
  9. }
  10. if( c == 19 )
  11. break;
  12.  
  13. printf("5");
  14. i++;
  15. }
  16.  
  17. return 0;
  18. }

Saludos.
Daniel


Título: Re: Cuadrado en c++
Publicado por: HardForo en 14 Abril 2016, 04:09 am
No quedo claro para mi si el cuadrado es "lleno" o no........

Ojala se aclare para ver si ya esta la respuesta definitiva


Título: Re: Cuadrado en c++
Publicado por: ianmorar03 en 14 Abril 2016, 16:14 pm
No quedo claro para mi si el cuadrado es "lleno" o no........

Ojala se aclare para ver si ya esta la respuesta definitiva

boctulus el cuadrado es lleno, no es vacio


Título: Re: Cuadrado en c++
Publicado por: HardForo en 14 Abril 2016, 16:56 pm
Entonces..... aca está, solo uso un while() y recursion para emular el otro bucle (ya que insistes que es solo 1 permitido)

Código
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <stdlib.h>
  4.  
  5. void draw_square(int n, int m, char * c){
  6. int counter = m;
  7.  
  8. while (counter--) printf(c);
  9. std::cout << std::endl;
  10.  
  11. n--;
  12. if (n>0) draw_square(n,m,c);
  13. }
  14.  
  15.  
  16. int main(void){
  17. int numero;
  18. char car[10];
  19.  
  20. printf("Ingrese un numero entero pequeno: ");
  21. scanf("%d",&numero);
  22. itoa(numero,car,10);
  23.  
  24. draw_square(numero,numero,car);
  25. return 0;
  26. }

Sigo pensando te interpretamos mal y puedes usar dos bucles while(), en tal caso nos dices


Título: Re: Cuadrado en c++
Publicado por: MAFUS en 14 Abril 2016, 17:46 pm
Solución sencilla, en C, sin control de errores de entrada.
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    int x;
  5.    int x2;
  6.    char c;
  7.  
  8.    printf("Caracter a imprimir > ");
  9.    c = getchar();
  10.    printf("Tamaño del lado del cuadrado > ");
  11.    scanf("%i", &x);
  12.  
  13.    x2 = x*x;
  14.  
  15.    while(x2--) {
  16.        putchar(c);
  17.        if(x2 % x == 0)
  18.            putchar('\n');
  19.    }
  20.  
  21.    return 0;
  22. }


Título: Re: Cuadrado en c++
Publicado por: HardForo en 14 Abril 2016, 18:06 pm
@MAFUS:  me gustó mucho tu código, realmente compacto  ;-)

Reordenando el mio sigue siendo mas largo, uso mas librerias y seguramente será mas lento y el ejecutable de mayor tamaño.


Título: Re: Cuadrado en c++
Publicado por: NOB2014 en 14 Abril 2016, 18:35 pm
Hola.
Espero que por lo menos él mío lo pongan en segundo lugar. - :D :D :D

Daniel.


Título: Re: Cuadrado en c++
Publicado por: HardForo en 14 Abril 2016, 18:55 pm
Citar
Espero que por lo menos él mío lo pongan en segundo lugar. - :D :D :D

Seguro que si Daniel  :xD  ;D


Título: Re: Cuadrado en c++
Publicado por: ianmorar03 en 14 Abril 2016, 22:22 pm
Solución sencilla, en C, sin control de errores de entrada.
Código
  1. #include <stdio.h>
  2.  
  3. int main() {
  4.    int x;
  5.    int x2;
  6.    char c;
  7.  
  8.    printf("Caracter a imprimir > ");
  9.    c = getchar();
  10.    printf("Tamaño del lado del cuadrado > ");
  11.    scanf("%i", &x);
  12.  
  13.    x2 = x*x;
  14.  
  15.    while(x2--) {
  16.        putchar(c);
  17.        if(x2 % x == 0)
  18.            putchar('\n');
  19.    }
  20.  
  21.    return 0;
  22. }
Este es EL codigo jaja, muy simple y muy facil de comprender, muchas gracias, igual los de arriba me ayudaron mucho a entender el codigo.