C/Visual C - ayuda conversion a c

 
Vista:

ayuda conversion a c

Publicado por jose manuel (1 intervención) el 02/11/2005 21:44:25
Hola. Necesito vuestra ayuda porque la compilación me reporta problemas y no sé cómo solvertalo. La parte del algoritmo que no me funciona es la siuguiente:
tipo
tDatosDiarios =
tupla
dia: entero;
tempMax, tempMin: real;
lluvia: real;
ftupla
tDatosEstacion =
tupla
datosDiarios: tabla [MAXDIAS] de tDatosDiarios;
numDias: entero;
ftupla
tMeteoCiudad = tabla [ESTACIONES] de tDatosEstacion;
ftipo

Yo la he covertido como:

typedef struct{
int dia;
float tempMax, tempMin, lluvia;
struct{
tDatosDiarios datosDiarios[MAXDIAS];
int numDias;
}tDatosEstacion;
tMeteoCiudad=tDatosEstacion[ESTACIONES];
}tDatosDiarios;

No sé dónde está el problema espero encontrar una mente avezada capaz de resolverlo e indicarme dónde he metido la pata.
.
Muchas gracias por vuestra ayuda. Hasta pronto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda conversion a c

Publicado por fernando.gomez (1603 intervenciones) el 04/11/2005 05:14:51
Pues claro que da error. Tienes:

typedef struct{
int dia;
float tempMax, tempMin, lluvia;
struct{
tDatosDiarios datosDiarios[MAXDIAS];
int numDias;
}tDatosEstacion;
tMeteoCiudad=tDatosEstacion[ESTACIONES];
}tDatosDiarios;

Pero dentro de tDatosDiarios, y antes de definirlo, incluyes un miembro de tipo... tDatosDiarios... en este momento, no está definido el símbolo tDatosDiarios... por eso no compila.

Además de que está mal escrita. tMeteoCiudad no dices de que tipo de datos es, y además la quieres igualar a tDatosEstacion[ESTACIONES] ??? No entiendo.

Finalmente, tienes una proposición circular, lo que en lógica se llamaría proposición indecidible. tDatosDiarios instancia a tDatosEstacion, la cuál a su vez instancia a tDatosDiarios, pero ésta a su vez instancia a tDatosEstacion, la cuál a su vez instancia... creo que ya captaste la idea.

Por lo que entiendo, tDatosEstacion debería contener a tDatosDiarios, pero no al revés. O en todo caso tendría que ser un puntero, no una instancia. Según yo, lo que quieres sería algo como:

struct _tDatosDiarios
{
int dia;
float tempMax, tempMin, lluvia;
};

typedef struct _tDatosDiarios tDatosDiarios;

struct _tDatosEstacion
{
struct _tDatosDiarios datosDiarios[MAXDIAS];
int numDias;
};

typedef struct _tDatosEstacion tDatosEstacion;

y cuando instancies, sería algo como:

tDatosEstacion datosEstacion;
datosEstacion.numDias = 5;
datosEstacion.datosDiarios[0].dia = 1;
datosEstacion.datosDiarios[0].tempMax = 25.7;
datosEstacion.datosDiarios[0].tempMin = 11.28;
datosEstacion.datosDiarios[0].lluvia = 456;

datosEstacion.datosDiarios[1].dia = 2;
datosEstacion.datosDiarios[1].tempMax = 12.7;
datosEstacion.datosDiarios[1].tempMin = -1.02;
datosEstacion.datosDiarios[1].lluvia = 123;

etcétera. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar