Funzioni di libreria: operazioni su numeri interi e in virgola mobile

Proteus è privo di operatori; si è deciso di utilizzare funzioni anche per effettuare operazioni di tipo numerico per ottenere una maggiore consistenza sintattica, dal momento che in questo caso sarebbero gli operatori a determinare l'interpretazione degli operandi e non viceversa!

Le funzioni di questa categoria sono suddivise in tre classi:

I nomi delle funzioni ricalcano i nomi delle rispettive funzioni 'C' ove possibile, oppure gli operatori Assembly. Gli operatori binari sui numeri iniziano sempre con la lettera N (es. NAND, NOR, ecc.), per distinguerli dalle controparti logiche; ad esempio:

Nel caso in cui un parametro sia prefissato dal carattere "@", la funzione memorizza nel parametro stesso il suo risultato al termine dell'elaborazione.

Funzioni per numeri interi:

DIV([@]n1, [@]n2[, n3..])

divisione intera (n1 / n2)[/ n3..]

MOD([@]n1, [@]n2[, n3..])

modulo (resto della divisione intera di n1 per n2 [per n3..])

FACT([@]n)

ritorna il fattoriale di n

NAND([@]n1, [@]n2[, n3..])

corrisponde a '&' in 'C': AND binario dei numeri indicati; es. NAND(1, 3) = 1

NOR([@]n1, [@]n2[, n3..])

corrisponde a '|' in 'C': OR binario dei numeri indicati; es. NOR(1, 3) = 1

NXOR([@]n1, [@]n2[, n3..])

corrisponde a '^' in 'C': XOR binario dei numeri indicati; es. NXOR(1, 3) = 2

NNOT([@]n)

corrisponde a '~' in 'C': NOT binario (complemento) di n

SHIFTLT([@]n, nNumBits)

shifta a sinistra di nNumBits il numero intero n

SHIFTRT([@]n, nNumBits)

shifta a destra di nNumBits il numero intero n

BITGET([@]n, nOffset)

ritorna il bit nOffset del numero intero n; il valore ritornato è sempre 0 o 1; se nOffset non ha senso, ritorna 0

BITSET([@]n, nOffset, nBit)

ritorna n con il bit a nOffset impostato al valore di nBit (0 o 1)

RANDOM(nMax)
RANDOM(nMin, nMax)

ritorna un numero intero casuale nell'intervallo [0, nMax - 1] se viene specificato un solo parametro, oppure un valore intero nell'intervallo [nMin, nMax] se sono specificati due parametri. Per ottenere un numero casuale tra 0 ed il massimo intero positivo rappresentabile sulla macchina specificare un valore negativo (es. -1) come unico parametro; per ottenere un numero casuale positivo o negativo, in valore assoluto compreso tra 0 e la metà del massimo intero positivo rappresentabile, specificare il valore -1 sia per nMin che per nMax. L'intervallo, cioè |nMax - nMin|, deve comunque essere inferiore al massimo intero positivo rappresentabile per ottenere un valore coerente con gli estremi specificati.

RANDOMINIT(n)

re-inizializza il generatore di numeri casuali utilizzando il valore n specificato. Proteus, all'avvio dell'interprete, imposta automaticamente il generatore con informazioni temporali dell'ambiente d'esecuzione, pertanto non è necessario invocare esplicitamente questa funzione, a meno che non si voglia generare ripetutamente una medesima sequenza di numeri casuali. L'utilizzo della funzione STRRANDOM re-imposta implicitamente il generatore al valore passato come terzo parametro, come se si fosse invocata questa funzione.

BIN2S(n)

ritorna una stringa di '0' e '1' con la rappresentazione binaria di n

S2BIN(c)

ritorna il numero corrispondente alla rappresentazione binaria c (stringa di '0' e '1'); se c non è valida, ritorna 0

Funzioni per numeri in virgola mobile:

FDIV([@]f1, [@]f2[, f3..])

divisione in virgola mobile (f1 / f2)[/ f3..]

FMOD([@]f1, [@]f2[, f3..])

modulo in virgola mobile (resto della divisione n1 / n2 [/ n3..])

FRAC([@]f)

parte frazionaria di f

EXP([@]f)

ritorna la base e elevata alla potenza f

POW([@]f1, [@]f2[, f3..])

ritorna f1 elevato alla potenza f2 [elevato alla potenza f3..]

SQRT([@]f)

ritorna la radice quadrata di f

SIN([@]f)

ritorna il seno di f

COS([@]f)

ritorna il coseno di f

TAN([@]f)

ritorna la tangente di f

ASIN([@]f)

ritorna l'arcoseno di f

ACOS([@]f)

ritorna l'arcocoseno di f

ATAN([@]f)

ritorna l'arcotangente di f

LOG10([@]f)

ritorna il logaritmo in base 10 di f

LOG([@]f)

ritorna il logaritmo naturale di f

CEIL([@]f)

ritorna il sup di f (minimo intero maggiore o uguale a f)

FLOOR([@]f)

ritorna l'inf di f (massimo intero minore o uguale a f)

HYP([@]f1, [@]f2)

ipotenusa di f1 e f2 (cioé la radice quadrata della somma dei quadrati di f1 e f2)

Funzioni miste (queste funzioni appartengono a entrambe le classi, in quanto restituiscono un intero o un numero in virgola mobile a seconda degli argomenti):

MUL([@]nf1, [@]nf2[, nf3..])

restituisce il prodotto dei numeri

ADD([@]nf1, [@]nf2[, nf3..])

restituisce la somma dei numeri

SUB([@]nf1, [@]nf2[, nf3..])

restituisce nf1 - nf2 [- nf3..]

INC([@]nf)

restituisce nf + 1 (se nf è un identificatore, il suo valore è modificato solo se passato per riferimento)

DEC([@]nf)

restituisce nf - 1 (se nf è un identificatore, il suo valore è modificato solo se passato per riferimento)

INT([@]nf)

parte intera (intero, o virgola mobile se insufficiente)

ABS([@]nf)

restituisce il valore assoluto di nf

NEG([@]n)

restituisce -nf

MIN([@]nf1, [@]nf2[, nf3..])

restituisce il minore dei valori specificati

MAX([@]nf1, [@]nf2[, nf3..])

restituisce il maggiore dei valori specificati

EQ(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 == nf2

NEQ(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 != nf2

LT(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 < nf2

LE(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 <= nf2

GT(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 > nf2

GE(nf1, nf2)

restituisce un valore diverso da 0 se e solo se nf1 >= nf2

Da notare che Proteus promuove automaticamente un intero a numero in virgola mobile se il risultato di un'operazione esce dal range di valori ammessi (ad esempio, in seguito ad una moltiplicazione).

Gestione automatica degli errori nelle operazioni sui numeri:

Inizio pagina Prossimo argomento Argomento precedente Indice per argomenti Indice analitico
Midnight Lake iPhone Case Black Women Shoes Black Flat Shoes Leather Flats Black Patent Ballerinas Black Ballet Shoes Casual Shoes Black Shoes Women Balle Record Player Cufflinks Best iPhone XR Clear Cases iPhone XS/XS Max Leather Cases Sale Best iPhone 8/8 Plus Silicone Cases iPhone 7/7 Plus Cases & Screen Protector New Cases For iPhone 6/6 Plus iPhone 8 Case Sale iPhone Xr Case Online iPhone 7 Case UK Online iPhone X Case UK Sale iPhone X Case Deals iPhone Xs Case New Case For iPhone Xr UK Online Case For iPhone 8 UK Outlet Fashion Silver Cufflinks For Men Best Mens Cufflinks Outlet Online The Gold Cufflinks Shop Online Cheap Shirt Cufflinks On Sale Nice Wedding Cufflinks UK Online Top Black Cufflinks UK Online Mens Cufflinks Online Silver Cufflinks For Men Men Cufflinks UK Sale Gold Cufflinks UK Online Gold Cufflinks UK Silver Cufflinks UK Shirt Cufflinks Discount Online Mens Cufflinks Deals & Sales Girls Shoes For Dance Fashion Ballet Dance Shoes Best Ballet Flats Shoes UK Online Cheap Ballet Pointe Shoes UK Online Best Ballet Shoes Outlet Best Dance Shoes Sale Cheap Ballet Flats Sale UK Best Pointe Shoes Online UK Ballet Dance Shoes UK Shoes For Dance UK Best Ballet Slippers Shop Best Yoga Shoes Hotsell