Progetto in C

di il
69 risposte

69 Risposte - Pagina 2

  • Re: Progetto in C

    Ora ho capito cm sistemare il problema del compilatore, però ho ancora problemi aon quanto sopra scritto!!!
    inoltre nn so cm fare a stampare la percentuale di persone nn salite, e se il traghetto è pieno che nn c'è più posto... ah.. nb che ogni persona è accompagnata dsa un veicolo!
    aspetta... cos'altro... dice ogni giorno vengono imbarcate delle persone, supponiamo che ci sia una coda di vecioli in attesa (tipoveicolo e npersone casuali??), si proceda all'imbarco per ognuno dei veicoli... cioè che devo fare in parole povere... che casino...

    Eleonora
  • Re: Progetto in C

    La struttura 'client_t' sarebbe il traghetto?

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Come non detto. E' una riga.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Quindi:

    typedef struct
    {
    char *tipoveciolo;
    char *categoria;
    int npersone;
    int nmaxpersone;
    float costocategoria(cabina, poltrona);
    float costoveicolo;
    int postidisp;
    int prob;
    }client_t;

    <b>
    typedef struct
    {
    client_t riga[];
    }traghetto_t;
    </b>

    Vero?

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Beh, il random ... aspetta mo'.

    Credo che si fa così (uso normalmente un algo fatto da me, che funziona meglio ):

    int rnd = (int)(rand() * 52f);

    Così includi tutti i numeri da 0 a 51.

    Io invece uso:

    <pre id=code><font face=courier size= id=code>
    inline void __Random(int *lpdwResult)
    {
    __asm
    {
    mov edi,lpdwResult
    rdtsc ;read timestamp counter (seed in eax:edx)
    mov ebx,127773
    xor edx,edx

    div ebx
    mov ecx,eax
    mov eax,16807
    mul edx
    mov edx,ecx
    mov ecx,eax
    mov eax,2836
    mul edx
    sub ecx,eax
    xor edx,edx
    mov eax,ecx
    mov [edi],ecx
    }

    }
    </font id=code></pre id=code>

    Questo mi da un valore random sicuro (ideale per la crittografia, prendi nota, potrebbe servire in futuro), e quindi posso fare il mod(52) per ottenere 0...51, e tante altre cose, soprattutto è più random di ogni altra funzione, perché usa un dispositivo hardware imprevedibile (la CPU Pentium IV o AMD per la precisione).

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Nel main poi metto clinet_t *traghetto!il problema del random penso di averlo risolto anche se nn ho capito quello che hai scritto... però nn ho capito una cosa io faccio il ciclo dei giorni, e ogni giorno ci sono in fila un numero di persone casuale e tipo di veicolo casuale, poi devo calcolare per ogni giorno quante persone sono salite e quante i percentuale no(come?) e poi l'incasso... pensavo l'incasso sarà dato dal n.persone salite * (costotipomezzo + prezzocategoria), ma costodel mezzo e prezzocategoria li ho già scritti nel filee.txt... allora a che serve sto file.txt per bellezza o il prezzo e il costo li prendo da li!!!boh... mi sembra tutto un casino!

    Eleonora
  • Re: Progetto in C

    Allora ho capito cm risolvere il prblema del numero delle persone che sono salite e quelle che nn sono salite... am nn so se va bene solo per 1 gg o anche in un ciclo dei gionri;

    totalepostipersona= posticabine1e2+postippoltrone;(nella struct quindi con traghetto[i].qlc)

    *ciclo dei giorni*/
    ngiorni=atio(argv[2]);
    i=0;

    while(ngiorni>i){

    for(j=0; j<totalepostipersona; j++){

    metti che npersonetotale sia random...
    nposti persone= npersonetotale -traghetto[i].maxpersone;

    può andare?

    baci, grazie mille e ancora Buon Natale....... e buone feste

    Eleonora
  • Re: Progetto in C

    Sì, può andare

    Io sono ora un po' in letargo, e cerco di fare il meno possibile, anche al lavoro ... solo divertimento, relax, guardare filmini ... e dormire (a casa)

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    <font color=blue>Io lo farò a febbrario così se eleonora mi presta il libro di c e mi è più facile farlo...

    Buon feste e a presto

    Maldengo</font id=blue>
  • Re: Progetto in C

    Caio sono ancora io... qlc saperchè il mio comilatore (borland)non mi riconosce le librerie del c e quindi nemmeno alcune funzioni?
    in teoria avrei finito ma a mio parere ci sono ancora errori... solo che se nn va il compilatore io nn posso vedere se il prog funziona oppure no!!!
    al massimo lo maderò a zanzan così già che c'è ...


    Eleonora
  • Re: Progetto in C

    Un'altra cosa perchè non va bene

    pers=(random()%2000)+1000;
    veicolo= random()%6;
    posticat=(random()%1000)+500;
    mi dice link error undefined reference to 'random'?

    grazie ancora

    Eleonora
  • Re: Progetto in C

    La funziona si chiama <b>rand()</b>.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Progetto in C

    Ah.... perchè noi all'uni su unix utioizzavamo random() e andava bene!!!
    grazie
  • Re: Progetto in C

    Ho un problemino cm si calcola totnsaliti?

    for(i=0; i<n; i++){

    veicolo= rand()%7;

    if(veicolo==0){

    traghetto[i].nposti=100;

    nnsaliti= posticat-traghetto[i].nposti ;
    }

    if(veicolo==1){

    traghetto[i].nposti=150;
    nnsaliti= posticat-traghetto[i].nposti ;
    }

    if (veicolo==2){

    traghetto[i].nposti=15;
    nnsaliti= posticat-traghetto[i].nposti ;
    }

    if(veicolo==3){

    traghetto[i].nposti=25;
    nnsaliti= posticat-traghetto[i].nposti ;
    }

    if(veicolo==4){

    traghetto[i].nposti=200;
    nnsaliti= posticat-traghetto[i].nposti ;

    }

    if(veicolo==5){

    traghetto[i].nposti=100;
    nnsaliti= posticat-traghetto[i].nposti ;
    }

    if(veicolo==6){

    traghetto[i].nposti=10;
    nnsaliti= posticat-traghetto[i].nposti ;
    }

    totnsaliti= nnsaliti??

  • Re: Progetto in C

    Il ciclo dei gg così e giusto
    for(g=0; g<ngiorni; g++){

    /*stabilisco quanti sono i posti disponibili per le persone e per i mezzi*/

    for(i=0; i<n; i++){

    veicolo= rand()%7;

    if(veicolo==0){

    traghetto[i].nposti=100;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].type.tipoveicolo= catpers[i].bigcar;
    }

    if(veicolo==1){

    traghetto[i].nposti=150;
    nnsaliti= posticat-traghetto[i].nposti ;
    tragetto[i].tipoveicolo=catpers[i].smallcar;
    }

    if (veicolo==2){

    traghetto[i].nposti=15;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].tipoveicolo=catpers[i].bigcamion;
    }

    if(veicolo==3){

    traghetto[i].nposti=25;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].type.tipoveicolo=catpers[i].smallcamion;
    }

    if(veicolo==4){

    traghetto[i].nposti=200;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].type.tipoveicolo= catpers[i].moto;
    }

    if(veicolo==5){

    traghetto[i].nposti=100;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].type.tipoveicolo= catpers[i].campers;
    }

    if(veicolo==6){

    traghetto[i].nposti=10;
    nnsaliti= posticat-traghetto[i].nposti ;
    traghetto[i].type.tipoveicolo=catpers[i].autobus;
    }
    }
    totnsaliti= totnsaliti + nnsaliti;
    typev= typev+traghetto[g].type.tipoveicolo;
    posticat=(rand()%1000)+500;
    mezzisaliti= posticat-totnsaliti;

    printf("I mezzi saliti oggi sono %d, quelli non saliti % d\n", mezzisaliti, nnsaliti);


    Eleonora
Devi accedere o registrarti per scrivere nel forum
69 risposte