Funzioni matematiche in C++
Il linguaggio C++, possiede innumerevoli funzioni di libreria matematiche implementate mediante la libreria <math> o <cmath> (la seconda è quella derivante dal linguaggio C, dal quale il C++ ha ereditato numerose caratteristiche).
Alcune delle funzioni della libreria <math> sono:
Nome Funzione | Descrizione | Esempio C++ |
sqrt si applica a float o double | Radice quadrata | Es: x=sqrt(y); |
log si applica a float o double | Logaritmo Neperiano | Es: z=log(y); |
log10 si applica a float o double | Logaritmo in Base 10 | Es: z=log10(x); |
pow si applica a float o double | Potenza di un numero | Es: p=(pow(q,x); equivale a q elevato a x |
Exp si applica a float o double | Esponenziale Neperiano | Es: z=exp(x); |
Altre funzioni disponibili sono classificate in:;
- Trigonometriche come sin(double x(, cos(double x), tan(double x)
- Trigonometriche inverse come asin(double x), acos(double x), atan(double x)
- Iperboliche con sinh(double x), cosh(double x), tanh(double x)
- Numeriche come cell(double x) che approssima all’intero più piccolo vicino a x.
Un primo esempio di codice C++ che sfrutta le funzioni della libreria math è:
#include <iostream>
#include <math>
using namespace std;
int main ()
{
float x=3.0;
float rx,y=10,ly,z=3.0,logz,k=3.0,pe;
float q=-3,p=2;
rx=sqrt(x);
cout <<"Radice Quadrata di x\\n’’ << rx);
ly=log(y);
cout<<"\nLogartimo in base E d y \n’’<<ly);
logz=log10(y);
cout<<"\nLogartimo in base 10 di z\n’’<<logz;
pe=exp(k);
cout <<"\nEsponenziale di k base 10 di k n’’<<pe;
p=pow(q,p);
cout<<"La potenza di q alla p\t%f«\n’’<<p;
return 0;
}
Funzioni di conversione:
Nel linguaggio C++, sono disponibili alcune funzioni di conversione da sistemi di numerazione in base diversa dalla decimale.
Ad esempio la funzione hex converte un numero decimale in esadecimale, la funzione dec converte un numero in formato decimale, e la funzione oct lo converte in formato ottale.
Esse sono usate come combinazione di cout prima di stampare il valore.
Se si vuole visualizzare un numero k intero in formato esadecimale, basterà scrivere:
cout << hex << k;
Per completezza nel listato che segue utilizziamo tutte le tre funzioni:
#include <iostream>
using namespace std;
int main () {
int n = 70;
cout << dec << n << endl;
cout << hex << n << endl;
cout << oct << n << endl;
return 0;
}
Il risultato dell’esecuzione sarà:
70
46
106
il primo numero è in base 10, il secondo in base 16, il terzo in base 8.
Per l’uso di funzioni matematiche si può utilizzare la libreria cmath che dispone di numerose funzioni matematiche secondo la tabella sottoriportata:
Esercizi di ripasso
- Scrivere un programma in C++ che riceva da tastiera tre numeri reali a 12 cifre intere e 4 decimali, e esegua la somma. I numeri devono esere visualizzati in modo corretto.
- Scrivere un semplice programma C++ che riceva tre numeri interi esegua la somma e stampi a video il risultato sia in notazione ottale che esadecimale.