Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda backtracking (programacion avanzada)

Estas en el tema de Ayuda backtracking (programacion avanzada) en el foro de C/C++ en Foros del Web. Hola a todos les comento, estoy trabajando con backtracking y estoy algo complicado con el codigo del problema por ejemplo me pide que lea los ...
  #1 (permalink)  
Antiguo 03/07/2010, 20:22
Avatar de extremoo  
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Ayuda backtracking (programacion avanzada)

Hola a todos les comento, estoy trabajando con backtracking y estoy algo complicado con el codigo del problema por ejemplo me pide que lea los numeros indicados en una linea separados por espacio, y lea desde teclado una matriz de esas dimensiones, la matriz contiene las siguientes caracteristicas :
" ." (punto) si no hay cosas
"*" (arterisco) que corresponde a una rueda
"I" (i mayuscula) que corresponde a un motor que gira en sentido horario. Ojo si al lado de la I encuentra un * ese arterisco gira en sentido contrario ya que lo hace girar la I

mi codigo es el siguiente hasta ahora puedo leer la matriz sin problemas hasta encontrar que el usuario ingrese 0 0 y termine.

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void llenar(char **s,int posx, int posy)
  5. {
  6. //aqui defino posiciones  q revisar la de iz de I, la de derecha, arriba,abajo, (arriba der y abajo iz). para aplicar backtraking
  7.     s[0][0] = posx   ;
  8.     s[0][1] = posy -1;
  9.  
  10.     s[1][0] = posx   ;
  11.     s[1][1] = posy +1;
  12.  
  13.     s[2][0] = posx +1;
  14.     s[2][1] = posy -1;
  15.  
  16.     s[3][0] = posx -1;
  17.     s[3][1] = posy +1;
  18.  
  19.     s[4][0] = posx -1;
  20.     s[4][1] = posy   ;
  21.  
  22.     s[5][0] = posx +1;
  23.     s[5][1] = posy   ;
  24. }
  25.  
  26. void mostrar(char **t, int n, int m)
  27. {
  28.     for(int i=0 ; i< n; i++)
  29.     {
  30.      for(int j=0; j < m ; j++)
  31.      {
  32.       cout<<""<<t[i][j];
  33.      }
  34.      cout<<endl;
  35.     }
  36. }
  37.  
  38. int main (int argc, char** argv)
  39. {
  40.   int R,C;
  41.   char **arr;
  42.   cin >>R;
  43.   cin >>C;  
  44.   while( R != 0  &&  C != 0 )
  45.   {
  46.     arr = new char*[R];
  47.     for(int i= 0; i <R ; i++)
  48.     {
  49.         arr[i] = new char[C];
  50.         for(int j = 0; j < C ; j++)
  51.         {
  52.         cin>>arr[i][j];
  53.         }
  54.     }
  55.   cout<<endl;
  56. // backtraking(arr,R,C,i,j);
  57.   mostrar(arr,R,C);    
  58.   cin >>R;
  59.   cin >>C;
  60.   }    
  61. return 0;
  62. }

En estos momentos necesito recorrer nuevamente la matriz guardada hasta encontrar una I y colocarle un "(" parentesis y la rueda que hace girar la I colocarle un ")" de esta forma.

Ejemplo visual
---------------------
para in
-----------
3 3
...
.I*
...
-----------
para out para in
______
...
.()
...

Etiquetas: programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:27.