Autor Tema: Sacar el valor máximo de un array  (Leído 15829 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Sacar el valor máximo de un array
« en: 04 de Diciembre de 2007, 12:10:52 »
Buenas,

Estoy con un pic16f877, tengo un array de 100 posiciones de int16 que los cojo del CAD del PIC y me gustaría sacar el valor máximo. Si alguno de vosotros sab si hay alguna librería que lo hace perfecto, sino pues tengo pensado ir  recorriendo el vector comparandolo con el valor de cada posición y si es mayor lo guardo en una variable hasta obtener el valor máximo. No creo que eso sea la forma más óptima, pero si nadie me comenta nada lo haré así

Saludos!!!
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado fa61an

  • PIC10
  • *
  • Mensajes: 21
Re: Sacar el valor máximo de un array
« Respuesta #1 en: 04 de Diciembre de 2007, 13:10:26 »
Código: [Seleccionar]
int i=0;
int max=0;
int index=0;
int Array[100];

for(i=0;i<100;i++){
     if(Array[i]>max){
                  max=Array[i];
                  index=i;
      }
}
Colombia - Bucaramanga UTS

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Sacar el valor máximo de un array
« Respuesta #2 en: 04 de Diciembre de 2007, 13:37:06 »
No creo que eso sea la forma más óptima,

¿Por qué no es la forma más optima?, de echo es la única forma para saber cual es el valor máximo o mínimo de un array. Otra cosa es la forma de acceder al array que se puede realizar en ASM para optimizarlo y que sea más rápido.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado djpalas

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 595
    • Microtronic
Re: Sacar el valor máximo de un array
« Respuesta #3 en: 04 de Diciembre de 2007, 18:39:30 »
Yo suelo aplicar este.

http://en.wikipedia.org/wiki/Quicksort

saludos

Saludos desde Cádiz, España
Web personal: http://www.microtronic.es

Desconectado fa61an

  • PIC10
  • *
  • Mensajes: 21
Re: Sacar el valor máximo de un array
« Respuesta #4 en: 04 de Diciembre de 2007, 18:46:18 »
Yo suelo aplicar este.

http://en.wikipedia.org/wiki/Quicksort

saludos

umalrovi solo necesita el valor maximo mas no ordenar el vector !!
Colombia - Bucaramanga UTS

Desconectado djpalas

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 595
    • Microtronic
Re: Sacar el valor máximo de un array
« Respuesta #5 en: 05 de Diciembre de 2007, 04:49:15 »
umalrovi solo necesita el valor maximo mas no ordenar el vector !!

También es verdad, llevas la razón  fa61an  :D :D

Estoy tan saturado por el trabajo que ayer no me di ni cuenta.  :?

Saludos

Saludos desde Cádiz, España
Web personal: http://www.microtronic.es

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Sacar el valor máximo de un array
« Respuesta #6 en: 05 de Diciembre de 2007, 05:18:48 »
Jeje, a mi me pasó lo mismo que a djpalas. Me puse a escribir como un loco que si el método de la burbuja... que si el método quicksort... y cuando me dió por releer la pregunta que planteaba umalrovi lo borré todo  :D


Un saludo desde Alicante.

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Sacar el valor máximo de un array
« Respuesta #7 en: 05 de Diciembre de 2007, 05:57:48 »
Muchas gracias a todos, ok tomo nota de todo. Voy a probar lo que me ha dicho fa61an.

Ahora os pongo que resultados da.

Bendiciones!!
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Sacar el valor máximo de un array
« Respuesta #8 en: 05 de Diciembre de 2007, 06:45:40 »
Ya he probado la rutina de fa61a y va muy bien, era lo que yo iba hacer desde un primer momento, pero pensaba que agregando alguna librería tal como match.h pues ya te lo hacía, pero da igual ya está hecho.

Muchas gracias a todos!!!
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado Mario87

  • PIC10
  • *
  • Mensajes: 25
Re: Sacar el valor máximo de un array
« Respuesta #9 en: 08 de Diciembre de 2007, 09:38:18 »
Una pequeña observación.
Si todos los números del array fueran negativos el algoritmo no funcionaría no?

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Sacar el valor máximo de un array
« Respuesta #10 en: 08 de Diciembre de 2007, 10:26:18 »
Si funcionaria ya que matemáticamente el número menos negativo es el mayor.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Mario87

  • PIC10
  • *
  • Mensajes: 25
Re: Sacar el valor máximo de un array
« Respuesta #11 en: 08 de Diciembre de 2007, 16:35:34 »
Sí, pero no quería decir eso.
Me refiero a que en el código expuesto por fa61an, inicializa max con 0, asique, siendo todo el array números menores que max, el resultado del bucle sería index=0 y max=0  :)
un saludito, solo era una pequeña observación ya que yo tambien estoy aprendiendo y me gusta fijarme en estas cosas
Creo que lo ideal sería inicializar max=array[0] y index=0, asi al menos siempre comparas con un elemento del array.
« Última modificación: 08 de Diciembre de 2007, 16:39:44 por Mario87 »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Sacar el valor máximo de un array
« Respuesta #12 en: 09 de Diciembre de 2007, 00:14:38 »
No creo que eso sea la forma más óptima,

¿Por qué no es la forma más optima?, de echo es la única forma para saber cual es el valor máximo o mínimo de un array. Otra cosa es la forma de acceder al array que se puede realizar en ASM para optimizarlo y que sea más rápido.

Un saludo

es la única forma para saber cual es el valor máximo o mínimo de un array NO ORDENADO.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Sacar el valor máximo de un array
« Respuesta #13 en: 09 de Diciembre de 2007, 04:23:28 »
Sí, pero no quería decir eso.
Me refiero a que en el código expuesto por fa61an, inicializa max con 0, asique, siendo todo el array números menores que max, el resultado del bucle sería index=0 y max=0  :)
un saludito, solo era una pequeña observación ya que yo tambien estoy aprendiendo y me gusta fijarme en estas cosas
Creo que lo ideal sería inicializar max=array[0] y index=0, asi al menos siempre comparas con un elemento del array.
Bien visto

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Sacar el valor máximo de un array
« Respuesta #14 en: 09 de Diciembre de 2007, 08:11:01 »
Sí, pero no quería decir eso.
Me refiero a que en el código expuesto por fa61an, inicializa max con 0, asique, siendo todo el array números menores que max, el resultado del bucle sería index=0 y max=0  :)
un saludito, solo era una pequeña observación ya que yo tambien estoy aprendiendo y me gusta fijarme en estas cosas
Creo que lo ideal sería inicializar max=array[0] y index=0, asi al menos siempre comparas con un elemento del array.

Tienes toda la razón, no está inicializado correctamente el array.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús