Wenas,
resulta que un ejercicio de practicas de programacion se me resiste y acudo a vosotros todopoderosos eolianos para ver si me sacais del aprieto.
el codigo del programa es el siguiente:
#include
#include
void muestrea (int n, double xmin, double xmax);
double funcion_base (double x) ;
double lee_real(double min, double max);
int lee_entero (int min, int max);
void main()
{
double xmax,xmin;
int n;
/*leemos el numero de valores ( un numero entre 1 y 10) */
n=lee_entero (1, 10);
/*leemos por teclado el valor de xmin (un numero entre -1000 y 1000) */
xmin = lee_real (-1000,1000);
/*leemos por teclado el valor de xmax (un numero entre xmin y 1000) */
xmax = lee_real (xmin,1000);
/*calculamos la expresion -x*sin(x/2) para 'n' valores equidistantes entre xmin y xmax*/
muestrea (n, xmin, xmax);
}
/* La funcion muestrea calcula la equidistancia entre unos puntos y sobre la funcion senoidal a las que llama */
void muestrea (int n, double xmin, double xmax){
double incremento_x,x;
int contador;
incremento_x=(xmax-xmin)/(n-1);
contador=0;
x=xmin;
while(contador {
printf("Y(%.3lf)= %lf\n",x, funcion_base(x)); /*???Me imprime bien solo las 2 primeras iteraciones¿¿¿*/
x=xmin+incremento_x;
contador++;
}
}
/* funcion_base calcula la funcion y = x*seno(x/2) */
double funcion_base (double x) {
double seno;
double resultado;
seno = sin (x/2);
resultado= seno*x;
return resultado;
}
/* La funcion lee_entero se usa para determinar el numero de divisiones para la equidistancia */
int lee_entero(int min, int max) {
int numero;
printf("Introduzca un numero entre %d y %d: ", min, max);
scanf ("%d", &numero);
printf("\n");
while (numeromax)
{
printf("Introduzca un numero entre %d y %d: ", min, max);
scanf ("%d", &numero);
printf("\n");
}
printf("El numero introducido es: %d\n", numero);
printf("\n");
return numero;
}
/* La funcion lee_real se usa para determinar los valores de xmin y xmax en un intervalo cerrado */
double lee_real(double min, double max) {
double numero;
printf("Introduzca un numero entre %.2lf y %.2lf: ", min, max);
scanf ("%lf", &numero);
printf("\n");
while (numeromax)
{
printf("Introduzca un numero entre %.2lf y %.2lf: ", min, max);
scanf ("%lf", &numero);
printf("\n");
}
printf("El numero introducido es: %.2lf\n", numero);
printf("\n");
return numero;
}
el problema reside en q me debe imprimir por pantalla un numero de valores equidistantes 'n', q previamente introduces por teclado, entre dos valores q tu indicas y te calculas esos valores sobre una funcion de seno.las funciones lee_real, lee_entero y funcion_base estan prefectas pq son copias de problemas anteriores.
el problema esq solo me imprime bien las 2 primeras iteraciones, ponga el numero q ponga entre 1 y 10 particiones...
alguien sabe donde puede estar el problema???
saludosss