[Risolto] Confronto di variabili con approssimazione

(deleted)

ma qualcosa del genere (pseudocodice):

tolleranza=0,1  (0,1=10%, 0,2=20%)
...
if((abs(a-b)/max(a,b))>tolleranza)
then
     <tuo codice>

no?

(deleted)

Nessuno ti vieta di NON dichiarate tolleranza e scrivere direttamente un valore costante esempio 0.1
Si, sono due funzioni. ANZI sono due macro definite nel core di Arduino (file Arduino.h)
Occhio che quel calcolo fatto così è fra numeri interi e quindi il risultato è un intero.
Bisogna forzare il calcolo con le virgole.

abs(x)= da il valore assoluto (senza segno), nel tuo caso il valore assoluto della differenza tra le due misurazioni
max(x,y)=da il valore maggiore tra due numeri

esempio=
lettura a=7
lettura b=10

(abs(7-10)/max(7,10))>0,1
(abs(-3)/10)>0,1
(3/10)>0,1
0,3>0,1 -> maggiore della tolelranza impostata

... be lascio a te fare le conversioni tra interi e float ecc... se no che diverimento c'è?

(deleted)

ingegnere ? :slight_smile:

divido lo scarto (differenza) assoluta tra due numeri per il numero maggiore. uso la differenza assoluta per avere l'invarianza del riusultato rispetto all'ordine dei due valori .
mi da la percentuale di differenza tra il numero maggiore e il numero minore.
Non era questo che ti serviva?

Axel7997:
ah okay tutto chiaro..però mi sfugge la logica o.O con quale criterio utilizzi quel procedimento? Cioè trovando il valore di

abs(a-b)/max(a, b)

cosa ottengo? che rappresenta quel numero?

Un rapporto tra 2 quantità indipendente da quale è più grande :smiley:

Forse a te serve anche sapere quale dei due è più grande? Se si, allora:

if( abs(a-b)/long(max(a,b)) > 0.1)
{ // c'e' differenza
  if(a>b) 
  else
}

(deleted)

(deleted)

figurati. basta che non mi parliate di hardware ... :slight_smile:
che poi a furia di frequentare tutta la brutta gente (hardwaristi) di questo forum qualcosa ho imparato pure io ...

brunialti:
figurati. basta che non mi parliate di hardware ... :slight_smile:
che poi a furia di frequentare tutta la brutta gente (hardwaristi) di questo forum qualcosa ho imparato pure io ...

Già.... sti "spelafili" :grin:

:stuck_out_tongue_closed_eyes:
bella

(deleted)

brunialti:
:stuck_out_tongue_closed_eyes:
bella

Ho fatto l'ITIS, gli elettronici/elettrotecnici li chiamavamo "spelafili" e loro ci chiamavano "pigiatasti" :grin:
ooops, sono un pò OT :blush: