Le funzioni matematiche in C++

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 FunzioneDescrizioneEsempio C++
sqrt si applica a float o doubleRadice quadrataEs: x=sqrt(y);
log si applica a float o doubleLogaritmo NeperianoEs: z=log(y);
log10 si applica a float o doubleLogaritmo in Base 10Es: z=log10(x);
pow si applica a float o doublePotenza di un numeroEs: p=(pow(q,x);
equivale a q elevato a x
Exp si applica a float o doubleEsponenziale NeperianoEs: 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.