ayuda: ¿dónde esta mal?
Publicado por maite (1 intervención) el 17/12/2010 18:12:21
Holaa!
tengo que hacer una practica en C con dev-C++. Se trata de crear un programa que haga el cambio de coordenadas esfericas a coordenadas cartesianas. Me proporcionan un fichero con los puntos que debo cambiar y la formula que necesito. Una vez calculado se deben guardar en otro fichero.
Esto es lo que he echo y no me da:
/*ACTIVIDAD DIRIGIDA 1*/
#include<stdio.h>
#include<string.h>
#include <math.h>
#define PI 3.1416
int main()
{
char a1[100];
int x1, x2, x3, x5, x6;
float r, x4, x7, x8, X, Y, Z;
FILE *f;
FILE *f2;
f=fopen("esferiques.txt", "r"); /*esto abre el fichero de las coordenadas*/
f2=fopen("resultats.txt", "w");/*esto crea el nuevo fichero en el que pondremos los resultados*/
fscanf(f,"%s %f", x1, x2); /*leemos la primera linea*/
fprintf(f2,"%s %f", x1, x2); /*la escribimos tal cual en el segundo*/
while(fscanf(f, "%d %d %d %f %d %d %f %f", x1, x2, x3, x4, x5, x6, x7, x8)!=8)
{
/*este bucle lee del fichero y lo va guardando en el nuevo fichero segun la formula*/
X=(r+x8)*cos((x2*2*PI)/360)*cos((x5*2*PI)/360);
Y=(r+x8)*cos((x2*2*PI)/360)*sin((x5*2*PI)/360);
Z=(r+x8)*sin((x2*2*PI)/360);
fprintf(f2,"%d %f %f %f",x1, X, Y, Z);
}
/*cerramos los ficheros*/
fclose(f);
fclose(f2);
return 0;
fflush(stdin);
getchar();
}
tengo que hacer una practica en C con dev-C++. Se trata de crear un programa que haga el cambio de coordenadas esfericas a coordenadas cartesianas. Me proporcionan un fichero con los puntos que debo cambiar y la formula que necesito. Una vez calculado se deben guardar en otro fichero.
Esto es lo que he echo y no me da:
/*ACTIVIDAD DIRIGIDA 1*/
#include<stdio.h>
#include<string.h>
#include <math.h>
#define PI 3.1416
int main()
{
char a1[100];
int x1, x2, x3, x5, x6;
float r, x4, x7, x8, X, Y, Z;
FILE *f;
FILE *f2;
f=fopen("esferiques.txt", "r"); /*esto abre el fichero de las coordenadas*/
f2=fopen("resultats.txt", "w");/*esto crea el nuevo fichero en el que pondremos los resultados*/
fscanf(f,"%s %f", x1, x2); /*leemos la primera linea*/
fprintf(f2,"%s %f", x1, x2); /*la escribimos tal cual en el segundo*/
while(fscanf(f, "%d %d %d %f %d %d %f %f", x1, x2, x3, x4, x5, x6, x7, x8)!=8)
{
/*este bucle lee del fichero y lo va guardando en el nuevo fichero segun la formula*/
X=(r+x8)*cos((x2*2*PI)/360)*cos((x5*2*PI)/360);
Y=(r+x8)*cos((x2*2*PI)/360)*sin((x5*2*PI)/360);
Z=(r+x8)*sin((x2*2*PI)/360);
fprintf(f2,"%d %f %f %f",x1, X, Y, Z);
}
/*cerramos los ficheros*/
fclose(f);
fclose(f2);
return 0;
fflush(stdin);
getchar();
}
Valora esta pregunta


0