Programación General > C/C++
COLA EN C++
(1/1)
Jexica:
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:
Tomas todos los números en un loop for y guardas en una variable vector las que vayan cumpliendo esa condición.
N3oDoc:
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++ --- class CCola{ public: typedef int TpElemento; static const int MAXCOLA = 100; CCola();//constructor CCola(CCola &otracola); ~CCola(); void Encolar(const TpElemento elem); void Desencolar(); TpElemento Frente(); TpElemento Final(); bool EstaVacia(); bool EstaLLena(); private: int numelems; int frente; int final; TpElemento datos[MAXCOLA]; //aqui guardas la edad de cada elemento de la cola};
Aquí tienes la implementación CCola.cpp:
--- Código: C++ --- #include <cstdlib>#include <iostream>#include <fstream>#include <math.h>#include <conio2.h>#include "cola.hpp" using namespace std; CCola::CCola(){ frente = 1; final = 0; numelems = 0;} CCola::CCola(CCola &otracola){ int i; frente = otracola.frente; final = otracola.final; numelems = otracola.numelems; for(i=0;i<=MAXCOLA;i++){ datos[i] = otracola.datos[i]; }} CCola::~CCola(){} bool CCola::EstaVacia(){ return numelems == 0;} bool CCola::EstaLLena(){ return numelems == MAXCOLA;} void CCola::Desencolar(){ if(!EstaVacia()){ frente = (frente % MAXCOLA) + 1; numelems = numelems - 1; } } void CCola::Encolar(const TpElemento elem){ if(!EstaLLena()){ final = (final % MAXCOLA) + 1; numelems = numelems + 1; datos[final] = elem; }} CCola::TpElemento CCola::Final(){ //precondicion la cola no debe estar vacia return datos[final];} CCola::TpElemento CCola::Frente(){ //precondicion la cola no debe estar vacia return datos[frente];}
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++ --- void aleat (CCola &cola,int inf, int sup){ cola.Encolar(rand()%(sup - inf + 1) + inf);}
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.
lilezek:
--- Cita de: "N3oDoc" ---Primero tienes que crear la implementación de la clase cola supongo:
Aquí te dejo dicha implementación:
[...]
--- Fin de la cita ---
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:
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.
Navegación
Ir a la versión completa