Skocz do zawartości

funkcja: Zwracanie wartości najbliższej zeru.


I am Lord

Rekomendowane odpowiedzi

Ok przetłumaczyłem sobie to na GML.

Za wyjątkiem " foreach( n in intarray )" ale będą mi potrzebne zawsze 3 liczby to też pozwoliłem sobie to ominąć i zrobiłem:

 

GML
close = $7fffffff;

 

if ( abs(argument0) < abs(close) )

close = argument0;

 

if ( abs(argument1) < abs(close) )

close = argument1;

 

if ( abs(argument2) < abs(close) )

close = argument2;

 

return close;

Na razie działa, dzięki.

Odnośnik do komentarza
Udostępnij na innych stronach

Da sie to zrobic na dowolna liczbe argumentow - jesli poda sie ich liczbe.

Podam taki kod:

GML
var a,b;

a = 1

b = abs(argument1)

repeat(argument0)

{

if(abs(argument[a]) < b) b = argument[a]

a += 1

}

return b

argument0 - liczba podawanych wartosci

Powinno dzialac, choc nie sprawdzalem.

PS: sorry, ze nie ma polskich znakow, pisze na angielskim netbooku...

PS2: chodza sluchy, ze da sie to zrobic nawet bez podawania liczby argumentow - jakoby metoda if(variable_local_exists()), ale to juz nie moja broszka.

Odnośnik do komentarza
Udostępnij na innych stronach

Może tak:

GML
tab[0]=-1;//w tablice ta wpisz zbior swoich liczb

tab[1]=1;

tab[2]=2;

min0=tab[0];//najblizej zera jest tab[0] (tak zakladamy)

for(i=1;i<=2;i+=1)

if(abs(tab)<abs(min0))//jezeli kolejna wartosc w tablicy jest mniejsza od min0,

min0=tab;//to wartosc tab jest teraz najblizej zera (wszystko na wartosciach bezwzglednych)

else if(abs(tab)==abs(min0)&&tab>min0)//jezeli chcesz aby liczby dodatnie byly uprzywilejowane w przypadku gdy

min0=tab;//wartosci bewzgledne liczb sa sobie rowne (jezeli nie to usun ten warunek)</span></span>

Odnośnik do komentarza
Udostępnij na innych stronach

  • 6 miesięcy temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...