Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ejercicio de Punteros

Estas en el tema de Ejercicio de Punteros en el foro de C/C++ en Foros del Web. Se pretende gestionar mediante punteros la cola de la fotocopiadora. Se pide utilizando funciones: A) Tipo de datos adecuado. B) Programar la funcion iniciarcola, la ...
  #1 (permalink)  
Antiguo 16/11/2010, 10:05
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Ejercicio de Punteros

Se pretende gestionar mediante punteros la cola de la fotocopiadora. Se pide utilizando funciones:

A) Tipo de datos adecuado.
B) Programar la funcion iniciarcola, la cual inicializa una variable para que describa una cola vacia.
C) Programar la funcion alacola, la cual inserta el nombre de un individuo en la cola.
D) Programar la funcion suturno que extrae y muestra el nombre de la primera persona de la cola.
  #2 (permalink)  
Antiguo 17/11/2010, 07:43
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ejercicio de Punteros

No solamente abriste tres temas pidiendo ayuda para tu tarea, sino que ni siquiera pegás código o decís en qué lenguaje estás trabajando
  #3 (permalink)  
Antiguo 17/11/2010, 11:06
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejercicio de Punteros

Código C:
Ver original
  1. //Se pretende gestionar mediante punteros la cola de la fotocopiadora. Se pide utilizando funciones:
  2.  
  3.  //A) Tipo de datos adecuado.
  4.  
  5.       typedef struct cola_foto{
  6.               telemento elemnto;
  7.               struct cola_foto * sigte;
  8.       }cola_foto;
  9.       typedef struct t_cola{
  10.               cola_foto *ant;
  11.               cola_foto *post;
  12.       }t_cola;
  13.       typedef t_cola *cola;
  14.  
  15.  //B) Programar la funcion iniciarcola, la cual inicializa una variable para que describa una cola vacia.
  16.  
  17.  int vacia (cola c)
  18.  {
  19.      return(c->ant==c->post);
  20.  }
  21.  void iciniciarcola(){
  22.       cola c;
  23.       c(t_cola*)malloc(sizeof(t_cola));
  24.       if (c==NULL)
  25.          printf("Memoria insuficiente.");
  26.       c->ant = c->post = (cola_foto*)malloc(sizeof(cola_foto));
  27.              if (c->ant == NULL)
  28.                 printf("Memoria insuficiente.");
  29.              c->ant->sigte = NULL; // Ponemos a NULL el campo sigte del nodo apuntado por c->ant para indicar que es el unico, el nodo cabecera.
  30.       return c;
  31.  }
  32.  
  33.  //C) Programar la funcion alacola, la cual inserta el nombre de un individuo en la cola.
  34.  
  35.  void alacola(telemento x, coal c){
  36.       c->post->sigte=(cola_foto*)malloc(sizeof(celda));
  37.          if (c->post->sigte==NULL)
  38.             printf("Memoria insuficiente.");
  39.             c->post = c->post->sigte;
  40.             c->post ->elemento = x;
  41.             c->post ->sigte = NULL;
  42.  }
  43.  
  44.  //D) Programar la funcion suturno que extrae y muestra el nombre de la primera persona de la cola.
  45.  
  46.  void main()
  47.  
  48.  {
  49.  
  50.      struct nodo *pri=NULL, *ult=NULL;
  51.  
  52.      struct persona x;
  53.      printf("Introduzca el nombre: ");
  54.      gets(x.nombre);
  55.  
  56.      while(strcmpi(x.nombre,"fin"))
  57.  
  58.          if(pri==NULL) pri=ult; // Si es la 1º pasada pongo en pri el valor del primer nodo
  59.  
  60.          printf("Ingrese nombre: ");
  61.          gets(x.nombre);
  62.  
  63.      }
  64.  
  65.      if(colavacia(pri)==1) { printf("No se ingresaron registros"); getch(); }
  66.  
  67.      else mostrar(pri);
  #4 (permalink)  
Antiguo 17/11/2010, 12:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ejercicio de Punteros

Ya parece que lo tenés todo terminado, ¿cuál es la consulta?
  #5 (permalink)  
Antiguo 17/11/2010, 13:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: Ejercicio de Punteros

No estoy seguro que este bien, sobre todo el apartado c. Si me puedes guiar
un poco
  #6 (permalink)  
Antiguo 17/11/2010, 13:38
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ejercicio de Punteros

A simple vista está correcto, excepto por algunos errores (falta el = en la línea 23, has puesto coal en vez de cola en la línea 35).
En la función alacola deberías comprobar que el parámetro c no es nulo, o el programa dará una violación de segmento.

Falta la parte d, aunque creo que eso ya lo sabés.


Saludos.

Etiquetas: punteros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.