Anonymní profil Shadow2334 – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Shadow2334 – Programujte.comAnonymní profil Shadow2334 – Programujte.com

 

Příspěvky odeslané z IP adresy 79.127.221.–

Shadow2334
C / C++ › Namnožení fronty
3. 3. 2012   #154272

díky za reakci :-),  Zadání mám sice velmi podobné ale frontu mám implementovat pomocí pole 

zadání je takovéto:

Problém
V autoservisu plánují opravy dopředu na N pracovních dnů (např. N = 5). Každý den je možno naplá-novat opravy maximálně pro Z zákazníků (např. Z = 7). Každý zákazník, který přišel do servisu, požadu-je opravu na konkrétní den (nejdříve den 0, nejpozději den N - 1). Jednotlivé dny jsou plánovány jako fronta objednaných oprav. Pokud zákazník požaduje opravu na den, kdy fronta není plná, je oprava naplánována do odpovídající fronty. Pokud je fronta na požadovaný den plná, je zákazník odmítnut. Zpracování opravy trvá jednu časovou jednotku. Simulujte průběh plánování oprav, a poté jejich rea-lizaci.
Implementace
 Čísla N, Z deklarujte jako globální konstanty.
 Každý den reprezentujte frontou implementovanou pomocí pole pro Z oprav. Nepoužívejte třídy (fronta bude reprezentována jako struktura).
 N dnů reprezentujte polem, prvky pole budou fronty.
 Prvek fronty (opravu požadovanou zákazníkem) implementujte jako strukturu, která bude obsa-hovat identifikaci požadavku na opravu (číslo typu int) a den, na který je oprava plánována (číslo typu int).
 Průběh plánování dnů (front) reprezentujte cyklem while, který bude ukončen, pokud budou všechny fronty naplněny. V každém kroku cyklu (jedné časové jednotce) bude vygenerován další požadavek na opravu s náhodně vybraným dnem (0 až N - 1). Identifikátorem požadavku je pořa-dí, ve kterém byl vygenerován (první požadavek bude mít identifikátor 1, poslední záleží na počtu odmítnutých zákazníků). Pokud je fronta pro požadovaný den opravy plná, je požadavek odmít-nut, jinak je zařazen do fronty. Realizaci oprav reprezentujte cykly for a while, pomocí nichž po-stupně vyprázdníte po dnech všechny fronty s opravami.

Shadow2334
C / C++ › Namnožení fronty
3. 3. 2012   #154269

Ahoj, potřeboval bych poradit jakým způsobem vyřešit problém, když potřebuji více front a frontu mám vytvořenou přes strukturu. Mám globálně zadanou proměnnou, na základě její hodnoty potřebuji udělat počet front.  tzn třeba const int = 5; tak potřebuji vytvořit 5 front. A ty jednotlivé fronty uložit do pole, kde na ně potom budu provádět příkazy put, get, .. atd.

Děkuji za rady.

kód struktury: 

struct Fronta
{  
   Fronta()
   {
       hlava = -1;
       ocas = -1;
   }      
 
   void Put(int pozadavek)
   {
       if ( Velikost() == Z - 1 )                 
           throw new Preteceni();
       data[ocas] = pozadavek;
       ocas = ++ocas % Z;
   }      

   int Get()
   {          
       if ( isEmpty() )
           throw new Prazdna();
       int ret = data[hlava];
       hlava = ++hlava % Z;
       return ret;   
   }

   void Cteni()
   {
   for(unsigned int indx = 0;indx<Z-1;indx++)
   {
   cout << data[indx-1] << " ";
   }

   }
 
   int Hlava()
   {          
       if ( isEmpty() )
           throw new Prazdna();

       return data[hlava];
   }
 
   int Velikost()
   {
       return abs(ocas - hlava);
   }
 
   bool isEmpty()
   {
       return ( hlava == ocas ) ? true : false;
   }

   private:
   int data[Z];
   int hlava;
   int ocas;
};

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý