Visualizzazione dei risultati da 1 a 10 su 15

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93

    [C++] Creare una Lista di Code

    Salve a tutti, ho questo problema:

    Simulare una situazione in cui si assegnano in modo casuale N=10 utenti in attesa di servizio, identificati da un numero intero, a una di M=3 possibili code.
    Dopo che N/2 utenti sono stati accodati, ogni volta che un nuovo utente è accodato, si sceglie una coda a caso e l'utente in testa alla coda è servito. Si stampi:
    -il contenuto delle code dopo la sistemazione dei primi N/2 utenti;
    -l'utente accodato, quello servito e lo stato delle code a partire da quando gli utenti sono servito fino ad esaurimento delle code
    Ho pensato di utilizzare 3 code inserite in una lista ( cioè la prima cella della lista corrisponde alla prima coda ... e cosi via)

    Ho come struttura dati già create una:
    CodaVT ( realizzata tramite vettori)
    ListaPT (realizzata con puntatori)
    Cellap ( corrisponde ad una cella della lista)

    Il mio problema adesso che non saprei come iniziare... come posso fare a dichiararmi una lista di code ? Grazie

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Una lista che ha come elementi CodaVT (o CodaVT *).
    Ad ogni modo, dato che hai come dato certo che vi sono 3 code e che il loro numero non varia nel tempo, non è più semplice usare un array?

    Inoltre una lista non sarebbe comunque opportuna. Quando si vuole un accesso non sequenziale è molto meglio un array o un vettore.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    Una lista che ha come elementi CodaVT (o CodaVT *).
    Ad ogni modo, dato che hai come dato certo che vi sono 3 code e che il loro numero non varia nel tempo, non è più semplice usare un array?

    Inoltre una lista non sarebbe comunque opportuna. Quando si vuole un accesso non sequenziale è molto meglio un array o un vettore.
    Ciao , grazie per la risposta... gli elementi sono CodaVT * .

    Cmq come puoi vedere nella traccia la seconda struttura dati viene lasciata in dubbio ( non viene detta in modo da lasciare all'utente quale scegliere). Tu quindi mi consigli di creare un vettore di di code visto il mio problema??

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da banino84 Visualizza il messaggio
    Ciao , grazie per la risposta... gli elementi sono CodaVT * .

    Cmq come puoi vedere nella traccia la seconda struttura dati viene lasciata in dubbio ( non viene detta in modo da lasciare all'utente quale scegliere). Tu quindi mi consigli di creare un vettore di di code visto il mio problema??
    Il fatto che non venga specificata non significa che tu debba pescarne una a caso e usare quella. La struttura dati interna sarà certamente una coda. Ma per la struttura dati esterna ti serve qualcosa di adatto all'accesso random, quindi non una lista.
    (in questo caso specifico non farebbe molta differenza (a parte forse per le complicazioni nella gestione), ma se supponiamo tu debba gestite ad esempio 10.000 code, allora ogni volta che vuoi accedere all'elemento 9.999 dovrai prima accedere a tutti i precedenti, e così per ogni elemento).
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    Sisi giusto

    Posso chiederti come posso iniziare con le dichiarazione del mio vettore di code?

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    CodaVT nome_variabile[3];

    O CodaVT *, a seconda di code è implementata.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Ho fatto qualche correzione e qualche semplificazione. Comunque hai implementato solo metà delle richieste. Il codice è commentato.
    codice:
    #include <cstdlib>#include <iostream>
    #include <ctime>
    
    
    
    
    #include "CodaVT.h"
    
    
    
    
    using namespace std;
    
    
    
    
    int main(int argc, char *argv[])
    {
        //il seme va inizializzato, altrimenti la sequenza di numeri pseudocasuali
        //sarà la stessa ad ogni esecuzione
        srand(time(NULL));
        
        const int code = 3;
    
    
        CodaVT<int> *cliente;
        
        //alloca la memoria per le "code" code
        for(int i = 0; i < code; ++i) {
          cliente[i] = new CodaVT<int>(10);
        }
        
        //questa è una seplificazione che potevi fare anche provenendo da java
        //distribuisce gli utenti in "code" code
        for(int i = 0; i < 5, ++1) {
          cliente[rand()%code]->inCoda(i+1);
        }
        
        //stampa le "code" code
        for(int i = 0; i < code; ++i) {
          cout << "Coda " << i+1 << endl;
          cliente[i]->stampa();
        }
        
        //va rilasciata ogni area di memoria allocata
        // delete *cliente; <=> delete cliente[0];
        //in tal modo non venivano rilasciate tutte le aree di memoria.
        for(int i = 0; i < code; ++i) {
          delete cliente[i];
        }
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    93
    grazie... cmq poi avevo migliorato il codice e concluso il problema che avevo postato... ti ringrazio per la pazienza e la disponibilità.
    grazie mille

  9. #9
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da banino84 Visualizza il messaggio
    grazie... cmq poi avevo migliorato il codice e concluso il problema che avevo postato... ti ringrazio per la pazienza e la disponibilità.
    grazie mille
    Di niente. Comunque controlla le correzioni che ho fatto e che il tuo codice finale sia corretto.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.