• Domingo 28 de Abril de 2024, 19:46

Autor Tema:  Ejercicio de Punteros  (Leído 1900 veces)

barricade

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Ejercicio de Punteros
« en: Martes 16 de Noviembre de 2010, 17:04 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Ejercicio de Punteros
« Respuesta #1 en: Martes 16 de Noviembre de 2010, 17:13 »
0
Por si no te has leído las normas, no se hacen las tareas.

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Ejercicio de Punteros
« Respuesta #2 en: Martes 16 de Noviembre de 2010, 17:22 »
0

barricade

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Ejercicio de Punteros
« Respuesta #3 en: Martes 16 de Noviembre de 2010, 18:22 »
0
Si no se hacen tareas me podeis ayudar con ejemplos que me ayuden,
parecidos a los ejercicios que he puesto.

luchojimenez

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Ejercicio de Punteros
« Respuesta #4 en: Martes 16 de Noviembre de 2010, 20:52 »
0
el libro  que te pase esta repleto de  ejemplos
Código: C++
  1.  
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <ctype.h>
  6. #include <conio.h>
  7. #include <iostream.h>
  8. #define MAX 5
  9. char *p[MAX], *crecup(void);
  10. int spos=0;
  11. int rpos=0;
  12. char *crecup(void);
  13. void intro(void), calmac(char *c), revisar(void), eliminar(void);
  14. int main()
  15. {
  16. clrscr();
  17. char s[80];
  18. register int t;
  19. for(t=0;t<MAX; ++t) p[t] = NULL; //Inicializa el arreglo
  20. for(;;)
  21. {
  22. cout<<"nnOPCIONES DE ITERACION DE LA COLAnn";
  23. cout<<"I. Introducirn";
  24. cout<<"R. Revisarn";
  25. cout<<"E. Eliminarn";
  26. cout<<"S. Salirnn";
  27. cout<<"Seleccione la opci¢n : ";
  28.  
  29. gets(s);
  30. *s = toupper(*s);
  31. switch(*s)
  32. {
  33. case 'I':
  34. intro();
  35. break;
  36. case 'R':
  37. revisar();
  38. break;
  39. case 'E':
  40. eliminar();
  41. break;
  42. case 'S':
  43. exit(0);
  44. }
  45. }
  46. }
  47. //INTRODUCIR CITAS EN LA COLA
  48. void intro(void)
  49. {
  50. char s[256], *p;
  51. do
  52. {
  53. cout<<"Introduce la cita " <<spos+1 <<" : ";
  54. gets(s);
  55. if(*s==0) break; //no hay entradas
  56. p = (char *)malloc(strlen(s)+1);
  57. if(!p)
  58. {
  59. cout<<"No hay memoria n";
  60. return;
  61. }
  62. strcpy(p, s);
  63. if(*s)calmac(p);
  64. }while(*s);
  65. clrscr();
  66. }
  67. //ver que hay en la cola
  68.  
  69. void revisar(void)
  70. {
  71. clrscr();
  72. register int t;
  73. cout<<endl <<endl <<" LISTADO DE CITAS" <<endl <<endl;
  74. for(t=rpos;t<spos;++t)
  75. cout<<t+1 <<p[t] <<endl;
  76. }
  77. //Eliminar una cita de la cola
  78. void eliminar(void)
  79. {
  80. clrscr();
  81. char *p;
  82. if ((p=crecup())==NULL) return;
  83. cout<<endl <<"CITA ELIMINADA:" <<p;
  84. }
  85. //guardar una cita
  86. void calmac(char *c)
  87. {
  88. if(spos==MAX)
  89. {
  90. cout<<"n La Cola esta llena. Presione Intro n";
  91. return;
  92. }
  93. p[spos] = c;
  94. spos++;
  95. }
  96. //Recuperar una cita
  97. char *crecup(void)
  98. {
  99. if(rpos==spos)
  100. {
  101. cout<<"No hay mas citas n";
  102. return NULL;
  103. }
  104. rpos++;
  105. return p[rpos-1];
  106. }
  107.  
  108.  
  109.  
  110.  

este esd  el ejemplo de   planificador  de citas  lease  el libro  que  ahi  encuentra mas  y   estoy seguro  que  aprendera  a  hacer  colas  por si mismo

barricade

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Ejercicio de Punteros
« Respuesta #5 en: Martes 16 de Noviembre de 2010, 21:33 »
0
Muchas gracias, se agradece siempre gente asi.

barricade

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