|
Mostrar Mensajes
|
Páginas: [1]
|
4
|
Programación / Programación C/C++ / Re: AYUDA !!! Programa calcula raices n-esimas
|
en: 24 Febrero 2013, 00:57 am
|
int main(int na, char *arg[]) { double v; double n; if (na < 3) { fprintf(stderr, "Introduce radicando y número\n" "Así: \n" "\t%s <radicando> <numero>\n" "\n\ny yo te daré su raiz enésima \n\n" ,arg[0]); exit(-1); return (-1); }
v = atof(arg[2]); n = atof(arg[1]); if (v<= 0) { fprintf(stderr, "El número debe ser positivo.\n"); exit(-1); } if (n<= 1) { fprintf(stderr, "El radicando debe ser mayor de 1.\n"); exit(-1); }
double pow(double x, double n);
double f(double x) { double v; double n; return pow(x, n)-v; //Función cuya raíz busco
}
double Df(double x) { double n; return n*(pow(x, (n-1))); //Derivada de la función f(x) }
double newton(double semilla, double tolerancia) { double x1, x2; double dif;
x1 = semilla; do { x2 = x1 - f(x1)/Df(x1); dif = fabs(x2-x1); x1 = x2; } while (dif > x2*tolerancia);
return x1;
double raiz = newton(1.0, 1e-9); printf("La raíz enésima es %17.12f\n",raiz );
return 0; }
Ahora sólo me marca este error
"nraices.c:87: error: expected declaration or statement at end of input" Por los dos corchetes que tengo en rojo
|
|
|
5
|
Programación / Programación C/C++ / AYUDA !!! Programa calcula raices n-esimas
|
en: 24 Febrero 2013, 00:18 am
|
// nraices.c //
#include <stdio.h> #include <stdlib.h> #include <math.h>
int main(int na, char *arg[]) { double v; double n; if (na < 3) { fprintf(stderr, "Introduce radicando y número\n" "Así: \n" "\t%s <radicando> <numero>\n" "\n\ny yo te daré su raiz enésima \n\n" ,arg[0]); exit(-1); return (-1); }
v = atof(arg[2]); n = atof(arg[1]);
if (v<= 0) { fprintf(stderr, "El número debe ser positivo.\n"); exit(-1); } if (n<= 1) { fprintf(stderr, "El radicando debe ser mayor de 1.\n"); exit(-1); }
double pow(double x, double n);
double f(double x) { return pow(x, n)-v; //Función cuya raíz busco
}
double Df(double x) { return n*(pow(x, (n-1))); //Derivada de la función f(x)
}
double newton(double semilla, double tolerancia) { double x1, x2; double dif;
x1 = semilla; do { x2 = x1 - f(x1)/Df(x1); dif = fabs(x2-x1); x1 = x2; } while (dif > x2*tolerancia);
return x1; }
double raiz = newton(1.0, 1e-9); printf("La raíz enésima es %17.12f\n",raiz );
return 0; } ________________________________
Tengo que hacer un programa que calcule raices n-ésimas pero no logro que me compile, los errores que me da el compilador de geany son : " /tmp/ccYhZhGT.o: In function `f.3225': nraices.c:(.text+0x23): undefined reference to `pow' " " /tmp/ccYhZhGT.o: In function `Df.3228': nraices.c:(.text+0x184): undefined reference to `pow' "
collect2: ld returned 1 exit status
Espero que podáis ayudarme, ya que a mí no se me ocurre nada-- Gracias
|
|
|
|
|
|
|