Raiz cuadrada
Hola
Necesito el codigo para sacar la raiz la cuadrada de un numero sin utilizar funciones como la Match,sqrt...
Necesito el codigo para sacar la raiz la cuadrada de un numero sin utilizar funciones como la Match,sqrt...
Bueno, si sólo quieres sacar la raÃz cuadrada puedes implementarla por medio del método muy ineficiente pero muy fácil de entender e implementar de dividir progresivamente el número entre 2 hasta que el cuadrado de la mitad se acerque tanto como tu quieras a la solución. Te paso un ejemplo de un programa en C que lo hace. En él, si quieres más precisión, entonces debes de aumentar el número de iteraciones. Tanto "inf" como "sup" se acercan a la solución, uno por defecto y otro por exceso respectivamente. Espero te sirva. Hasta luego y suerte
#include <stdio.h>
main ()
{
int i, niter = 20; /* número de iteraciones */
double n = 2.; /* variable con el número al cual se sacará raÃz cuadrada */
double inf = 0, sup = n, multi, mitad;
printf ("n");
for (i = 0; i < niter; i++) {
mitad = (sup - inf) / 2.;
multi = (inf + mitad) * (inf + mitad);
if (multi < n)
inf += mitad;
else if (multi > n)
sup -= mitad;
else
break;
printf ("#%d: %20.12ft%20.12fn", i+1, inf, sup);
}
printf ("#%d: %20.12ft%20.12fn", i+1, inf, sup);
}
#include <stdio.h>
main ()
{
int i, niter = 20; /* número de iteraciones */
double n = 2.; /* variable con el número al cual se sacará raÃz cuadrada */
double inf = 0, sup = n, multi, mitad;
printf ("n");
for (i = 0; i < niter; i++) {
mitad = (sup - inf) / 2.;
multi = (inf + mitad) * (inf + mitad);
if (multi < n)
inf += mitad;
else if (multi > n)
sup -= mitad;
else
break;
printf ("#%d: %20.12ft%20.12fn", i+1, inf, sup);
}
printf ("#%d: %20.12ft%20.12fn", i+1, inf, sup);
}
#include <conio.h>
#include <stdio.h>
#include <iostream>
int main()
{
double teodio, numero, va, raiz, loco;
int respuesta;
do
{
printf (" 1.-Entrar al programan");
printf (" 2.-Salir del programann ");
scanf ("%d", &respuesta);
switch (respuesta)
{
case 1:
printf("nn ****Introduzca el numero que desea obtener su raiz**** n");
scanf ("%lf", &numero);
for( va=0; va <= numero; va++)
{
loco = (va * va);
if (loco == numero )
{
teodio = va;
break;
}
if(loco > numero)
{
teodio = va - 1;
break;
}
}
if (teodio * teodio == numero)
{
textattr (128);
printf(" Su raiz es %.0lf ", teodio);
textattr (10);
}
else
{
do
{
teodio = teodio + 0.000001;
}
while(teodio * teodio < numero);
textattr (128);
printf("SU RAIZ %lf ", teodio);
}
break;
case 2:
printf (“hasta luego buen dia”);
break;
default:
printf (" !!!!!!!!!!!!Solo opcion 1 y 2!!!!!!!!!!!!!!!nn");
break;
}
}
while (respuesta !=2);
getch();
return 0;
}
#include <stdio.h>
#include <iostream>
int main()
{
double teodio, numero, va, raiz, loco;
int respuesta;
do
{
printf (" 1.-Entrar al programan");
printf (" 2.-Salir del programann ");
scanf ("%d", &respuesta);
switch (respuesta)
{
case 1:
printf("nn ****Introduzca el numero que desea obtener su raiz**** n");
scanf ("%lf", &numero);
for( va=0; va <= numero; va++)
{
loco = (va * va);
if (loco == numero )
{
teodio = va;
break;
}
if(loco > numero)
{
teodio = va - 1;
break;
}
}
if (teodio * teodio == numero)
{
textattr (128);
printf(" Su raiz es %.0lf ", teodio);
textattr (10);
}
else
{
do
{
teodio = teodio + 0.000001;
}
while(teodio * teodio < numero);
textattr (128);
printf("SU RAIZ %lf ", teodio);
}
break;
case 2:
printf (“hasta luego buen dia”);
break;
default:
printf (" !!!!!!!!!!!!Solo opcion 1 y 2!!!!!!!!!!!!!!!nn");
break;
}
}
while (respuesta !=2);
getch();
return 0;
}
