Todo programador de C conoce el archivo de encabezado math.h
del lenguaje de programación C. Este encabezado define varias funciones matemáticas y una macro. Todas las funciones disponibles en esta biblioteca toman double como argumento y devuelven un doble como resultado.
Una de las características conocidas de esta biblioteca es la función sqrt
, la función bastante útil double sqrt(double number)
que devuelve la raíz cuadrada de number
:
#include <stdio.h>
#include <math.h>
int main () {
/// 2.000000
printf("Raíz cuadrada de %lf is %lf\n", 4.0, sqrt(4.0) );
/// 2.236068
printf("Raíz cuadrada de %lf is %lf\n", 5.0, sqrt(5.0) );
return(0);
}
Bastante fácil, ¿verdad? Sin embargo, a los profesores de las universidades no les gusta dejar las cosas fáciles para los estudiantes, por eso en las clases de programación es posible que necesites encontrar una manera de encontrar la raíz cuadrada de un número sin usar esta biblioteca en C.
Como los deberes o las tareas no son opcionales, te mostraremos cómo puedes lograr fácilmente este objetivo sin usar la función sqrt
en C.
Implementación
Para comenzar, le expondremos la solución directamente y se la explicaremos al final del artículo:
#include<stdio.h>
void main()
{
int number;
float temp, sqrt;
printf("Proporcione el número: \n");
scanf("%d", &number);
// almacenar la mitad del número dado, por ejemplo, de 256 => 128
sqrt = number / 2;
temp = 0;
// Itere hasta que sqrt sea diferente de la temperatura, que se actualiza en el ciclo
while(sqrt != temp){
// inicialmente 0, se actualiza con el valor inicial de 128
// (en la segunda iteración = 65)
// y así
temp = sqrt;
// Luego, reemplace los valores (256 / 128 + 128 ) / 2 = 65
// (en la segunda iteración 34.46923076923077)
// y así
sqrt = ( number/temp + temp) / 2;
}
printf("La raíz cuadrada de '%d' is '%f'", number, sqrt);
}
El código funciona así: inicialmente, el programa le pedirá al usuario el número del que queremos encontrar la raíz cuadrada. Almacenaremos la mitad del número en una variable dividiéndola por 2, a saber sqrt
. Luego, declararemos una variable temporal que almacenará una copia del valor anterior de a sqrt
saber temp
. Finalmente, realizaremos un bucle hasta que la variable sqrt sea diferente de temp, dentro actualizaremos el valor de temp con el valor sqrt
anterior y así sucesivamente. El valor sqrt
se actualiza mediante la operación descrita en el código y eso es todo. Una vez que finalice el ciclo, podrás imprimir la raíz cuadrada del número.
Que te diviertas ❤️!
Conviertete en un programador más sociable