Autor Tema: Min/max value  (Leído 2742 veces)

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

Desconectado BlackCurtain

  • Full Member
  • ***
  • Mensajes: 187
  • Karma: 9
  • Sexo: Masculino
    • Ver Perfil
    • Black Curtain Studio
Min/max value
« en: Junio 19, 2012, 11:43:53 am »
I was kinda shocked to realize that Bennu doesn't have any elementary math functions for returning min/max values between a set of values, like this:
Código: [Seleccionar]
min_value = min(val1,val2,val3,...); //Return the lowest value
max_value = max(val1,val2,val3,...); //Return the highest value
Sure it would be easy to write my own function for it, but it still seems like it's something that should exist.
« última modificación: Junio 19, 2012, 11:47:37 am por BlackCurtain »

Conectado FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5531
  • Karma: 125
  • Sexo: Masculino
    • Ver Perfil
    • GECA soft
Re:Min/max value
« Respuesta #1 en: Junio 19, 2012, 11:49:45 am »
with 2 simple for loops you can get these values easily...

Desconectado BlackCurtain

  • Full Member
  • ***
  • Mensajes: 187
  • Karma: 9
  • Sexo: Masculino
    • Ver Perfil
    • Black Curtain Studio
Re:Min/max value
« Respuesta #2 en: Junio 19, 2012, 11:51:59 am »
with 2 simple for loops you can get these values easily...
Yes, I know, but a native function for it would be even better that could take more than 2 arguments.


Here's my take at it if anyone is in need of a similar function


Código: [Seleccionar]

function maxValue(int val1, int val2, int val3, int val4)
private
int value_args[3];
int i;
int largest;
end
   begin
     
      value_args[0] = val1;
      value_args[1] = val2;
      value_args[2] = val3;
      value_args[3] = val4;
     
      largest = value_args[0];
     
      for(i = 0; i <= 3; i++)
         if( largest < value_args[i] )
            largest = value_args[i];
         end
      end
     
      return largest;
     
   end
« última modificación: Junio 19, 2012, 12:10:11 pm por BlackCurtain »

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12426
  • Karma: 366
  • Sexo: Masculino
    • Ver Perfil
Re:Min/max value
« Respuesta #3 en: Junio 19, 2012, 12:09:19 pm »
forget more of 2 args

MIN y MAX in C are defines...

use this

Código: [Seleccionar]
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))

for 4 args you can do

Código: [Seleccionar]
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define max4(a,b,c,d) max(max(a,b),max(c,d))

enjoy it!
« última modificación: Junio 19, 2012, 12:12:10 pm por SplinterGU »
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Desconectado BlackCurtain

  • Full Member
  • ***
  • Mensajes: 187
  • Karma: 9
  • Sexo: Masculino
    • Ver Perfil
    • Black Curtain Studio
Re:Min/max value
« Respuesta #4 en: Junio 19, 2012, 12:24:37 pm »
forget more of 2 args

MIN y MAX in C are defines...

use this

Código: [Seleccionar]
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))

for 4 args you can do

Código: [Seleccionar]
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define max4(a,b,c,d) max(max(a,b),max(c,d))

enjoy it!
Thank you!

Desconectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12426
  • Karma: 366
  • Sexo: Masculino
    • Ver Perfil
Re:Min/max value
« Respuesta #5 en: Junio 19, 2012, 03:29:12 pm »
no problem... ;)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2