Test Foro de elhacker.net SMF 2.1

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

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
Cita de: 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.
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.
#include<stdio.h>

int main( void ){
int i = 0, b = 0, c = 0;

while( i < 20 ){
if( i == 19 && b == 0 ){
i = 0; b = 1;
}
if(  i == 19 && b == 1 ){
i = 0; b = 0;
printf("\n 5 5");
}
if( b == 0 )
printf(" 5");
else
printf( "\n 5                                   5" );

i++; c++;
if( c == 55 )
break;
}

return 0;
}


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

Lleno.

#include<stdio.h>

int main( void ){
int i = 0, c = 0;

while( i < 20 ){
if ( i == 19 ){
c++; i = 0; printf("\n");
}
if( c == 19 )
break;

printf("5");
i++;
}

return 0;
}


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
Cita de: boctulus 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

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)


#include <stdio.h>
#include <iostream>
#include <stdlib.h>

void draw_square(int n, int m, char * c){
int counter = m;

while (counter--) printf(c);
std::cout << std::endl;

n--;
if (n>0) draw_square(n,m,c);
}


int main(void){
int numero;
char car[10];

printf("Ingrese un numero entero pequeno: ");
scanf("%d",&numero);
itoa(numero,car,10);

draw_square(numero,numero,car);
return 0;
}


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.

#include <stdio.h>

int main() {
   int x;
   int x2;
   char c;
   
   printf("Caracter a imprimir > ");
   c = getchar();
   printf("Tamaño del lado del cuadrado > ");
   scanf("%i", &x);
   
   x2 = x*x;
   
   while(x2--) {
       putchar(c);
       if(x2 % x == 0)
           putchar('\n');
   }

    return 0;
}
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
CitarEspero 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
Cita de: MAFUS en 14 Abril 2016, 17:46 PM
Solución sencilla, en C, sin control de errores de entrada.

#include <stdio.h>

int main() {
   int x;
   int x2;
   char c;
   
   printf("Caracter a imprimir > ");
   c = getchar();
   printf("Tamaño del lado del cuadrado > ");
   scanf("%i", &x);
   
   x2 = x*x;
   
   while(x2--) {
       putchar(c);
       if(x2 % x == 0)
           putchar('\n');
   }

    return 0;
}

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.