Título: Ayuda con este trozo de código Publicado por: valrojo en 15 Noviembre 2019, 21:22 pm Realizar un programa que lea de teclado un número entero 'n' entre 4 y 300, par y nos muestre un
cuadrado de lado 'n' formado por: Asteriscos (*) en la parte inferior de la diagonal secundaria, Guiones (-) en la diagonal secundaria, y Cruces (+) por encima de la diagonal secundaria. Si se introduce un número incorrecto, el programa volverá a pedir de nuevo un número hasta que se introduzca un número correcto. Tiene que dar como resultado: +++- ++-* +-** -*** Mi resultado: -*** +-** ++-* +++- #include <iostream> using namespace std; int main () { int lado; cout << "Este programa muestra un cuadro con -, + y * " << endl; do { cout << "Dame valor del lado del cuadro (par entre 4 y 300): "; cin >> lado; if (lado < 4 || lado > 300 || lado % 2 != 0) cout << "Valor incorrecto. " << endl; } while(lado < 4 || lado > 300 || lado % 2 != 0); for (int i = 0; i < lado; i++) { for (int x = 0; x < lado; x++) { if(x < i) cout << "+"; else if (x > i) cout << "*"; else cout << "-"; } cout << endl; } return 0; } Título: Re: Ayuda con este trozo de código Publicado por: K-YreX en 16 Noviembre 2019, 01:49 am Para próximas consultas, coloca el código entre etiquetas de Código GeSHi.
La parte del filtro está todo bien. La única mejora que se me ocurre es guardar las condiciones en una variable de tipo <bool> para no tener que realizar las comprobaciones dos veces (una en el <if> y otra en el <while>). Código
Ahora imagina que <lado> vale 4. El resultado se vería algo así: Código: + + + - Código: Fila 0: (lado - 1) veces el símbolo '+' y un '-' La parte del '+' ya la tenemos: para la fila i, (lado - i - 1) veces el símbolo '+'. La parte del '-' también porque siempre es, un símbolo '-' cuando se completan los '+'. Es decir, para cada fila i, un '-' en la posición (lado - i). La parte del '*' podemos verlo como desde (lado - i) hasta (lado - 1). Entonces quedaría algo así: Código: INICIO Intenta codificar ese pseudocódigo en C++ y si tienes problemas puedes poner tu código para que te ayudemos pero recuerda, entre etiquetas de Código GeSHi. Título: Re: Ayuda con este trozo de código Publicado por: valrojo en 16 Noviembre 2019, 10:20 am Código
Para lado 4: +++- ++-* +-** No veo el porqué de salirme una fila menos :( Ya está: Código
Muchas gracias por la ayuda, soy nuevo en esto y me cuestan ver este tipo de fallos :) MOD: No hacer triple post. Usa el boton modificar. |