Ayuda!!!!! con este programa simulacion con matriz 10x10

Iniciado por hxcbps, Mayo 26, 2013, 04:13:03 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 26, 2013, 04:13:03 PM Ultima modificación: Septiembre 07, 2014, 01:07:09 PM por Expermicid
Buenas a todas

quisiera que me ayudaran con este problema que levo un tiempo considerable pensadolo, espero me ayuden todavia no soy muy bueno  en la programacion c++ pero espero con el tiempo serlo estas son las especificaciones del programa, o el problema plateado


Construir un programa que genere una matriz 10x10 esta debe ingresar numeros entre 1 y 1000 positivos aleatoriamente sin repetir numero (hasta aqui ya construi el programa)dentro de la matriz la pelota debe recorrer la matriz de la siguiente forma:

debe situarse en el numero menor de todos los numeros que se haya generado aleatoriamente, cuando se este situado en el numero menor, la pelota va evaluar los numeros que esten alrededor de la misma y va a pasar a evaluar el mayor numero que este alrededor de la posicion que se encuentra en ese momento, luego si evalua una posicion que sea mayor que todos los numeros a su alrededor pasa a esa posicion, y deja la posicion que estaba con un 0, pero si al evaluar no encuentra un numero mayor que en la posicion que esta y mayor a los otros alrededor, entonces deja el numero que tiene y evalua en las demas posiciones, y asi sucesivamente el usuario controla el movimiento con un enter, entonces la matriz al final con todos los enter que el usuario haya hecho para ver la simulacion pues se vera con los numeros que quedaron en la misma posicion, al no cumplir con la condicion que acabo de describir, y con los ceros en la posicion con la condicion que tambn describi anteriormente

bueno este es el codigo que llevo hasta el momento, cuando vean el ejecutable veran que mi programa les dice la posicion del menor numero que se genero en la matriz con numeros aleatorios

Código: c
/*generar una matriz de 10x10 con números
no repetidos entre 1 y 10000 indicando
el minimo hasta aqui he podido hacerlo,
ademas de las funciones que coloque para que el programa
tenga un mejor aspecto */

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <conio.h>

int color(int);
int main()
{
   //system("color 70");
   srand(time(NULL));
int n,matriz[10][10]={0}, i=rand()%10+1, j=0, x, y,minimo=10001,i_min=0,j_min=0;
/***************  CALCULO  ***********/
do{

x=rand()%10;
y=rand()%10;
if(matriz[x][y]==0 ){
           matriz[x][y]=i;
           if (i<minimo)
           {
               minimo=i;
               i_min=x;
               j_min=y;
           }
         i+=rand()%19;
           j++;
       }
}while (j<100);
/***************  IMPRESION CON COLOR  ***********/
for(i=0;i<10;i++)
{
       putchar('\n');
for(j=0;j<10;j++)
       {
           if (i==i_min && j==j_min)
               n=228;
           else
               n=113;
           color (n);
           printf(" %i ", matriz[i][j]);
           color (7);
           printf("\t");
           
           
       }

    system("pause");   
}
   color (96);
   printf("\n\nminimo = %d en la posicion ",minimo);
   color (228);
   printf(" (%d,%d) \n",i_min+1,j_min+1);
   color (7);
   return 0;
   
}

   
int color (int n)
{
       SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
       getch();
}



¿TU CÓDIGO? ¿Como tienes tantísimo morro? Ese código te lo dieron hecho en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, yo mismo participé en ese hilo. Ese código es de leosansan.

Este hombre quiere que entre todos los foros acabemos haciéndole la tarea.




ESTE ERA SU CÓDIGO (O al menos el que posteó en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta):

Código: cpp
#include<cstdlib>
#include<iostream>
#include<conio.h>
#include<ctime>
using namespace std;
bool llenar(int m[10][10],int i,int j,int v[10][10])
{
srand((unsigned) time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
m[i][j]=rand() % 1000 + 1;
v[i][j]=m[i][j];
if(m[i][j]!=v[i][j])
m[i][j]=rand() % 1000 + 1;
}
}
return true;
return false;
}

void mostrar(int m[10][10],int i,int j)
{
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
cout<<m[i][j]<<" ";
}
cout<<"\n";
}
}
main()
{
int m[10][10],v[10][10],i,j;
llenar(m,i,j,v);
mostrar(m,i,j);
getch();
}


Sa1uDoS