back to top

Radice quadrata in C: vediamo come calcolarla in diversi modi

La radice quadrata è un’operazione matematica piuttosto comune (in Italia la si insegna alle scuole medie) che consiste nel trovare il numero che, moltiplicato per se stesso, dà come risultato un numero di partenza.

Ad esempio la radice quadrata di 4 è 2 perché 2 * 2 = 4

Usare la funzione sqrt() per calcolare la radice quadrata in C

In linguaggio C, esistono diversi modi per calcolare la radice quadrata di un numero. Il più semplice consiste nell’utilizzare la funzione matematica sqrt(), che fa parte della libreria <math.h> di C. Questa funzione accetta un singolo argomento cioè il numero di cui si desidera calcolare la radice quadrata. Il numero passato in argomento alla funzione sqrt() può esserei sia un numero intero che uno decimale. Altrettanto dicasi per il risultato che potrà essere, ovviamente, un numero intero o decimale.

#include <math.h>
#include <stdio.h>

int main() {
  double numero = 10.89;
  double risultato = sqrt(numero);
  printf("La radice quadrata di %lf è %lf", numero, risultato);
  return 0;
}

Il risultato che otterremo eseguendo questo semplice codice sarà il seguente:

La radice quadrata di 10.89 è 3.3

Utilizzare la tecnica di Newton-Raphson per il calcolo della radice quadrata in C

Un altro modo per calcolare la radice quadrata consiste nell’utilizzare un algoritmo di approssimazione, come ad esempio la tecnica di Newton-Raphson.

L’algoritmo di Newton-Raphson è un metodo matematico uche funziona facendo successive stime della radice e correggendo queste stime in base a quanto sono lontane dalla vera radice. Questo processo viene ripetuto finché non si ottiene una stima abbastanza precisa.

Questa tecnica in altre parole, utilizza un approccio iterativo per avvicinarsi al valore della radice quadrata di un numero.

Di seguito un esempio di sua implementazione in C:

#include <stdio.h>

double radiceQuadrata(double numero) {
  double approssimazione = numero / 2.0;
  double differenza = numero - approssimazione * approssimazione;
  while (differenza > 0.00001) {
    approssimazione = (approssimazione + numero / approssimazione) / 2.0;
    differenza = numero - approssimazione * approssimazione;
  }
  return approssimazione;
}

int main() {
  double numero = 10.89;
  double risultato = radiceQuadrata(num);
  printf("La radice quadrata di %lf è %lf", numero, risultato);
  return 0;
}

Il risultato generato da queto codice sarà ovviamente identico a quello visto in precedenza.

Conclusioni

Esistono diversi modi per calcolare la radice quadrata di un numero in C: la soluzione più semplice è utilizzare la funzione sqrt() oppre un algoritmo di approssimazione come quello di Newton-Raphson. In alternativa, in linea teorica, è possibile seguire anche altre strade come, ad esempio, l’utilizzo di librerie matematiche più complesse (come la libreria GMP) il cui utilizzo, tuttavia, appare esagerato per colcoli semplici come quello relativo alla radice quadrata.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Sperimentare la sequenza di Collatz in C++

Vediamo come verificare la congettura di Collatz con C++....

Calcolare la radice quadrata con Python

In Python è possibile calcolare la radice quadrata usando...

12 film che ogni programmatore dovrebbe guardare (per trovare ispirazione e creatività)

Molti ragazzi hanno deciso di intraprendere una carriera da...

Cartonizzare una foto con Python e la libreria OpenCV

La cartoonization è una procedura grafica che consente di...

Creare flowchart (diagrammi di flusso) online: 5 strumenti gratuiti

Hai bisogno di realizzare una flow chart ma non...

Linguaggi di programmazione per bambini: giochiamo a fare Coding!

L'insegnamento del coding è l'alfabetizzazione degli anni 2000: conoscere...
Pubblicitร