Comunidad de diseño web y desarrollo en internet online

Progama en C++ desde Linux

Citar            
MensajeEscrito el 09 Ene 2006 11:42 pm
Hola.
Estaba haciendo un programa, pero hay una cosa que no me sale, a ver si se os ocurre que es.

El programa tiene que dar una tabla de ajedrez de la siguiente manera:

Código :

  A B C D E F G H
1 . . . . . . . .
2 . . . . . . . .
3 . . . . . . . .
4 . . . . . . . .
5 . . . . . . . .
6 . . . . . . . .
7 . . . . . . . .
8 . . . . . . . .
Y el usuario tiene que dar una coordenada para que aparezca una "i" en esa posición.

Lo he intentado de varias formas, y así es como lo he dejado al final :

Código :

#include<iostream.h>
using namespace std;

main()
{
   int i,j,h,num,A,B,C,D,E,F,G,H;
   char letra;

   cout<<"\nEscriba la letra: ";
   cin>>letra;
   cout<<"\nEscriba el numero: ";
   cin>>num;
   cout<<"Las coordenadas son: "<<letra<<num;

   cout<<"\n  A B C D E F G H";
   
   A=1;
   B=2;
   C=3;
   D=4;
   E=5;
   F=6;
   G=7;
   H=8;
   for(i=1;i<=8;i++){
      cout<<"\n"<<i;
      j=1;
      while(j<letra)
         cout<<" .";
      while(j=letra)
         cout<<" i";
      j=j++
      while(j<=8)
         cout<<" .";
   cout<<endl;}   
}
El usuario puede meter la coordenada, pero el problema es que sale un bucle infinito del primer " ."
Lo intenté al principio con "for" en vez los "while", pero tampoco funciona.

Saludos

Por $var

405 de clabLevel



 



Ultima edición por $var el 10 Ene 2006 12:36 am, editado 1 vez

firefox
Citar            
MensajeEscrito el 10 Ene 2006 12:25 am
Mirándomelo un poco por encima, he visto que en el while asignas en vez de comparar ('=' frente a '=='). Supongo que será eso.

Saludos! ^^

Por [Sheer]

Claber

283 de clabLevel

1 tutorial

Genero:Masculino  

Barcelona

opera
Citar            
MensajeEscrito el 10 Ene 2006 08:08 am
Veamos... el programa tiene algunos errores fundamentales
Hay un error muy básico, que es cuando comparas j con letra.

Nunca compares dos tipos distintos de datos a no ser que sepas muy bien qué estás haciendo.

j es int y letra char. Mal asunto si los comparas, te recomiendo que j sea también un char, así no te daría error. Se pueden hacer comparaciones e incrementos en los tipo char sin problema. El compilador entiende el tipo char como un código en ASCII, luego el resultado de una comparación depende del valor en ASCII.

O sea, por ejemplo:

Código :

char letra1, letra2;

letra1='A';
letra1++;
cout<<letra1; //esto mostraría por pantalla "B"

letra2='C'; //Ahora mismo letra1 es menor que letra2


Algo similar ocurre con A, B, C... etc. Trata de trabajar con char, o con un vector de char, me da la sensación de que el problema busca eso. Aprenderás más.

Código :

for(i=1;i<=8;i++){
      cout<<"\n"<<i;
      j=1;
      while(j<letra)
         cout<<" .";
      while(j=letra)
         cout<<" i";
      j=j++; /*Te faltaba el punto y coma (aparte sólo es                          
                   necesario poner j++ además de que 
                   colocándolo aquí, j siempre sera menor que letra
                  luego el bucle infinito está en el "while(j<letra) */
      while(j<=8)
         cout<<" .";
   cout<<endl;}


Con un bucle puedes controlar las filas (un vector de enteros) y con otro las columnas (un vector de char) e ir comparando...

Bueno no te voy a resolver el problema evidentemente, creo que es más útil este guión para que lo puedas resolver por ti mismo.

1saludo

Por Pirata

145 de clabLevel

1 tutorial

 

firefox
Citar            
MensajeEscrito el 10 Ene 2006 11:07 am
Muchas gracas Pirata ;)
Voy a probar lo que me has dicho a ver si me sale.

Por $var

405 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Ene 2006 08:55 pm
De nada!

Postea la solución cuando la tengas a ver qué tal te queda ;)

Por Pirata

145 de clabLevel

1 tutorial

 

firefox
Citar            
MensajeEscrito el 19 Ene 2006 10:33 am
Quise hacer el programa yo sólo, pero al final no me salía y ha tenido que hacerlo mi compañero de clase :crap:
Se menos programación de lo que pensaba. Ahora estoy estudiando intensibamente para llegar a poder hacer esto.

Cuando sepa más, intentare hacer este yo sólo (y lo postearé aquí) :wink:

Por $var

405 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.