Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: farelo en 22 de Agosto de 2005, 10:35:47 PM

Título: Preguntilla Fácil De C
Publicado por: farelo en 22 de Agosto de 2005, 10:35:47 PM
 hola, es una chorradita :P ... weno tengo que realizar un programa en el que haya una estructura con los siguienets datos:

typedef struct nodo
{
  int Numero[40];
  char Nombre[50];
  int DNI[10];
  char Direccion[50];
  char telefono[15];
  char Fechan[10]; esta debe estar enlazada con otra estructura (dia, mes año)
  char Fechaa[10]; esta debe estar enlazada con otra estructura (dia, mes año)
  char Fechab[10]; esta debe estar enlazada con otra estructura (dia, mes año)
  struct nodo *siguiente;
  struct nodo *anterior;
}tiponodo;


Entonces, no se cómo realizar la otra estructura y cómo unirlas, a ver si me he explicado bien, gracias
Título: Preguntilla Fácil De C
Publicado por: StraT en 22 de Agosto de 2005, 10:51:48 PM
 Si mal no recuerdo:

struct Fechan {

...


}

typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
Fechan prueba[10]; igual con las siguientes
char Fechaa[10]; esta debe estar enlazada con otra estructura (dia, mes año)
char Fechab[10]; esta debe estar enlazada con otra estructura (dia, mes año)
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;

Lo único que haces es declarar un array de estructuras Fechan llamado prueba.

Saludos
Título: Preguntilla Fácil De C
Publicado por: farelo en 22 de Agosto de 2005, 11:04:28 PM
 struct Fecha {

int dia;
int mes;
int anio;

}

typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
Fecha Fechan;
Fecha Fechaa;
Fecha Fechab;
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;


Algo así?¿?
Título: Preguntilla Fácil De C
Publicado por: ajmendoza en 22 de Agosto de 2005, 11:08:59 PM
 Yep.
Título: Preguntilla Fácil De C
Publicado por: farelo en 22 de Agosto de 2005, 11:19:57 PM
 Mmm, me da errores, de qe me falta puntos y comas después de Fechaa;¿?¿?y tb me pone múltiple declaración de Fecha, y otro error, que os le pongo donde sale:

Os dejo la cabecera, pa ver si así se ve mejor, esto según se ha modificado:


typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
Fecha Fechan;
Fecha Fechaa;
Fecha Fechab;
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;

struct Fecha {

int dia;
int mes;
int anio;

}


typedef tiponodo *pnodo;
typedef tiponodo *Lista;



void (aquí otro error: too many types in declaration ) Insertar(Lista *lista);
void Visualizar(Lista *lista);

Muchas gracias
Título: Preguntilla Fácil De C
Publicado por: ajmendoza en 22 de Agosto de 2005, 11:45:28 PM
 Si te falta el punto y coma detrás de la estructura fecha (se pone detrás de todos los structs, como de las clases), pon dicha estructura (Fecha) delante de la definicion de la estructura nodo porque si no no sabrá cual es el tipo Fecha (por lo menos en mis tiempos) y me resulta raro el parametro de la función:

Insertar(Lista *lista);

Si una variable de Tipo Lista ya es un puntero, ¿Por qué un parametro es un puntero a punteros?.

Un saludo
Título: Preguntilla Fácil De C
Publicado por: farelo en 23 de Agosto de 2005, 12:00:13 AM
 Entonces este es el orden:


struct Fecha
{
int dia;
int mes;
int anio;
}

typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
Fecha Fechan;
Fecha Fechaa;
Fecha Fechab;
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;




typedef tiponodo *pnodo;
typedef tiponodo *Lista;



Lo que no entiendo es lo del punto y coma, donde me falta? pégamelo porfavor. Muchas gracias

Título: Preguntilla Fácil De C
Publicado por: BeRSeRKeR en 23 de Agosto de 2005, 12:11:19 AM
 Después de la llave de cierre ('}'')  de la estructura Fecha.

Saludos.
Título: Preguntilla Fácil De C
Publicado por: farelo en 23 de Agosto de 2005, 12:47:07 AM
 OKis, pero me sige dando los mismos errores, de declaration missing ; , y érror de múltiple declaración, después de cada una de estas:
Fecha Fechan;
Fecha Fechaa;
Fecha Fechab;


Si será una tontuna... pero no doy con ello. Gracias
Título: Preguntilla Fácil De C
Publicado por: _Grey en 23 de Agosto de 2005, 12:50:12 AM
 Por dios.....

struct Fecha
{
int dia;
int mes;
int anio;
}; // <--- ;

typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
struct Fecha Fechan;
struct Fecha Fechaa;
struct Fecha Fechab;
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;

a ver ahora.

Saludos.
Título: Preguntilla Fácil De C
Publicado por: farelo en 23 de Agosto de 2005, 01:01:57 AM
 Muchas gracias, faltaba "struct" delante de fecha. Grcias por vuestra ayuda
Título: Preguntilla Fácil De C
Publicado por: vincent en 23 de Agosto de 2005, 07:32:16 AM
 También puedes hacer:


typedef struct Fecha
{
int dia;
int mes;
int anio;
} Fecha;

typedef struct nodo
{
int Numero[40];
char Nombre[50];
int DNI[10];
char Direccion[50];
char telefono[15];
Fecha Fechan;
Fecha Fechaa;
Fecha Fechab;
struct nodo *siguiente;
struct nodo *anterior;
}tiponodo;


Saludos.
Título: Preguntilla Fácil De C
Publicado por: farelo en 24 de Agosto de 2005, 10:56:20 PM
 Sigo en mi periplo por la práctica... dios cuanto la odio, no enserio... aver si me podéis ayudar ahora, es otra pregunta que creo que es sencilla, sobre lo anterior:

Esto de aquí es la manera de introducir uno mismolos datos a la estructura...
printf("Apellido y Nombre: ");
gets(Nuevo->Nombre);
printf("D.N.I. del socio: ");
scanf("%d", Nuevo->DNI);


Y esto es lo que no consigo, que se introduzca automáticamente...
printf("Número de socio: );
Nuevo.Numero=reg+1;


Y  la última, y os dejo de torturar... sorry:
printf("Fecha de Alta en el club: ");
gets(Nuevo->Fecha.Fechaa);                      // esto como sería, ya que es de otra estructuira que está enlazada, como lo que se hizo al principio...


Weno, nada más, muchas gracias, esto es lo que hace la ausencia de programar en verano...

Título: Preguntilla Fácil De C
Publicado por: farelo en 28 de Agosto de 2005, 03:09:01 PM
 Nadie me puede ayudar?
Título: Preguntilla Fácil De C
Publicado por: ajmendoza en 28 de Agosto de 2005, 04:20:53 PM
 Realmente es que no entiendo la pregunta... (será que es la hora de la siesta..)
Título: Preguntilla Fácil De C
Publicado por: Ray en 28 de Agosto de 2005, 04:30:36 PM
 Por el problema que planteas veo complicado que alguien te pueda ayudar porque creo que es necesaria una planificación previa de lo que pretendes hacer, (y encima es la hora de la siesta).

Solo te puedo dar un par de consejos.

1) Sustituye la estructura por una clase, te facilitará la automatización de los datos, si sabes C aprende C++, mas concretamente la programación orientada a objetos (POO), con un libro a ser posible, y usa cadenas de tipo String en lugar de char, facilitan mucho todo.

2) No se que compilador usas, pero si no es imprescindible que tu programa sea una aplicación de consola te recomiendo que lo hagas en un entorno visual, que es más rapido, más facil, y más bonito. Si no sabes como conseguirlo ve a un kiosko de revistas y encargale al kiosquero que te consiga la unidad 15 del curso IBM de programación, que por 1000 pelas incluye un cd-rom con el compilador C++ Builder 5 de Borland, que trae casi de todo, y esta bastante bién.  Quizas alguien te pueda aconsejar como conseguir uno mejor o mas facilmente.

Siento no poder ayudarte en tu problema concreto.
Título: Preguntilla Fácil De C
Publicado por: farelo en 28 de Agosto de 2005, 04:45:43 PM
 Am, jejeje, vale, intento aclararlo:

Esto es la manera de introducir uno mismo los datos... Es un ejemplo
gets(Nuevo->Nombre);

Y esto es lo que no consigo, que se introduzca automáticamente...
printf("Número de socio: );
Nuevo.Numero=reg+1;               // en una variable normal sería por ejemplo: Numero=Numero+1, osea, que se incremente sóla, sin introducir ningún dato, pues es eso lo que quiero hacer, pero con este dato de la estructura, que se incremente sólo sin necesidad de hacer nada, que no sé hacerlo y según lo tengo puesto no sale

Y la última:
printf("Fecha de Alta en el club: ");
gets(Nuevo->Fecha.Fechaa); // esto como sería? esto sería cómo meto estos datos, en este campo de la estructura, que a su vez está enlazada con otra estructura, como se comentó más arriba, teóricamente tendrías que meter 3 números de la estructura Fecha(dia, mes año), pero que está enlazada con la estructura nodo
Título: Preguntilla Fácil De C
Publicado por: ajmendoza en 28 de Agosto de 2005, 04:52:38 PM
 Lo primero, por lo que supongo, pues igual que en una variable normal.

Nuevo.numero++; y se incrementa. Eso es una variable dentro de una estructura, la tratas igual. Para que tenga validez en toda la aplicacion la variable Nuevo tendrá que ser de tipo global claro.

Y para lo segundo de meter los datos, igual que toa la vida de dios. Como Fechaa tb es una estructura, tb tienes que llamar a sus varialbes de la misma forma.

Nuevo.Fechaa.dia;
Nuevo.Fechaa.mes;
Nuevo.Fechaa.culito_culito; (por eso del anio.. ya sabes, la hora de la siesta xD).

Si la variable Nuevo fuese un puntero, si se utiliza el "->" para acceder a los miembros de la estructura, si no, punto y sa´acabó.  
Título: Preguntilla Fácil De C
Publicado por: farelo en 28 de Agosto de 2005, 05:19:00 PM
 Muchas gracias a los dos, esque es para una práctica y tiene que ser bajo c y en modo msdos, si no daba por saco a to esto y te hacía caso, ta claro, jejeje, ahora mismo lo pruebo  :D , esto de la siesta y sobre todo las vacaciones corrompe a los programadores yo creo, si no dímelo a mí
Título: Preguntilla Fácil De C
Publicado por: Gunmaster en 28 de Agosto de 2005, 10:46:48 PM
 La playa quema el coquito :P