Matematikai  függvények


A matematikai adatok feldolgozását könnyítik meg a beépített függvények. Segítenek minimum-maximum érték ill. tartomány érték beállítással, abszolút érték, négyzet illetve gyök számítással. Lerövidítik a programkódot, könnyítik a programozó munkáját, de ne ragozzuk nézzük a függvényeket.

min(x,y) – két szám közül a kisebbet adja(összehasonlítás)
pl.: szam = min(x,y);
x=7 és y=6 akkor szam értéke =6
x=12 és y=19 akkor szam értéke =12


max(x,y) – két szám közül a nagyobbat adja, a min() fordítottja.


int szam,ertek;
void setup(){
Serial.begin(9600);
}
void loop(){
//min érték tesztelése
szam = min(213,128);
Serial.print("minimal ertek: ");
Serial.println(szam);
//max érték tesztelése
szam = max(321,672);
Serial.print("maximum ertek: ");
Serial.println(szam);
delay(1000);
// változó naximális értékének korlátozása
for(int i=0;i<300;i+=10){
ertek=i;
szam = min(ertek,200);
Serial.println("a valtozo max erteke :200");
Serial.print("a valtozo pillanatnyi erteke: ");
Serial.println(szam);
}
delay(1000);

//változó minimális értékének korlátozása
for(int i=100;i<500;i+=10){
ertek=i;
szam = max(ertek,200);
Serial.println("a valtozo min erteke :200");
Serial.print("a valtozo pillanatnyi erteke: ");
Serial.println(szam);
}
while(true);
}

A példa progi bemutatja, hogy ezek a függvények változók értékeinek határolására is alkalmazhatók. Ellentétes módon a min() függvénnyel a változó max értékét állíthatjuk be, a max() függvénnyel pedig a minimális értéket.


constrain(x,a,b) – szám minimum és maximum értéke közötti tartományát állítja be.
x: a szám aminek az értéktartományát korlátozzuk
a: a szám lehetséges legkisebb értéke
b: a szám lehetséges legnagyobb értéke

pl.: szam = constrains(x,3,22);
ha x kisebb mint 3 akkor a szam értéke 3 lesz.
Ha x 3 és 22 közé esik akkor a szam értéke x lesz.
Ha x nagyobb mint 22 akkor a szam értéke 22 lesz.


abs(x) – a szám abszolút értékét adja.
pl.: szam = abs(x);
ha x = 5 akkor szam = 5
ha x = -4 akkor szam = 4


int szam;
void setup(){
Serial.begin(9600);
}
void loop(){
for(int x= -10;x<11;x++){
szam = abs(x);
Serial.print(x);
Serial.print(" abszolut erteke: ");
Serial.println(szam);
}
while(true);
}

Már leírtuk de ide tartozik a map() függvény is, frissítésül:
map(szam,x1,y1,x2,y2)
szam: a változó aminek értékeit konvertálni szeretnénk
x1: szam változó minimum értéke konvertálás előtt
y1: szam változó maximum értéke konvertálás előtt
x2: az új értéktartomány minimum értéke
y2: az új tartomány maximum értéke

a map függvény átalakítja a szam változó x1-y1 közötti értékeit arányosan x2-y2 közötti értékekké.


pow(szam,hatvány) – számok hatványozására használják.

pl.:ertek = pow(szam,kitevo);
szam: az alap szám amit hatványozni szeretnénk
kitevo: az érték ahányszor önmagával szorzódik a szám(hatványozódik).
A visszatérési érték double típusú.(ertek változó)


sqrt(x) – x szám négyzetgyökét adja.
A visszatérési érték itt is double.
Erre egy bemutató program:

double hatvany,gyok;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println(" ketto hatvanyai");
for(int i=0;i<11;i++){
hatvany = pow(2,i);
Serial.print(i);
Serial.print(". hatvany: ");
Serial.println(hatvany);
}
Serial.println("szamok negyzetgyokei");
for(int i=50;i>0;i--){
gyok = sqrt(i);
Serial.print(i);
Serial.print(" negyzetgyoke: ");
Serial.println(gyok);
}
while(true);
}


Evvel lezártuk a matematikai függvényeket, a trigonometriai függvényekről majd egy másik részben.