• Domingo 22 de Diciembre de 2024, 19:37

Autor Tema:  Busqueda Secuencial  (Leído 11295 veces)

nordith

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Busqueda Secuencial
« en: Lunes 15 de Febrero de 2010, 17:30 »
0
Hola, necesito ayuda porfavor,
se trata de lo siguiente en C#
Leer desde el teclado un nùmero entero dado, usando la instruccion C int. Crear un arreglo
tipo entero de tamaño 10000. Reyenarel arreglo con numero aleatorios enteros entre el
0 y 9999 usando la instruccion  ran ().  Reportar la posicion del numero que estoy buscando en el arreglo.

No es necesario usar clases ni execciones, es mas sencillo.
Se los agradeceria mucho

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #1 en: Lunes 15 de Febrero de 2010, 18:47 »
0
No se hacen tareas.

Comienza a hacer el ejercicio, y si te marca algun error, entonces puedes indicarnos exactamente que error te marca y entonces seguro que alguien te ayudara.

De otra forma, nadie hara tu trabajo.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

nordith

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #2 en: Lunes 15 de Febrero de 2010, 18:55 »
0
ok, entonces a que se refiere este error :
en la parte de static void Main(string[] args)
me marca error porqe dice que tengo que declarar un
cuerpo ??

namespace Practica_1
{
    class Program
    {

        static void Main(string[] args);
        int BuscaPosicion(int[] A, int x)
        {

            int posicion = -1;
            int i = 0;
            while ((posicion == -1) && (i < A.Length))
            {
                if (A == x)
                {

                    posicion = i;
                }
                else
                {

                    i++;
                }
            }
            return posicion;
        }



    }
}
« última modificación: Lunes 15 de Febrero de 2010, 21:48 por nordith »

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #3 en: Lunes 15 de Febrero de 2010, 19:39 »
0
El error que comentas no es muy especifico, deberias publica el codigo para ver exactamente que tienes y porque te marca ese error, aunque sospecho que no tienes tu programa con la estructura minima de un programa en C#.

La estructura minima de un programa en C# seria algo como:
Código: C#
  1.  
  2. using System;
  3.  
  4. namespace ConsoleApplication1
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.         }
  11.     }
  12. }
  13.  
  14.  

Si tienes algo como eso, vas bien, si te falta algo, pues de seguro ahi esta el error, en todo caso, publica tu codigo, para estar seguros. Y cuando lo publiques, encierra tu codigo en etiquetas [ code][ /code] (sin espacios en los corchetes) como yo, para que tu codigo sea mas legible.

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

nordith

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #4 en: Lunes 15 de Febrero de 2010, 21:49 »
0
namespace Practica_1
{
    class Program
    {

        static void Main(string[] args);
//Con o sin el punto y coma despues de args me marca error

        int BuscaPosicion(int[] A, int x)
        {

            int posicion = -1;
            int i = 0;
            while ((posicion == -1) && (i < A.Length))
            {
                if (A == x)
                {

                    posicion = i;
                }
                else
                {

                    i++;
                }
            }
            return posicion;
        }



    }
}

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #5 en: Lunes 15 de Febrero de 2010, 22:11 »
0
deberias hacer algo asi:

Código: C#
  1.  
  2. namespace Practica_1
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //aqui generas la matriz con los numeros aleatoreos
  9.  
  10.             //luego lees del teclado el numero deseado
  11.  
  12.             Console.WriteLine( BuscaPosicion(aki la matriz generada , aqui el numero a buscar));
  13.         }
  14.  
  15.         static int BuscaPosicion(int[] A, int x)
  16.         {
  17.  
  18.             int posicion = -1;
  19.             int i = 0;
  20.             while ((posicion == -1) && (i < A.Length))
  21.             {
  22.                 if (A[i] == x)
  23.                 {
  24.  
  25.                     posicion = i;
  26.                 }
  27.                 else
  28.                 {
  29.  
  30.                     i++;
  31.                 }
  32.             }
  33.             return posicion;
  34.         }
  35.     }
  36.  
  37. }
  38.  
  39.  

Cita de: "nordith"
static void Main(string[] args);
//Con o sin el punto y coma despues de args me marca error
despues del void Main() van los {    }
y estos contienen el codigo por donde empieza y sale el programa.

otro dato, el bucle que realizas con el while() podrias hacero:
Código: C#
  1. for (int i = 0; i < A; i++)
  2.             {
  3.                 if (A[i] == x)
  4.                 {
  5.                     posicion = i;
  6.                     break;
  7.                 }
  8.             }
  9.             return posicion;
  10.  

Saludos

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #6 en: Lunes 15 de Febrero de 2010, 22:12 »
0
Como dije e mi mensaje anterior usa las etiquetas de [ code][ /code] para que tu codigo sea mas legible

El error es muy simple, hasta podrias haberte dado cuenta si hubieras visto mi declaracion de main en el mensaje anterior, lo que necesitas es poner corchetes despues de main(), y borrar el punto y coma.

Ademas, sugeriria que declares el metodo BuscaPosicion() de tipo static, de esa forma evitarias tener que instanciar la clase Program para poder usar el metodo.

Dicho lo anterior, quedaria asi:

Código: C#
  1.  
  2. namespace Practica_1
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         //Con o sin el punto y coma despues de args me marca error
  8.         {
  9.         }
  10.  
  11.         static int BuscaPosicion(int[] A, int x)
  12.         {
  13.  
  14.             int posicion = -1;
  15.             int i = 0;
  16.             while ((posicion == -1) && (i < A.Length))
  17.             {
  18.                 if (A[i] == x)
  19.                 {
  20.  
  21.                     posicion = i;
  22.                 }
  23.                 else
  24.                 {
  25.  
  26.                     i++;
  27.                 }
  28.             }
  29.             return posicion;
  30.         }
  31.     }
  32. }
  33.  
  34.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #7 en: Lunes 15 de Febrero de 2010, 22:14 »
0
me gano la respuesta el compañero tannke  :lol:

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

nordith

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #8 en: Martes 16 de Febrero de 2010, 03:48 »
0
me pueden explicar un poco mas de for, es necesario el break,
si uso ese al estar buscando el elemento apesar de encontrarlo
no continua su busqeda hasta el final del arreglo
????

tannke

  • Miembro MUY activo
  • ***
  • Mensajes: 152
  • Nacionalidad: es
    • Ver Perfil
Re: Busqueda Secuencial
« Respuesta #9 en: Martes 16 de Febrero de 2010, 14:56 »
0
jeje te gané pero me quedo con la tuya que esta mucho mejor explicada, yo para ello soy muy malo:

Bueno, te intento explicar el 'for'

primero decirte que en el A me falto el .Length
Código: C#
  1. # for (int i = 0; i < A.Length; i++)
  2.  

for( variable ;  condición ; progresión )
      {
             sentencia
       }

variable: bueno, es o son, las variables de control, estas son iniciadas en el ambito del for y solo son para este.
condicion: es una condición booleana (el for se ira repitiendo mientras este sea verdadero)
progresión: cada vez que se termine de ejecutar el codigo "sentencia" del for, este se ejecuta antes de comprovar la condicion, puede ser...   i++; i--; i+=5 lo que necesites.
sentencia: Codigo que se repetira

Espero te sirva, no se si se entenderá muy bien.

Bueno sobre el break, no es necesario, te lo pose ahi porque, en teoria, una vez encuentras el numero que buscas (y segun tu explicación estos no estan repetidos) pues es tonteria seguir recorriendo la matriz. Imaginate que el nºbuscado es el 1º, para que seguir mirando los demas si ya no estara.
Si lo quitas entonces lo que hará es recorrer toda la matriz.

Observando tu codigo ahora también me di cuenta de un detalle, si el numero no coincide entonces en el elese (sumas 1 a i) pero piensa que ocurre cuando si coincide, asignas i a posicíon pero no incrementas i, por lo que volverias a entrar en el bucle e 'i' volveria a coincidir, por lo que nunca podrias salir del bucle.
Un saludo