Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Aggiungo: e se non posti nulla, Joker22, non possiamo assolutamente aiutarti, perchè se non sappiamo come hai effettivamente impostato le strutture dati figurati se possiamo immaginare un algoritmo per gestirle!
"Il fatto è che non ho capito quello che hai detto ...
Se tu hai un idea di come farlo , perché non me la mandi ? Giusto per capire come devo procedere ...
se ti può servire , ti invio quello che ho fatto io fin ora "
Non ho ricevuto risposta , e non ho postato nulla .
Comunque a me non interessa far polemica ...
E' un dato di fatto che non sappia come procedere altrimenti , ripeto , non stavo qua ... non mi preparerei ad una notte insonne per finire sto maledetto progetto .. Dunque applicarsi su quella frase , non mi sembra utile ..
Il codice che hai proposto ha già in sè dei dettagli non adeguati... te ne segnalo uno: qui
Codice sorgente - presumibilmente C/C++
if (bibita_scelta != 10 && bibita_scelta != 11) {
printf("Hai scelto di prelevare %s", array_bibite[bibita_scelta].nome);
printf("\n");
printf("Inserisci delle monete (0.10, 0.20, 0.50, 1.00):\n");
scanf("%f", &monete_inserite);
printf("\n");
}
Il tuo programma mi permetterebbe di far assumere a bibita_scelta qualsiasi valore >11, perchè non hai messo alcun controllo in tal senso.
Detto questo, nel tuo programma non c'è traccia di una struttura per registrare le transazioni, che è una cosa essenziale per lo sviluppo del secondo punto: come intendi gestire questo aspetto? O forse è proprio la struttura dati, che non riesci a sviluppare?
Ultima modifica effettuata da Template il 08/02/2016 alle 23:40
Posso dirti quello che penso debba fare , ma non so fare ...
Dovrei creare una struttura Dati typedef che memorizzi le bibite scelte , poi tramite un algoritmo ricorsivo , calcolare il numero di bibite prelevato ...
ma non so proprio come mettere mano ...
Da qui la frase "se avete qualche idea , proponete"
Posso dirti quello che penso debba fare , ma non so fare ...
Dovrei creare una struttura Dati typedef che memorizzi le bibite scelte , poi tramite un algoritmo ricorsivo , calcolare il numero di bibite prelevato ...
ma non so proprio come mettere mano ...
Da qui la frase "se avete qualche idea , proponete"
Ora ho capito... è proprio la struttura dati, il tuo problema...
Le soluzioni sono tante, e dipendono dalle tue capacità... te ne propongo alcune abbastanza semplici:
- Una soluzione banale e poco efficiente è la definizione di un array del tipo
Codice sorgente - presumibilmente C/C++
struct transazione
{
bibita_acqustata
data_di_acquisto
};
Per registrare la singola transazione. Questa è, di fatto, l'applicazione più "immediata" (ma assolutamente non la migliore) della tua idea di definire una struct per identificare le transazioni.
- Una soluzione un po' più raffinata, sempre posta la definizione del tipo aggregato di cui sopra, può impiegare una tabella di simboli gestita tramite hashing e linear chaining che collochi le singole transazioni usando la data come chiave.
- Un'altra soluzione, realizzabile aggiungendo alla struct bibita una "lista delle transazioni", prevede di inserire nella lista legata ad ogni bibita tutte le transazioni che la riguardano.
Logicamente, ognuna di queste soluzioni è migliorabile (per esempio, nella tabella di simboli la gestione delle collisioni potrebbe essere implementata usando delle "micro-tabelle", con le bibite come chiavi, al posto delle liste)... ma le eventuali migliorie (così come la scelta della strada da percorrere) dipendono dalle tue capacità (che, invero, dal programma che hai scritto non è che siano ben chiare).
Ultima modifica effettuata da Template il 08/02/2016 alle 23:54