elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: metodo de newton rapson para calcular las raices de una funcion con n grado en: 30 Septiembre 2011, 01:45 am
hola ya creo que tengo la solucion pero necesito que me ayuden pues me estan saliendo los siguientes errores: iostream.h: no such file or directory, este mismo error me sale en fstream.h y cmath, in funtion main, sintaxis error before "label1", label1 undeclared(first use in this funtion), me salen todos estos errores pero no he sido capaz de corregirlos lo estoy haciendo en dev c++ ayudenmen a corregirlos.
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <cmath>
 
/*void evaluapoli(int n, double *f, double x, double &p); //utilizada por newton_raphson.h
void derivapoli(int n, double *f, double *fd);
void newtonraphson(int n, double *f, double *fd, double &x, int &contador);*/
 
int main(){
   
 ifstream label1 ("datos//datos.in");
   
 int n;
 
 prinft("El grado del polinomio y sus coeficientes están en datos/datos.in\n\n");
   
 //Introduce el grado del polinomio

 label1 >> n;
 prinft("grado = ", n, "\n\n");
 
 double *f, *fd;
   
 f = new double [n+1];   // Arreglo para los coeficientes del polinomio
 
 fd = new double [n];    // Arreglo para los coeficientes de la derivada del polinomio
   
 // Se introducen desde datos.in y se imprimen en pantalla los coeficientes del polinomio
   
 prinft("Coeficientes del polinomio\n\n");
 
for (int i = n; i > -1; i--) {
    label1 >> f;
   
  //scanf("%d", f);
 
  prinft("F",  i, " = ", f, "\n");
   
    }
 
    prinft("\n");
 
 derivapoli (n, f, fd);  // función que determina la primera derivada y
         // se imprimen sus coeficientes
 
 prinft("Coeficientes del polinomio primera derivada\n\n");
 
 for (int i = n - 1; i > -1; i--) {
 
  prinft("Fd", i, " = ", fd, "\n");
 
 }
   
 prinft("\n");
 
 prinft("Introduzca el valor de inicio para la raiz: \n",  "X = ");
 
    double x;
   
    int contador = 0;
 // Se introduce el valor de x
   
    scanf("%d", &x);
 
    prinft("\n");
 
 // Implementación del método de Newton-Raphson
 
 newtonraphson (n, f, fd, x, contador);
 
    prinft("La raiz es x = ", x, " y se obtuvo en ", contador, " iteraciones\n");
   
    return 0;
   
   }
   
void evaluapoli(int n, double *f, double x, double &p){
   
 int i;
   
 double *a;
 
 a = new double [n];
 
 for (i = n; i > -1; i--) {  // Crea una copia de los elementos de f
                             // porque el ciclo for inferior los destruye
 
  a = f;                 
   
    }
   
 for (i = n; i > 0; i--) {
   
 p = a * x + a[i - 1];
 
  a[i - 1] = p;
 
 }
 
// P es el valor del polinomio en el punto x
 
   }
   
   void derivapoli(int n, double *f, double *fd){
   
    int i;
   
    for (i = n; i > 0; i--){
   
    fd[i-1] = i * f;
 
 }
   
   }
   void newtonraphson(int n, double *f, double *fd, double &x, int &contador){
 
    /* La función evaluapoli determina el valor del polinomio en el punto x.*/
   
    double p=0, y1, y2, verificador, z = 0;
 
    do {    evaluapoli (n, f, x, p);  // Determina el valor del polinomio en el punto
   
  y1 = p;
 
     evaluapoli (n-1, fd, x, p);  //Valor de la primera derivada en el punto
 
     y2 = p;
   
     x = x - y1/y2;
   
     verificador = fabs(x - z);
   
  z = x;
 
  contador += 1;
   
 } while (verificador > 1e-10);
 
}

2  Programación / Programación C/C++ / metodo de newton rapson para calcular las raices de una funcion con n grado en: 29 Septiembre 2011, 15:37 pm
hola estoy haciendo un programa en dev c++ para hallar las raices de una funcion con el metodo de newton rapson, ya la supe hallar para cuando es de grado 2 la funcion y me quedó asi:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>

double funcion (double x);
double derivadaf (double x);

main()
{
   int Nit, i;
   double cota,xi,xsol,error;

   printf("Metodo de Newton-Raphson\n");
   printf("Cota de error maxima: ");
   scanf ("%lf",&cota);
   printf ("Numero maximo de iteraciones: ");
   scanf ("%d",&Nit);
   printf ("Punto inicial: ");
   scanf ("%lf",&xi);

   i = 1; /* Contador de iteraciones */
   error = cota + 1 ; /* Para asegurar que error > cota al ppio */

   while (i<= Nit && error > cota)
   {
      /* Aplicamos formula Newton-Raphson */
      xsol = xi - funcion (xi) / derivadaf(xi);
      error = fabs (xsol-xi);
      i++;
      /* En la siguiente iteracion xsol es xi */
      xi = xsol;
   }

   printf ("La solucion es %lf\n", xsol);
   printf ("El valor de la funcion es %g\n",funcion(xsol));
   printf ("El error alcanzado es %g\n", error);
   if (i>=Nit)
      printf ("Se ha alcanzado el maximo n. de iteraciones\n");
   else
      printf ("El n. de iteraciones ha sido %d\n",i);
      getch();
}
double funcion(double x)
{
   double f;
   f = x*x + 2*x - 35;
   return (f);
}

double derivadaf(double x)
{
   double fp;
   fp = 2*x + 2;
   return (fp);

}
el problema es que como hago ahora para hacer este programa pero que me calcule cualquier funcion con grado n, intente hacerlo del siguiente modo con vectores, pero la verdad no se como poner el formato de la ecuacion ni la derivada?? alguien me puede guiar ayuda.

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>
//vetor grado 3   posiciones, grado 5 -5 posiciones

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>

double funcion (double x);
double derivadaf (double x);

main()
{
   int Nit, i;
   double cota,xi,xsol,error;

   printf("Metodo de Newton-Raphson\n");
   printf("Cota de error maxima: ");
   scanf ("%lf",&cota);
   printf ("Numero maximo de iteraciones: ");
   scanf ("%d",&Nit);
   printf ("Punto inicial: ");
   scanf ("%lf",&xi);

   i = 1; /* Contador de iteraciones */
   error = cota + 1 ; /* Para asegurar que error > cota al ppio */

   while (i<= Nit && error > cota)
   {
      /* Aplicamos formula Newton-Raphson */
      xsol = xi - funcion (xi) / derivadaf(xi);
      error = fabs (xsol-xi);
      i++;
      /* En la siguiente iteracion xsol es xi */
      xi = xsol;
   }

   printf ("La solucion es %lf\n", xsol);
   printf ("El valor de la funcion es %g\n",funcion(xsol));
   printf ("El error alcanzado es %g\n", error);
   if (i>=Nit)
      printf ("Se ha alcanzado el maximo n. de iteraciones\n");
   else
      printf ("El n. de iteraciones ha sido %d\n",i);
      getch();
}
double funcion(double x)
{
    int i=0, g=0;   
   double f, j[100], v=0;
   printf ("digite el grado de la ecuacion:  \n" );
    scanf("%d", &g );
    g++;
    for(i=0; i<=g; i++)
    {
      printf ("digite el valor de variable:  \n" ); 
      scanf("%f", &v);   
     j=j+v;
    }
     
   f =
   return (f);
   
}
double derivadaf(double x)
{
   double fp;
   fp =
   return (fp);

}
3  Programación / Programación C/C++ / Re: ayuda en operacion con matriz en: 12 Septiembre 2011, 22:42 pm
ok, gracias, problema resuelto. =)
4  Programación / Programación C/C++ / ayuda en operacion con matriz en: 11 Septiembre 2011, 22:00 pm
hola tengo el siguiente programa,  que guarda 4 numeros en una matriz, pero quiero realizar una division entre el numero que se encuentra guardado en matris[1][1] y el total de columna que sería asi:  P= matris[1][1]/totalc, el problema es que en la impresion de este resultado siempre me vota r=0.0, que hacer ayuda.... a continuacion envio mi codigo para que me indiquen en que estoy fallando.
 
int f,c,nume,sum=0, sumf=0, totalf=0, totalc=0;
 double P=0, a=0;
int matris[2][2],fil[2],col[2]; // matris= matriz fil= filas col=columnas


printf("\n PROBABILIDAD CONDICIONAL" );
printf("\n");


 for(f=0; f<2; f++)
 {
 for(c=0; c<2; c++)
 {
 printf("\n Introduzca la cantidad de moleculas "); 
 scanf("%d",&nume);
 matris[f][c]=nume;
 }
 }
// printf("\n ");
printf("\n Matriz 2x2 ");
for(f=0; f<2; f++)
{
printf("\n ");
for(c=0; c<2; c++)
{
  printf("\n ");   
 printf(" %d", matris[f][c]);
}
printf("\n ");
}




for(f=0; f<2; f++)
{
for(c=0; c<2; c++)
{
sumf=matris[f][c]+sumf; //suma de las filas

}
printf("\n Suma de los elementos por Filas: %d", sumf);
fil[f]=sumf;
totalf=totalf+fil[f];
//printf("\n Suma total Fila 1: %d", totalf);
sumf=0;

}
printf("\n Suma total de las Filas 1 y 2: %d", totalf);


//cargar el vector por columnas
for(c=0; c<2; c++)
{
for(f=0; f<2; f++)
{
sum=matris[f][c]+sum; //suma de las columnas
}
printf("\n Suma de los elementos por columnas %d", sum);
col[c]=sum;
totalc=totalc+col[c];
sum=0;
}
printf("\n Suma total columnas 1 y 2: %d", totalc);
printf("\n Suma total fila 2: %d", fil[1]);
printf("\n");
a= (fil[1]/totalc);
printf("Pa: %5.1lf\n",a);
printf("\n");
 P=((matris[1][1])/(totalc));
printf("P(B¦A): %f\n",P);

printf("matriz i.i: %d\n",matris[1][1]);



getch();

}
5  Programación / Programación C/C++ / explicacion del programa que genera pi en: 10 Septiembre 2011, 19:13 pm
hola necesito que me ayuden a entender el funcionamiento del siguiente programa, es el método montecarlo para hallar pi:

// se que  en esta parte se inician variables
double x,y;
  int  cantidad=0;
  double r, contador=0;
  double pi, media=0.0, varianza, desviacion;
  double suma = 0.0;

  printf("ingrese el numero de iteraciones: ");
  scanf("%d",&cantidad);
   srand(time(NULL));

     for ( contador=1; contador<cantidad; contador++)
   {
      x = (double)rand()/RAND_MAX;// en esta parte no se para que se hizo
      y = (double)rand()/RAND_MAX;
      r = x*x+y*y;// esto es para que tome los cuatro cuadrantes??
     
      if (r<=1)// en esta parte para que tome los menores a uno pero para que se hace??
       {
         contador++;//la cantidad y el contador que acumula?
         cantidad++;
         pi=contador*4/cantidad;//por que pi se hallo de ese modo?
   if(pi>=3.0){ //conque fin se hizo este if
   
         suma = suma + pi; //bueno aqui supongo que es para sumar todos los numero aleatorios que se generan
        media = suma/(double)cantidad ;
        varianza = ((suma - media)*(suma-media))/cantidad;
        desviacion = sqrt(varianza); }  //aqui supongo que se saco la raiz de varianza para hallar la desviacion
     }
       
   }
    printf("pi vale %20.14Lf\n",pi);
    printf("La media es %lf\n", media);
   
    printf("la varianza vale %20.14Lf\n",varianza);
    printf("la desviacion vale %20.14Lf\n",desviacion);
   

getch();
}
6  Programación / Programación C/C++ / error en hallar media en: 28 Agosto 2011, 17:54 pm
hola hice un programa que calcule pi por el metodo de montecarlo, trate de hallar la media, la varianza y la desviacion de los numeros aleatorios generados, pero la media me da muy baja y la desviacion muy alta, hice un if para hallar la media a partir de los numeros mayores a 3.0 pero me sigue dando muy baja, me dijeron que para lo que quiero hacer tengo que guardar los numeros generados en un arreglo y de ahi escoger los mayores a 3.0 para hallar la media, pero la verdad nunca he trabajado con arreglos, alguien me puede explicar.. ayuda porfa.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <time.h>
int main()
{
   int cantidad;
   double x,y;
   int i;
   double z, contador=0;
   double pi, media, suma, varianza, desviacion;
 
   printf( "Cuantas iteracciones desea hacer: ");
     scanf("%d",&cantidad);
 
   srand(time(NULL));
   for ( contador=0; contador<cantidad; contador++)
    {
      x = (double)rand()/RAND_MAX;
      y = (double)rand()/RAND_MAX;
      z = x*x+y*y;
   
      if (z<=1)
      {
       contador++;
       cantidad++;
       pi=contador*4/cantidad;
       suma = suma + pi;     
     
       if(pi>=3.0){
   
         suma = suma + pi;
        media = suma/(double)cantidad ;
        varianza = ((suma - media)*(suma-media))/cantidad;
        desviacion = sqrt(varianza); } 
       }
      }   
     
   
      printf("La media es %lf\n", media);
     printf("la varianza vale %20.14Lf\n",varianza);
    printf("la desviacion vale %20.14Lf\n",desviacion);
   getch(); 
 
}
7  Programación / Programación C/C++ / Re: eror al leer archivo en: 28 Agosto 2011, 16:28 pm
gracias Queta, ya no me salen los errores, le cambie al programa el return pues me salía error ahí, por ello lo sustituí con el getch. mil gracias
8  Programación / Programación C/C++ / eror al leer archivo en: 27 Agosto 2011, 01:03 am
hola quiero hacer un programa en dev c++ que lea un archivo txt Luego se escriben en el archivo diez números enteros elegidos al azar. Cada vez que se ejecute el programa, se añadirán otros diez números al azar al final del archivo. pero me sale error en  fich  el msn es: conflicting types for fich, previous declaration of fich was here, tambien me aparece error cuando uso fprintf: conflicting type for fprintf, fstream:no such file or directory..  por otro lado quisiera hallar la desviacion de todos los datos que hay en el archivo pero esa partecita si no se como hacerla.....ayuda... 5 estrellas
#include <iostream>
#include <fstream>
#include <stdio.h>


FILE *fich;
   int i, N;
   fich = fopen("ejemplo.txt", "at");
   if (fich == NULL)
      printf("Error al abrir el archivo");
   else
   {
      for (i = 0; N < 10; i++)
      {
         N = random(1000)+1;
         fprintf(fich, "%i\n", N);
      }
      fclose(fich);
   }
9  Programación / Programación C/C++ / error cuando compilo- dev c++ en: 14 Agosto 2011, 22:44 pm
hola
tengo que hacer un programa donde genere numeros aleatorios, donde cada vez que digite más lanzamientos se acerque más al numero pi, el problema es que en mi programa me sale un error que dice: " conio: No such file or directory. " y no me corre, al principio me salia error cuando usaba cou, luego despues de intentar de varias formas preferi cambiarlo por printf, pero salia error decidi usar cout pero agregandole using::cout; y dejo de salir error pero ahora me sale es el que les dije ayudaaaa....no se como hacer para que me funcione bien el programa.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstdlib>
using std::system;
#include <conio>

int main( )
{
double pi = 0, sijno=1;

for (double i = 1; i < 99999; i+=2)
{
pi=pi+(4/i)*sijno;
sijno =sijno*-1;
}
cout<< "PI = " << pi<<"\n";
//printf("PI = ", pi);

//std::cin.get();
//return 0;
//getch();
system("pause");
// return 0;

}
10  Programación / Programación C/C++ / Re: programa c++ en: 10 Abril 2011, 22:35 pm
hola xafi, gracias por tu aporte lo intente por ese lado y me funcionó a la perfeccion, solo que demore un poco mas... pero bueno mi pregunta ahora es si puede en ese mismo programa contar los comentarios  que hay en el archivo que cargue  a traves de token y si la sentencia podria ir igual a la de contar el int??? if(!strcmp(token, "//"))
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines