AlgoBuild - Operatori, funzioni, costanti

Operatori aritmetici

+
addizione
, operatore binario, definito per i tipi int, double
combina due valori numerici ottenendo un numero; se i tipi sono identici il risultato è dello stesso tipo, altrimenti int viene convertito ("promosso") a double.
Esempi:
x=12+25 la somma restituisce un valore intero perché somma di due numeri interi;
y=3.14+7.25 la somma restituisce un valore double perché somma di due numeri double;
z=9.43+3 la somma restituisce un valore double perché somma di un double e di un intero;
w=2+6.71 la somma restituisce un valore double perché somma di un intero e di un double;

+
concatenazione
, operatore binario, definito per le stringhe
combina tra loro due stringhe restituendo una stringa composta di tutti i caretteri della prima seguiti dalla sequenza di caratteri della seconda.
Esempi:
s="Ciao " + " Mondo!" : il risultato è la stringa complessiva "Ciao Mondo!".
f="Ciao " : una stringa,
g="Mondo!" : un'altra stringa,
h = f + g : il risultato è la stringa complessiva "Ciao Mondo!".

-
sottrazione
, operatore binario, definito per i tipi int, double
combina due valori numerici ottenendo un numero; se i tipi sono identici il risultato è dello stesso tipo, altrimenti int viene convertito ("promosso") a double.
Esempi:
x=7-3 la sottrazione restituisce un valore intero perché differenza di due numeri interi;
y=2.1-4.7 la sottrazione restituisce un valore double perché differenza di due numeri double;
z=56.8-9 la sottrazione restituisce un valore double perché differenza di un double e di un intero;
w=11-2.75 la sottrazione restituisce un valore double perché differenza di un intero e di un double;

*
moltiplicazione
, operatore binario, definito per i tipi int, double
combina due valori numerici ottenendo un numero; se i tipi sono identici il risultato è dello stesso tipo, altrimenti int viene convertito ("promosso") a double.
Esempi:
x=3*8 la moltiplicazione restituisce un valore intero perché prodotto di due numeri interi;
y=1.2*3.4 la moltiplicazione restituisce un valore double perché prodotto di due numeri double;
z=8.2*4 la moltiplicazione restituisce un valore double perché prodotto di un double e di un intero;
w=5*79.0 la moltiplicazione restituisce un valore double perché prodotto di un intero e di un double;

/
divisione
, operatore binario, definito per i tipi int, double
combina due valori numerici ottenendo un numero; se i tipi sono identici il risultato è dello stesso tipo, altrimenti int viene convertito ("promosso") a double.
Esempi:
x=8/3 la divisione restituisce un valore intero perché divisione di due numeri interi;
ATTENZIONE: se il divisore &egreave; maggiore (in valore assoluto) del dividendo il risultato è 0.
x=3/8 la divisione restituisce un valore 0 intero;
y=5.2/9.7 la divisione restituisce un valore double perché divisione di due numeri double;
z=8.2/2 la divisione restituisce un valore double perché divisione di un double e di un intero;
w=97/45.5 la divisione restituisce un valore double perché divisione di un intero e di un double;

%
modulo
(resto della divisione tra interi), operatore binario, definito solo per i tipi int.
combina due valori int e restituisce int.
L'operatore % (modulo) calcola il resto della divisione dell'operando di sinistra diviso quello di destra.
Esempi:
m=12 % 7 assegna a m il valore 5.

^
or esclusivo
(tra interi) operatore binario.
combina due valori int e restituisce int.
L'operatore ^ (or exclusivo o xor) combina due valori interi calcolando l'or esclusivo bit a bit.
Esempi:
a = 10 ^ 3 assegna ad a il valore 9 (or esclusivo tra 0b1010 e 0b0011 => 0b1001).

^
potenza
(tra double) operatore binario, definito due double o un doule e un int.
Esempi:
b = 10.0 ^ 3.0 assegna a b il valore 1000.0 perché potenza di due double;
c = 10 ^ 3.0 assegna a c il valore 1000.0 perché potenza di base intera e esponente double: il numero intero viene "promosso" a double;
d = 10.0 ^ 3 assegna a d il valore 1000.0 perché potenza di base double e esponente intero: il numero intero viene "promosso" a double;

&
And aritmetico bit a bit
- definita solo per i tipi int. Esempio 7 & 12 restituisce 4.
Esempi:
m=12 & 7 assegna a m il valore 4.

|
Or aritmetico bit a bit
- definita solo per i tipi int. Esempio 7 | 12 restituisce 15.
Esempi:
m=12 | 7 assegna a m il valore 15.

>>
shift bit a destra
definita solo per i tipi int. Esempio: 16 >> 2 restituisce 4.
Esempi:
m=16 >> 2 assegna a m il valore 4.

<<
shift bit a sinistra
definita solo per i tipi int. Esempio: 16 << 2 restituisce 64.
Esempi:
m=16 << 2 assegna a m il valore 64.

Operatori logici

==
uguaglianza
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double, boolean e string. Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se i valori si equivalgono, false altrimenti.
È possibile confrontare int con int, double con double, int con double (int promosso a double), double con int (int promosso a double), boolean con boolean, string con string.
Esempi:
k==33restituisce true se il valore di m è 33.
msg=="ciao"restituisce true se msg contiene la sequenza "ciao". Il confronto avviene carattere per carattere distinguendo maiuscole da minuscole.
NOTA: il confronto di uguaglianza tra due boolean è possibile ma usato raramente (praticamente mai).

!=
disuguaglianza
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double e string.
Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce false se i valori si equivalgono, true altrimenti.
È possibile confrontare int con int, double con double, int con double (int promosso a double), double con int (int promosso a double), boolean con boolean, string con string.
esempi:
n!=41restituisce true se il valore di n è diverso da 41.
msg!="ciao"restituisce true se msg NON contiene la sequenza "ciao". Il confronto avviene carattere per carattere distinguendo maiuscole da minuscole.
NOTA: il confronto di disuguaglianza tra due boolean è possibile ma usato raramente (praticamente mai).

>
maggiore di
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double e string.
Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se il valore a sinistra è maggiore di quello a destra, false altrimenti.
Esempi:
z>5restituisce true se il valore di z è maggiore di 5.
parola>"ippopotamo"restituisce true la stringa contenuta nella variabile parola in ordine lessicografico viene dopo la stringa "ippopotamo".

<
minore di
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double e string.
Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se il valore a sinistra è minore di quello a destra, false altrimenti.
Esempi:
r<qrestituisce true se il valore di r è minore di q.
parola<"ippopotamo"restituisce true la stringa contenuta nella variabile parola in ordine lessicografico viene prima della stringa "ippopotamo".

>=
maggiore o uguale a
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double e string.
Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se il valore a sinistra è maggiore o uguale a quello di destra, false altrimenti.
Esempi:
g>=hrestituisce true se il valore di g è maggiore o uguale a quello di h.
nome>="mario"restituisce true la stringa contenuta nella variabile nome è "mario" oppure viene dopo in ordine lessicografico.

<=
minore o uguale a
operatore binario; confronta due "compatibili" e restituisce boolean; definito per i tipi int, double e string.
Usato principalmente nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se il valore a sinistra è minore o uguale a quello di destra, false altrimenti.
Esempi:
m<=23restituisce true se il valore di z è minore o uguale a 23.
nome<="mario"restituisce true la stringa contenuta nella variabile nome è "mario" oppure viene prima in ordine lessicografico.

&&
And logico
operatore binario; combina due valori boolean e restituisce boolean.
Usato principalmente per combinare il risultato di due confronti nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se entrambi gli elementi sono true, false altrimenti.
Esempi:
z>5 && z<10restituisce true se il valore di z è compreso tra 5 e 10.

||
Or logico
operatore binario; combina due valori boolean e restituisce boolean.
Usato principalmente per combinare il risultato di due confronti nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se almeno uno dei due elementi è true, false altrimenti.
Esempi:
s<5 || s>10restituisce true se il valore di s non è compreso tra 5 e 10.

!
negazione logica
operatore unario definito per i tipi boolean; restituisce boolean.
Usato principalmente per nelle valutazioni di condizioni per selezione e cicli.
Restituisce true se l'elemento è false, true altrimenti.
Esempi:
!(s<5)restituisce true se s NON è minore di 5.

Funzioni matematiche

Funzioni unarie definite su valori "x" di tipo double che restituiscono valore double.
Gli argomenti int vengono convertiti a double.

Unica eccezione la funzione random che non ha argomenti e restituisce un numero double.

sqrt(x)
radice quadrata di x. Definita per x&>=0.

sin(x)
funzione trigonometrica seno di x (x in radianti).

cos(x)
funzione trigonometrica coseno di x (x in radianti).

tan(x)
funzione trigonometrica tangente di x (x in radianti).

cotan(x)
funzione trigonometrica cotangente di x (x in radianti).

asin(x)
funzione trigonometrica arcoseno di x, inversa di sin() (x compreso tra -1 e 1).

acos(x)
funzione trigonometrica arcocoseno di x, inversa di cos() (x compreso tra -1 e 1).

atan(x)
funzione trigonometrica arcotangente di x, inversa di tan().

acotan(x)
funzione trigonometrica arcocotangente di x, inversa di cotan().

sinh(x)
funzione seno iperbolico.

cosh(x)
funzione coseno iperbolico.

tanh(x)
funzione tangente iperbolica.

exp(x)
e (numero di eulero) elevato alla x.

ln(x)
logaritmo naturale in base e di x.

log10(x)
logaritmo in base 10 di x.

abs(x)
valore assoluto x.

ceil(x)
arrotondamento intero per eccesso.

floor(x)
arrotondamento intero per difetto.

round(x)
arrotondamento all'intero più vicino.

random()
restituisce un numero (pseudo) casuale tra 0.0 e 0.99999999999999.

Funzioni di manipolazione stringhe

strlen(s)
string --> int
Lunghezza della stringa s. Ritorna il numero (intero) di caratteri di s.
Esempio: lung = strlen("ciao") restituisce 4.

strchar(s,p)
string --> string
Carattere dalla stringa s. Ritorna una stringa formata dal singolo carattere di s alla posizione p.
L'argomento s deve essere string, p deve essere int. La prima posizione è 0.
Esempio:
ch = strchar("ciao",2) - restituisce "a".

substr(s,i,j)
string --> string
Sottostringa di s. Ritorna una stringa formata dai caratteri di s dalla posizione i alla j-1. L'argomento s deve essere string, i e j int. La prima posizione è 0.
Esempio:
nome = strchar("ciao Mondo!",5,10) - restituisce "Mondo".

strpos(s,t)
string --> int
posizione della sottostringa. Ritorna il numero (intero) con la posizione di t in s. La prima posizione è 0.
Esempio:
pos = strpos("ciao Mondo!","Mondo") restituisce 5.

strupr(s)
string --> string
converte in maiuscolo. Ritorna la stringa convertita in maiuscolo.
Esempio:
maiu = strupr("Ciao") restituisce "CIAO".

strlwr(s)
string --> string
converte in minuscolo. Ritorna la stringa convertita in minuscolo.
Esempio:
maiu = strupr("Ciao") restituisce "CIAO".

trim(s)
string --> string
elimina spazi iniziali e finali. Ritorna la stringa senza spazi a inizio / fine.
Esempio: saluto = trim(" Ciao ") restituisce "Ciao".

Funzioni di conversione tra tipi diversi

Funzioni di manipolazione stringhe e conversione tra tipi diversi

ctoi(s)
string --> int
codice intero del carattere. Ritorna il numero (intero) codice ASCII del primo carattere di s passata come parametro.
Esempio:
cod = ctoi("Ciao") restituisce 67.

itoc(i)
int --> string
carattere dal codice intero. Ritorna il carattere corrispondente al codice ASCII i (intero) passato come parametro. Esempio:
char = itoc(65) restituisce "A".

stoi(s)
string --> int
converte stringa in intero. Ritorna il numero (intero) convertito dalla stringa s data. La stringa deve contenere solo cifre numeriche.
Esempio:
val = stoi("12") restituisce il numero intero 12.

itos(i)
int --> string
rappresentazione in stringa del numero. Ritorna la stringa corrispondente al numero i (intero) passato come argomento. Esempio:
s = itos(65) restituisce "65".

iformats(i,n)
int --> string
formattazione del numero in stringa. Ritorna la stringa lunga n corrispondente al numero (intero) i passato aggiungento a sinistra eventuali spazi iniziali che si rendessero necessari.
Esempio:
s = itos(65,5) restituisce " 65".

sbasetoi(s,b)
string --> int
converte stringa s in intero espresso in una base numerica (da 2 a 36). Ritorna il numero (intero) convertito dalla stringa s nella base b data. Esempio:
val = stoi("12", 16) converte le cifre "12" come un numero espresso in base 16. Restituisce il numero intero 18 (in base 10). val = stoi("12", 7) converte le cifre "12" come un numero espresso in base 7. Restituisce il numero intero 9 (in base 10).

ibasetos(i,b)
int --> string
rappresentazione in stringa del numero in una base numerica (da 2 a 36). Ritorna la stringa corrispondente al numero (intero) i passato nella base b specificata
Esempio:
s = itos(10,16) restituisce "A".

stod(s)
string --> double
converte stringa in double. Ritorna il numero (double) convertito dalla stringa s data. La stringa deve una sequenza di caratteri che sia valida come numero double. Può contenere cifre numeriche, il segno, il punto decimale e la lettera e per la notazione esponenziale.
Esempio:
val = stod("12.345e2") restituisce il numero double 1234.5.

dtos(d)
double --> string
rappresentazione in stringa del numero double. Ritorna la stringa corrispondente al numero (double) passato come argomento. Esempio:
s = dtos(65.33) restituisce "65.33".

dformats(d,n,m)
double --> string
formattazione del numero double in stringa. Ritorna la stringa lunga n con m decimali corrispondente al numero (double) passato con eventuali spazi iniziali. Esempio:
s = dformats(65.1234,8,2) restituisce " 65.12".

dtoi(d)
double --> int
conversione da double a intero. Ritorna il numero intero eliminando i decimali dal numero (double) passato come parametro. Esempio:
i = dtoi(65.33) restituisce il numero intero 65 .

type(v)
espressione --> string
informazioni sul tipo di dato. Ritorna una stringa con il nome del dato corrispondente.
Esempi:
type("ciao") restituisce "(string)";
type(123.456) restituisce "(double)";
type(123) restituisce "(int)".

Constanti

Le seguenti sequenze di caratteri definiscono valori particolari: non possono essere usati come nomi di variabili.

PI
pigreco. Rappresentazione (approssimata) di pigreco con 15 cifre significative.

EULER
numero di eulero. Rappresentazione (approssimata) di e, base dei logaritmi naturali, con 15 cifre significative.

INFINITY
costante simbolica che rappresenta il "valore" infinito positivo.
Il "valore" infinito non è calcolabile. Può risultare dal calcolo di alcune funzioni matematiche.

-INFINITY
costante simbolica che rappresenta il "valore" infinito negativo.
Il "valore" infinito non è calcolabile. Può risultare dal calcolo di alcune funzioni matematiche.

NaN
costante simbolica che significa "Not a Number". Risulta dalla divisione 0/0.

TRUE
costante che rappresenta il valore logico vero.

FALSE
costante che rappresenta il valore logico falso.

Vai al Sommario