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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como se hace una sopa de numeros en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Como se hace una sopa de numeros en c++  (Leído 4,559 veces)
shaelb

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Como se hace una sopa de numeros en c++
« en: 26 Mayo 2015, 01:58 am »

quiero saber como hago para ir comparando los numeros que tengo que buscar en la sopa :D... y mostrar la pocicion desde donde inicia hasta donde termina


En línea

crack81

Desconectado Desconectado

Mensajes: 222



Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #1 en: 26 Mayo 2015, 02:00 am »

Especifica un poco mas tu problema porque es muy general y no quiero hacerte una recomendacion que no sea la que estas buscando


En línea

Si C/C++ es el padre de los lenguajes entonces ASM es dios.
shaelb

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #2 en: 26 Mayo 2015, 02:05 am »

mmm osea una matriz nxm con mumeros aleatorios el numero lo digita el usuario y este debe ser buscado dentro de la matriz. Los números solo aparecerán de forma horizontal y vertical. El sentido en el que pueden aparecer puede ser de izquierda a derecha, de derecha a izquierda, de arriba a abajo o de abajo a arriba y se debe mostrar la posicion donde inicia el numero y donde termina....pero no se como hacer eso u.u :(
En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Como se hace una sopa de numeros en c++
« Respuesta #3 en: 26 Mayo 2015, 02:10 am »

um con un array bidimensional

En línea

buenas
0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #4 en: 26 Mayo 2015, 03:22 am »

Puedes hacerlo utilizando arreglos, para crear un arreglo y asignarle números aleatorios seria así:
   
Código
  1. #define TAM 1O
  2.  
  3. int mxm[TAM][TAM]; //declaramos la matriz
  4.  
  5. for(int i = 0; i < TAM;i++){ //estos dos for sirven para reorrer la matriz
  6.  
  7.    for(int j = 0; j < TAM;j++){
  8.  
  9.        mxm[i][j] = rand() % 10; //asignamos numeros aleatorios a la matriz
  10.  
  11. }
  12. }
  13.  
   
necesitas la librería stdlib para los números aleatorios, luego seria cuestión de sacar los dígitos del numero que quieres buscar, por ejemplo si
quisieras buscar el numero 23, primero tendrías que buscar el 3 así

Código
  1. if( mxm[i][j] == 3){
  2. //luego para buscarlo el 2 hacia la derecha sería asi
  3. if( mxm[i][j+1] == 2 )
  4. //hacia abajo
  5. if( mxm[i-1][j] == 2 )
  6. //etc
  7.  
  8. }
  9.  
  10.  

Eso podría ser una solución.
 
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
shaelb

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #5 en: 26 Mayo 2015, 03:59 am »

tengo este codigo pero las variables final e inicio no me muestran ningun valor cuando lo ejecuto...cual es el error  :(

Código
  1. #include <stdio.h>
  2. #include<iostream>
  3. #include <stdlib.h> //incluye srand() y rand()
  4. #include <conio.h>
  5. #include <time.h> //incluye time()
  6.  
  7. using namespace std;
  8.  
  9. int main ()
  10. {
  11.    rand()%10;//numeros Aleatorios en funcion del tiempo
  12.  
  13. //declarar
  14. char r;
  15. int filas, columnas, i, j, num, num1, num2, numv,inicioa, iniciob, finala, finalb,  parte[100],inicio,final, des;
  16.  
  17.  
  18. r=='s';
  19.    while (r='s')
  20. {
  21. cout<<"Ingrese numero de filas: "<<endl;
  22. cin>>filas;
  23. cout<<"Ingrese numero de columnas: "<<endl;
  24. cin>>columnas;
  25.     int srand(time(0));//numeros Aleatorios en funcion del tiempo// se inicializa el random para la seleccion aleatortia de numeros
  26.  
  27. int matriz[filas][columnas];
  28.  
  29. //ciclo para el llenado de la matriz
  30.              for(int i=0;i<filas;i++)
  31.              {
  32.                   for( j=0;j<columnas;j++)
  33.                    {
  34.                        matriz[i][j]= rand()%10+0;//Agrega numero aleatorio a la posicion ij de la matri
  35.                    }
  36.              }
  37.  
  38.  
  39. //mostrar matriz
  40. cout<<"\n  SOPA DE LETRAS   \n"<<endl;
  41.       {
  42.            for(int i=0;i<filas;i++)
  43.               {
  44.                   for(j=0;j<columnas;j++)
  45.                       {
  46.                             cout<<"\t"<<matriz[i][j] ;
  47.                       }
  48.  
  49.                cout<<"\n\n";
  50.  
  51.                }
  52. ;
  53. //numero
  54.       cout<<"Numero que desaa buscar:"<<endl;
  55.       cin>>numv;
  56.       j=1;
  57.        while ((j<=4))
  58. {
  59.   parte[j] = numv%10;
  60.   numv = numv/10;
  61.  
  62.   j = j+1;
  63.    }
  64.    des==0;
  65.    //encontrar numero
  66.        for (int i=1 ;i<=filas; i++)
  67.        {
  68.         while(des=0)
  69.         {
  70.         for (int j=1; j<=columnas; j++)
  71.                {
  72.                 if (matriz[i][j]==parte[i])
  73.                 {
  74.                 if(matriz[i][j+1]==parte[i+1])
  75.                 {
  76.                 if (matriz[i][j+2]==parte[i+2])
  77.                 {
  78.                 if (matriz[i][j+3]==parte[i+3])
  79.                 {
  80.                 inicioa==i;
  81.                 iniciob==j;
  82.                 finala==i;
  83.                 finalb==j+3;
  84.                 des==des+1;
  85.  }
  86. }
  87. }
  88. }
  89.  
  90. }
  91. }
  92.  
  93. }
  94. for (int i=filas ;i>=1; i--)
  95.        {
  96.         while(des=0)
  97.         {
  98.         for (int j=columnas; j>=1; j--)
  99.                {
  100.                 if (matriz[i][j]==parte[i])
  101.                 {
  102.                 if(matriz[i][j-1]==parte[i+1])
  103.                 {
  104.                 if (matriz[i][j-2]==parte[i+2])
  105.                 {
  106.                 if (matriz[i][j-3]==parte[i+3])
  107.                 {
  108.                 inicioa==i;
  109.                 iniciob==j;
  110.                 finala==i;
  111.                 finalb==j-3;
  112.                 des==des+1;
  113.  }
  114. }
  115. }
  116. }
  117.  
  118. }
  119. }
  120.  
  121. }
  122. for (int j=1 ;j<=columnas; j++)
  123.        {
  124.         while(des=0)
  125.         {
  126.         for (int i=1; i<=filas; i++)
  127.                {
  128.                 if (matriz[i][j]==parte[j])
  129.                 {
  130.                 if(matriz[i+1][j]==parte[j+1])
  131.                 {
  132.                 if (matriz[i+2][j]==parte[j+2])
  133.                 {
  134.                 if (matriz[i+3][j]==parte[j+3])
  135.                 {
  136.                 inicioa==i;
  137.                 iniciob==j;
  138.                 finala==i+3;
  139.                 finalb==j;
  140.                 des==des+1;
  141.  }
  142. }
  143. }
  144. }
  145.  
  146. }
  147. }
  148.  
  149.  
  150. }
  151. for (int j=columnas ;j>=1; j--)
  152.        {
  153.         while(des=0)
  154.         {
  155.         for (int i=filas; i>=1; i--)
  156.                {
  157.                 if (matriz[i][j]==parte[j])
  158.                 {
  159.                 if(matriz[i-1][j]==parte[j+1])
  160.                 {
  161.                 if (matriz[i-2][j]==parte[j+2])
  162.                 {
  163.                 if (matriz[i-3][j]==parte[j+3])
  164.                 {
  165.                 inicioa==i;
  166.                 iniciob==j;
  167.                 finala==i-3;
  168.                 finalb==j;
  169.                 des==des+1;
  170.  }
  171. }
  172. }
  173. }
  174.  
  175. }
  176. }
  177.  
  178. }
  179.  
  180.  
  181.  
  182.  
  183.  
  184. cout<<"Pocicion inicial:", inicioa, iniciob, "\n";
  185. cout<<"posicion final", finala, finalb ,"\n";
  186. cout<<"Desea jugar otra ves?s/n";
  187. cin>>r;
  188.       }
  189.     system("pause");  
  190.   }
  191. }
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #6 en: 26 Mayo 2015, 04:16 am »

para asignar valor a una variable:
Código
  1. int var = 2;
  2.  

para comparar:

Código
  1. if( var == 2)
  2.  

tú lo tienes invertido
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
shaelb

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #7 en: 26 Mayo 2015, 04:22 am »

ya lo corregi pero sigue igual u.u  :(
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #8 en: 26 Mayo 2015, 04:33 am »

Tienes un bucle infinito aquí:

Código
  1. while(des == 0){
  2.    //Tienes mas code aquí
  3. if (matriz[i][j+3]==parte[i+3])
  4.    {
  5.     inicioa=i;
  6.     iniciob=j;
  7.     finala=i;
  8.     finalb=j+3;
  9.     des=des+1;
  10. }
  11. }  
  12.  

des solamente se incrementa cuando se cumple el condicional, o sea que si no se cumple nunca terminará de ejecutar



Esto está mal:
Código
  1. cout<<"Pocicion inicial:", inicioa, iniciob, "\n";
  2.  

mejor haber puesto:

Código
  1. cout<<"Pocicion inicial: " << inicioa << iniciob << endl;
  2.  

Lo siguiente no tiene sentido:
Código
  1. r='s';
  2.    while (r=='s')
  3. {
  4.        }  
  5.  

con poder while(true){  } es más que suficiente.


Ahora:

Código
  1. rand()%10;
  2.  

lo pones al aire, no hay nadie que lo cache
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
shaelb

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Como se hace una sopa de numeros en c++
« Respuesta #9 en: 26 Mayo 2015, 04:58 am »

pero acaso no saldra del bucle si la condicion se cumple eso quiere decir que encontro el numero?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines