• Domingo 19 de Mayo de 2024, 16:28

Autor Tema:  COLA EN C++  (Leído 3369 veces)

Jexica

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
COLA EN C++
« en: Lunes 14 de Junio de 2010, 00:41 »
0
como hago esto????
Dada una cola que contiene la edad de 100 personas determinar las menores de 25 y las que están entre 60 y 90

lilezek

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: COLA EN C++
« Respuesta #1 en: Lunes 14 de Junio de 2010, 16:31 »
0
Tomas todos los números en un loop for y guardas en una variable vector las que vayan cumpliendo esa condición.

N3oDoc

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: COLA EN C++
« Respuesta #2 en: Viernes 18 de Junio de 2010, 21:08 »
0
Voy a ponertelo más complicado, partiendo de que la implementación de la cola la tienes que crear tu:
Aquí te dejo dicha implementación:

Aqui tienes la cabecera CCola.hpp
Código: C++
  1.  
  2. class CCola{
  3.    public:
  4.       typedef int TpElemento;  
  5.       static const int MAXCOLA = 100;
  6.       CCola();//constructor
  7.       CCola(CCola &otracola);
  8.       ~CCola();
  9.       void Encolar(const TpElemento elem);
  10.       void Desencolar();
  11.       TpElemento Frente();
  12.       TpElemento Final();
  13.       bool EstaVacia();
  14.       bool EstaLLena();
  15.       private:
  16.          int numelems;
  17.          int frente;
  18.          int final;
  19.          TpElemento datos[MAXCOLA]; //aqui guardas la edad de cada elemento de la cola
  20. };
  21.  
  22.  

Aquí tienes la implementación CCola.cpp:

Código: C++
  1.  
  2. #include <cstdlib>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <math.h>
  6. #include <conio2.h>
  7. #include "cola.hpp"
  8.  
  9. using namespace std;
  10.  
  11. CCola::CCola(){
  12.    frente = 1;
  13.    final = 0;
  14.    numelems = 0;
  15. }
  16.  
  17. CCola::CCola(CCola &otracola){
  18.    int i;
  19.    frente = otracola.frente;
  20.    final = otracola.final;
  21.    numelems = otracola.numelems;
  22.    for(i=0;i<=MAXCOLA;i++){
  23.       datos[i] = otracola.datos[i];
  24.    }
  25. }
  26.  
  27. CCola::~CCola(){}
  28.  
  29. bool CCola::EstaVacia(){
  30.    return numelems == 0;
  31. }
  32.  
  33. bool CCola::EstaLLena(){
  34.    return numelems == MAXCOLA;
  35. }
  36.  
  37. void CCola::Desencolar(){  
  38.    if(!EstaVacia()){
  39.       frente = (frente % MAXCOLA) + 1;
  40.       numelems = numelems - 1;
  41.    }  
  42. }
  43.  
  44. void CCola::Encolar(const TpElemento elem){
  45.    if(!EstaLLena()){
  46.       final = (final % MAXCOLA) + 1;
  47.       numelems = numelems + 1;
  48.       datos[final] = elem;
  49.    }
  50. }
  51.  
  52. CCola::TpElemento CCola::Final(){ //precondicion la cola no debe estar vacia
  53.    return datos[final];
  54. }
  55.  
  56. CCola::TpElemento CCola::Frente(){ //precondicion la cola no debe estar vacia
  57.    return datos[frente];
  58. }
  59.  
  60.  

ahora lo único que tienes que hacer es crear un proyecto, incluir los dos archivos .hpp y .cpp, y desde tu programa main.cpp hacer un include de la clase cola:
#include "CCola.hpp"
luego se supone que dentro de un bucle debes meter la edad de las 100 personas dentro de la cola, vas encolando.
Puedes usar la siguiente función para encolar personas con una edad aleatoria en la cola:

Código: C++
  1.  
  2.  
  3. void aleat (CCola &cola,int inf, int sup)
  4. {
  5.  cola.Encolar(rand()%(sup - inf + 1) + inf);
  6. }
  7.  
  8.  

y finalmente vas desencolando por el frente comparando la edad, vas almacenando en una variable el numero de personas con edad > 25 años, y en otra variable el numero de personas de edades entre 60 y 90 años.
« última modificación: Viernes 18 de Junio de 2010, 21:14 por N3oDoc »

lilezek

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: COLA EN C++
« Respuesta #3 en: Viernes 18 de Junio de 2010, 21:11 »
0
Cita de: "N3oDoc"
Primero tienes que crear la implementación de la clase cola supongo:
Aquí te dejo dicha implementación:

[...]

Quizá la cola es un array de edades consecutivas en memoria. Si es así, simplemente haz el looping de for almacenando cada número en 3 vectores distintos.

N3oDoc

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: COLA EN C++
« Respuesta #4 en: Viernes 18 de Junio de 2010, 21:20 »
0
De hecho es más probable que sea así.
Pero yo utlizaría solo dos variables:
Una para las edades menores que 25 y otra para las edades comprendidas entre 90 y 60.