Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Progetto Distributore in C
Forum - C/C++ - Progetto Distributore in C - Pagina 3

Pagine: [ 1 2 3 4 5 6 7 8 9 ] Precedente | Prossimo
Avatar
Joker22 (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/02/2016

Segnala al moderatore
Postato alle 0:07
Martedì, 09/02/2016
:om::om::om:

PM
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 0:24
Martedì, 09/02/2016
Ovviamente non lo so, ma credo che chi ha assegnato l'esercizio al Joker si aspetti una soluzione molto più semplice. E' un po' come quando l'insegnante assegna un esercizio di geometria alle medie... non è che si aspetti che uno lo risolva impiegando la trigonometria o chissà quale altro metodo che non è ancora stato spiegato! (per quanto sia magari possibile farlo)


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM
Avatar
Joker22 (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/02/2016

Segnala al moderatore
Postato alle 0:27
Martedì, 09/02/2016
Forse avrei dovuto specificarlo prima ...
è un progetto per Programmazione 1 :k:

PM
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 0:27
Martedì, 09/02/2016
I consigli di template sono sempre buoni, di fatto quell'uomo è una miniera d'oro di consigli... A cui piace usare l hash dei dati, lol.  A questo proposito ti consiglio di guardare il metodo time della libreria standard.

PM
Avatar
Joker22 (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/02/2016

Segnala al moderatore
Postato alle 3:13
Martedì, 09/02/2016
Ragazzi .. davvero non ci sto capendo niente ... :_doubt::_doubt::_doubt:

mi sa che me lo dovete spiegare passo passo .. col cucchiaino ...


PM
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 8:13
Martedì, 09/02/2016
Testo quotato

Postato originariamente da TheDarkJuster:

I consigli di template sono sempre buoni, di fatto quell'uomo è una miniera d'oro di consigli... A cui piace usare l hash dei dati, lol.  



Sono un fissato... tant'è che sto svolgendo delle ricerche sullo sviluppo di un hashing efficiente (Cormen propone alcuni testi, e sto cercando di reperirli per cominciare da lì la mia indagine), e forse ci scriverò la tesi di laurea :rotfl:
Il fatto è che sono da sempre un maniaco dell'ordine, e l'idea di poter sviluppare delle strutture dati "intrinsecamente ordinate" mi affascina da morire... e poi, spesso funzionano (altrimenti non le proporrei) :rofl:



Testo quotato

Postato originariamente da Joker22:

Ragazzi .. davvero non ci sto capendo niente ... :_doubt::_doubt::_doubt:

mi sa che me lo dovete spiegare passo passo .. col cucchiaino ...




Ok, andiamo lentamente...

Intanto: dici che questo progetto è per "Programmazione 1". Ti riferisci a questo corso: http://marra.di.unimi.it/prog1/ o analoghi?


Se si, allora lascia perdere la mia idea delle tabelle di hash, che probabilmente non ti avranno mai citato (nè ti citeranno mai, nell'ambito di quel corso)...

Un'idea adatta a te potrebbe essere quella dell'array di transazioni, quindi ti spiego quella:

Logicamente, la maniera più elementare di registrare degli eventi è scriverli uno dopo l'altro man mano che avvengono, giusto?
Bene, l'idea che ti voglio proporre è assolutamente analoga: per ogni bibita acquistata alla tua macchinetta, prendi i dati significativi (cosa è stato comprato ed in che giorno) e li inserisci in coda ad un array. In questo modo, avrai una specie di "elenco delle transazioni", e scorrendolo potrai determinare quali e quante transazioni ti interessino.

Supponendo che tu definisca un vettore elenco_vendite[numero_vedite] del tipo

Codice sorgente - presumibilmente C/C++

  1. struct vendita
  2. {
  3.      int bibita;
  4.      int data;
  5. };



O simili, un elementare algoritmo ricorsivo potrebbe essere questo:

Codice sorgente - presumibilmente C/C++

  1. funzione trova_vendite(bibita, data, contatore, elenco_vendite, posizione, numero_vendite)
  2. {
  3.        if(posizione >= numero_vendite)
  4.        {
  5.             /*Hai finito di scandire l'elenco, guarda in CONTATORE quante vendite hai trovato*/
  6.             /*...*/
  7.             return;
  8.        }
  9.  
  10.  
  11.         if(elenco_vendite[posizione].data == data && elenco_vendite[posizione].bibita == bibita)
  12.                contatore++;
  13.         trova_vendite(bibita, data, contatore, elenco_vendite, posizione + 1, numero_vendite);
  14.         return;
  15. }




Così è più chiaro? :)


PS: un esercizio del genere sarebbe più logico se sviluppato iterativamente, perchè di fatto si riduce allo scorrimento di una sequenza di dati :yup: Ma ti è stata richiesta una soluzione ricorsiva, quindi...

Ultima modifica effettuata da Template il 09/02/2016 alle 8:16
PM
Avatar
Joker22 (Normal User)
Rookie


Messaggi: 37
Iscritto: 03/02/2016

Segnala al moderatore
Postato alle 10:04
Martedì, 09/02/2016
Si è un po più chiaro adesso ...
la ricorsività è una rottura di palle , ma il prof è fissato :_doubt:

Comunque grazie , penso che da qui posso concludere da solo ...
Nel caso non riesca , torno a rompervi le palle :k:

PM
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 10:42
Martedì, 09/02/2016
Testo quotato

Postato originariamente da Joker22:
la ricorsività è una rottura di palle , ma il prof è fissato :_doubt:



Non so che CDL tu stia frequentando... ma se è uno di quelli in cui la programmazione è importante, ti assicuro che ad un certo punto inizierai a benedire la ricorsione :rotfl:


EDIT: quasi dimenticavo: chiaramente, il metodo che ti ho spiegato è semplicissimo, ma decisamente inefficiente, perchè avendo un array già di suo ordinato (le inserzioni avvengono man mano che le bibite vengono acquistate, quindi intrinsecamente le transazioni sono in ordine cronologico) potresti tranquillamente avvalerti di un metodo di ricerca più efficiente del semplice scorrimento... volevo fartelo notare in caso ti andasse di ragionarci un po' su :k:

Ultima modifica effettuata da Template il 09/02/2016 alle 11:50
PM
Pagine: [ 1 2 3 4 5 6 7 8 9 ] Precedente | Prossimo