elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: [problema]Sudoki en: 25 Marzo 2012, 15:14 pm
mas o menos entiendo la idea pero no se como integrar la funcion booleana que dices con la funcion rellenar tablero
2  Programación / Programación C/C++ / [problema]Sudoki en: 25 Marzo 2012, 03:48 am
Hola buenas a ver si alguien puede ayudarme con un problema de mi sudoku tengo creado el codigo para quue sea capaz de introducir numeros en el sudoku de 0 a 9 pero el problema es que no se me ocurre nada para la restriccion de añadir numeros que esten ya incluidos en la fila en la columna o en la submatriz, se lo agradeceria mucho!!


Código
  1. #include <iostream>
  2. #include<fstream>
  3. using namespace std;
  4. typedef char tab[9][9];
  5. bool inicializarSudoku(tab Tablero);
  6. void mostrarSudoku(tab Tablero);
  7. void RellenarSudoku(tab Tablero);
  8.  
  9. int main()
  10. {
  11.  
  12. int a=0;
  13. tab Tablero;
  14.    inicializarSudoku(Tablero);
  15. mostrarSudoku(Tablero);
  16. while(a==0){
  17. RellenarSudoku(Tablero);
  18. mostrarSudoku(Tablero);
  19. }
  20. return 0;
  21. }
  22.  
  23. void RellenarSudoku(tab Tablero)
  24. {
  25.  
  26. int x, y;
  27. char valor;
  28.  
  29.  
  30. cout<<"introduce fila";
  31. cin>>x;
  32.  
  33. cout<<"introduce columna";
  34. cin>>y;
  35.  
  36. cout<<"introduce valor";
  37. cin>>valor;
  38. if((x>=9)&&(y>=9)&&(valor>9))
  39. {cout <<"error de numero"<<endl;}
  40. else Tablero[x][y]=valor;
  41. }
  42. bool inicializarSudoku(tab Tablero)
  43. {
  44.  
  45.     int a, b;
  46.     for (a=0;a<9;a++)
  47.     {
  48.         for (b=0;b<9;b++)
  49.         {
  50.             Tablero[a][b]=' ';
  51.         }
  52.     }
  53.  
  54. int i, j;
  55. char c;
  56.  
  57. ifstream archivo;
  58.  
  59. archivo.open("sudoku.txt");
  60.  
  61.  
  62. do
  63. {
  64. archivo >> j>>i>>c;
  65. Tablero[i][j] = c;
  66. }
  67. while(!archivo.eof());
  68.  
  69. archivo.close();
  70. }
  71.  
  72.  
  73. void mostrarSudoku(tab Tablero)
  74. {cout<<"  - - -   - - -   - - -  "<<endl<<"|"<<" ";
  75.    for(int i=0;i<3;i++)
  76. for(int j=0;j<1;j++){
  77.  
  78. cout<<Tablero[i][j]<<" ";}
  79. cout<<"|"<<" ";
  80. for(int i=3;i<6;i++)
  81. for(int j=0;j<1;j++){
  82.  
  83. cout<<Tablero[i][j]<<" ";}
  84. cout<<"|"<<" ";
  85. for(int i=6;i<9;i++)
  86. for(int j=0;j<1;j++){
  87.  
  88. cout<<Tablero[i][j]<<" ";}
  89. cout<<"|"<<" "<<endl<<"|"<<" ";
  90.  
  91.  
  92.  
  93.  
  94.  
  95. for(int i=0;i<3;i++)
  96. for(int j=1;j<2;j++){
  97.  
  98. cout<<Tablero[i][j]<<" ";}
  99. cout<<"|"<<" ";
  100. for(int i=3;i<6;i++)
  101. for(int j=1;j<2;j++){
  102.  
  103. cout<<Tablero[i][j]<<" ";}
  104. cout<<"|"<<" ";
  105. for(int i=6;i<9;i++)
  106. for(int j=1;j<2;j++){
  107.  
  108. cout<<Tablero[i][j]<<" ";}
  109. cout<<"|"<<" "<<endl<<"|"<<" ";
  110.  
  111.  
  112.  
  113. for(int i=0;i<3;i++)
  114. for(int j=2;j<3;j++){
  115.  
  116. cout<<Tablero[i][j]<<" ";}
  117. cout<<"|"<<" ";
  118. for(int i=3;i<6;i++)
  119. for(int j=2;j<3;j++){
  120.  
  121. cout<<Tablero[i][j]<<" ";}
  122. cout<<"|"<<" ";
  123. for(int i=6;i<9;i++)
  124. for(int j=2;j<3;j++){
  125.  
  126. cout<<Tablero[i][j]<<" ";}
  127. cout<<"|"<<" "<<endl;
  128.  
  129. cout<<"  - - -   - - -   - - -  "<<endl<<"|"<<" ";
  130.  
  131. for(int i=0;i<3;i++)
  132. for(int j=3;j<4;j++){
  133.  
  134. cout<<Tablero[i][j]<<" ";}
  135. cout<<"|"<<" ";
  136. for(int i=3;i<6;i++)
  137. for(int j=3;j<4;j++){
  138.  
  139. cout<<Tablero[i][j]<<" ";}
  140. cout<<"|"<<" ";
  141. for(int i=6;i<9;i++)
  142. for(int j=3;j<4;j++){
  143.  
  144. cout<<Tablero[i][j]<<" ";}
  145. cout<<"|"<<" "<<endl<<"|"<<" ";
  146.  
  147.  
  148.  
  149. for(int i=0;i<3;i++)
  150. for(int j=4;j<5;j++){
  151.  
  152. cout<<Tablero[i][j]<<" ";}
  153. cout<<"|"<<" ";
  154. for(int i=3;i<6;i++)
  155. for(int j=4;j<5;j++){
  156.  
  157. cout<<Tablero[i][j]<<" ";}
  158. cout<<"|"<<" ";
  159. for(int i=6;i<9;i++)
  160. for(int j=4;j<5;j++){
  161.  
  162. cout<<Tablero[i][j]<<" ";}
  163. cout<<"|"<<" "<<endl<<"|"<<" ";
  164.  
  165.  
  166.  
  167. for(int i=0;i<3;i++)
  168. for(int j=5;j<6;j++){
  169.  
  170. cout<<Tablero[i][j]<<" ";}
  171. cout<<"|"<<" ";
  172. for(int i=3;i<6;i++)
  173. for(int j=5;j<6;j++){
  174.  
  175. cout<<Tablero[i][j]<<" ";}
  176. cout<<"|"<<" ";
  177. for(int i=6;i<9;i++)
  178. for(int j=5;j<6;j++){
  179.  
  180. cout<<Tablero[i][j]<<" ";}
  181. cout<<"|"<<" "<<endl;
  182.  
  183. cout<<"  - - -   - - -   - - -  "<<endl<<"|"<<" ";
  184.  
  185. for(int i=0;i<3;i++)
  186. for(int j=6;j<7;j++){
  187.  
  188. cout<<Tablero[i][j]<<" ";}
  189. cout<<"|"<<" ";
  190. for(int i=3;i<6;i++)
  191. for(int j=6;j<7;j++){
  192.  
  193. cout<<Tablero[i][j]<<" ";}
  194. cout<<"|"<<" ";
  195. for(int i=6;i<9;i++)
  196. for(int j=6;j<7;j++){
  197.  
  198. cout<<Tablero[i][j]<<" ";}
  199. cout<<"|"<<" "<<endl<<"|"<<" ";
  200.  
  201.  
  202.  
  203. for(int i=0;i<3;i++)
  204. for(int j=7;j<8;j++){
  205.  
  206. cout<<Tablero[i][j]<<" ";}
  207. cout<<"|"<<" ";
  208. for(int i=3;i<6;i++)
  209. for(int j=7;j<8;j++){
  210.  
  211. cout<<Tablero[i][j]<<" ";}
  212. cout<<"|"<<" ";
  213. for(int i=6;i<9;i++)
  214. for(int j=7;j<8;j++){
  215.  
  216. cout<<Tablero[i][j]<<" ";}
  217. cout<<"|"<<" "<<endl<<"|"<<" ";
  218.  
  219. for(int i=0;i<3;i++)
  220. for(int j=8;j<9;j++){
  221.  
  222. cout<<Tablero[i][j]<<" ";}
  223. cout<<"|"<<" ";
  224. for(int i=3;i<6;i++)
  225. for(int j=8;j<9;j++){
  226.  
  227. cout<<Tablero[i][j]<<" ";}
  228. cout<<"|"<<" ";
  229. for(int i=6;i<9;i++)
  230. for(int j=8;j<9;j++){
  231.  
  232. cout<<Tablero[i][j]<<" ";}
  233. cout<<"|"<<" "<<endl;
  234. cout<<"  - - - - - - - - - - -  "<<endl<<" ";
  235. }
  236.  
3  Programación / Programación C/C++ / PROBLEMA calculadora en: 3 Diciembre 2011, 03:12 am
hola buenas  quisiera que alguien me pudiera ayudar a terminar lo ultimo paso de mi calculadora, el problema esta en que te da tres opciones de las cuales la primera es acceder a la calculadora la segunda modificar las teclas de los operadores y la tercera salir. pues bien tengo el problema en la segunda opcion no soy capaz de modificar las teclas en los cases; me ha dicho que deberia poner un if del tipo if(tecla==) antes del switch, pero ni ide a ver si alguno me puede ayudar

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double argumento1,factorial, b,argumento2,resultado;
char operador;
char opsuma = '+';
char opresta = '-';
char opmultiplicacion = '*';
char opdivision = '/';
char opraices = 'r';
char oppotencias = '^';
char opfactorial = '!';
bool error=false;
int eleccion;
   cout<<"CALCULADORA"<<endl;
   cout<< "1.- Calculadora" <<endl;
   cout<< "2.- Configuracion" <<endl;
   cout<< "3.- Terminar" <<endl;
   cin>> eleccion;
   
   if (eleccion==1)
   {   
      cout << " Introduce la expresion a evaluar: ";
      cin >> argumento1;

      while (argumento1!=0)
      {
         cin.get(operador);

         while (operador!='\n')
         {
            switch (operador)
            {
            case '+': cin>> argumento2; resultado=argumento1+argumento2; break;
            case '-': cin>> argumento2; resultado=argumento1-argumento2; break;
            case '*': cin>> argumento2; resultado=argumento1*argumento2; break;
            case '/': cin>> argumento2; if(argumento2==0){error=true;} else ;resultado=argumento1/argumento2; break;
            case '^': cin>> argumento2; resultado=pow(argumento1,argumento2); break;
            case 'r': if(argumento1<0) {error=true;} else resultado=sqrt(argumento1); break;
            case '!': if(argumento1<0) {error=true;} else factorial=1;for (b=1 ; b<=argumento1 ; b++) factorial=b*factorial; resultado=factorial; break;
            default: cout << "operador invalido" ; break;
            }
         
         argumento1=resultado;
         cin.get(operador);
         }

         if (!error)cout << "  -Resultado: " << resultado <<endl;
         else cout << "imposible" <<endl;
         error=false;
         cin >> argumento1;
      }   
   }
   else if (eleccion==2)
   {
      cout << "Configuracion de simbolos: " << endl;
      cout << "Suma: "; cin >> opsuma; if (opsuma=='\n') (opsuma='+'); 
      cout << "Resta: "; cin >> opresta; if (opresta=='\n') (opresta='-');
      cout << "Multiplicacion: " ; cin >> opmultiplicacion; if (opmultiplicacion=='\n') (opmultiplicacion='*');
      cout << "Division: " ; cin >> opdivision; if (opdivision=='\n') (opdivision='/');
      cout << "Raices: " ; cin >> opraices; if (opraices=='\n') (opraices='r');
      cout << "Potencias: " ; cin >> oppotencias; if (oppotencias=='\n') (oppotencias='^');
      cout << "Factorial: " ; cin >> opfactorial; if (opfactorial=='\n') (opfactorial='!');
   }
   else if (eleccion==3)
   {
      cout << "Programa finalizado." << endl;
   }

return 0;
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines