Hola a todos acudo a ustedes por que necesito ayuda con este tema no se me ocurre la manera de imprimir esta figura la verdad creo que es imposible hacerlo
*********
* ******* *
** ***** **
*** *** ***
**** * ****
***** *****
**** * ****
*** *** ***
** ***** **
* ******* *
*********
Alguien me da alguna idea aquí?
No es dicil, solo debes calcular la posicion de los espacios
Sí, por supuesto:
Acceder a los caracteres individuales de una cadena mediante la notación de array: cadena.
Se puede dibujar por líneas.
Puedes usar la variable de control del bucle que dibuja para controlar donde dibujar los espacios.
MAFUS: no creo lograr hacer eso soy un principiante aun
Cita de: Sosar en 2 Mayo 2016, 20:20 PM
MAFUS: no creo lograr hacer eso soy un principiante aun
Pues empieza por algo mas simple.
Piensa en una cosa: ¿cuándo se dibujan los espacios? Se dibujan cuando el número de la fila coincide con el número de la columna
Borré el código que postee porque estaba incumpliendo las reglas del foro
Ahora le puedes explicar el porqué de cada línea del programa.
[quote author=Geeke link=topic=451817.msg2068787#msg2068787 date=1462218147]
Esta algo complicado pero ::)
[/quote]
Te van a recriminar el haberselo hecho y cerraran el hilo.
Lo que no entiendo es si debemos dar solo pistas o que. No le veo el sentido.
Si alguien pregunta por un ejercicio sin código, lo mejor es dar pistas, para que así el que pregunte la duda no tenga la respuesta sin pensar, pero tampoco se frustre
Tienes razón i-node puedes remover la cita a mi post
Bueno, vamos a hacer una cosa. Empieza poniendo el código que sepas y vamos montando el programa a partir de aquí.
Te dejo el código...
#include <iostream>
using namespace std;
int main() {
int x = 11;
for(int i = 0; i < x; i++) {
for(int j = 0; j < x; j++) {
if(j == i || j == (x-1) - i) {
cout << " ";
} else {
cout << "*";
}
}
cout << endl;
}
}
La posición de los espacios en blanco para formar la "X" tienden a aumentar y disminuir... osea primero se dibuja una "\" que en este caso va de 0 a 10, y una "/" que va de 10 a 0, colocando las posiciones en un plano quedaría:
(0, 0), (0,10)
(1, 1), (1, 9)
(2, 2), (2,8)
.
.
.
(10, 10), (10,0)
Una aumenta, otra disminuye... eso se cumple en la condición:
if(j == i || j == (x-1) - i) {
cout << " ";
} else {
cout << "*";
}
Haz una pueba de escritorio con las variables y verás que se cumplen perfectamente las condiciones ;D
Muchas gracias amigo me pondré a estudiar tu código ;-)
Gunhack: por favor no hagas tareas ajenas y menos con codigo completo y compilable, gracias.