Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Premettendo che non pretendo che qualcuno faccia il programma al posto mio, anche perchè non ci capirei nulla, vorrei almeno una base sulla quale costruire tutto il codice, perchè io non so come partire. Avevo pensato di creare una struct e un array di struct di 10 elementi, con le rispettive informazioni. In seguito, sviluppare una funzione che consenta all'utente di inserire un importo, attraverso quindi uno switch, controllare l'importo e in seguito la disponibilità della bibita, e se tutto va bene, prendi la bibita, decrementando il contatore relativo a quella stessa bibita.
In particolare non ho capito l'ultima parte del progetto, cioè quella di calcolare la quantità venduta in un giorno con un algoritmo ricorsivo. Grazie in anticipo a tutti per l'aiuto.
PS: Se a breve riuscirò a combinare qualcosa, posto il codice.
Si vuole simulare la gestione annuale di un distributore automatico di bibite. Si suppone
di avere 10 prodotti identificati da un nome, da un codice identificativo e da un prezzo.
Permettere allÂ’utente di:
• Di inserire dei soldi (10, 20, 50 centesimi, 1 euro) e scegliere un prodotto
o In base al costo verificare se è possibile prendere il prodotto
o Verificare se cÂ’è bisogno di dare del resto
• Data una data e un prodotto calcolare la quantità venduta nel giorno di
riferimento (usare un algoritmo incrementale ricorsivo)
Implementazione lÂ’algoritmo per la simulazione del distributore (e.g, struttura
matriciale) ed effettuare almeno un test per ognuna delle opzioni richieste dallÂ’utente.
Ultima modifica effettuata da WildBlood il 17/02/2015 alle 15:05
Immagino siamo in ambito accademico...
Penso che una volta chiaro il concetto di ricorsività, ammesso e concesso che non necessiti, proprio perché in ambito accademico, di salvare su file o archiviare, quindi hai un array in memoria, le cose da fare siano abbastanza chiare.
Array prodotti, multidimensionale
Array vendite, multidimensionale
Funzione ricorsiva
come sei a c?
Medicina indigesta o lo mangi col pane la mattina?
Ora non posso perché sto andando al lavoro, ma mi piacerebbe partecipare. Che tempi hai per lo svolgimento?
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.
Immagino siamo in ambito accademico...
Penso che una volta chiaro il concetto di ricorsività, ammesso e concesso che non necessiti, proprio perché in ambito accademico, di salvare su file o archiviare, quindi hai un array in memoria, le cose da fare siano abbastanza chiare.
Array prodotti, multidimensionale
Array vendite, multidimensionale
Funzione ricorsiva
come sei a c?
Medicina indigesta o lo mangi col pane la mattina?
In pratica noi non abbaimo mai salvato file etc.. quindi suppongo non si debba salvare niente, visto che ma i lo abbiamo fatto. Questo è il punto, non so simulare la gestione annuale.
ogni volta che "esce" una bibita, inserisci in un array multidimensionale (l'array della struct per capirci è dell'ala stessa cosa alla fine) data e prodotto scelto.
Se non ho capito male devi poter stampare quante bibite sono state vendute nel tale giorno, giusto?
Prevedi che scrivendo "resoconto" si attivi, al posto della procedura di rilascio della bibita, una funzione ricorsiva, la quale scorre l'array ed estrae i dati che ti servono.
Se non ricordo male vuoi sapere quanti prodotti venduti nella giornata, giusto?
Allora la funzione scorre l'array, ogni volta che incontra una vendita nella data odierna, incrementi un contatore e poi lo mandi alla console.
Era tardi ieri sera, spero di non aver tralasciato nulla.
Edit.
Chiede data e tale prodotto, quindi non basta scrivere "resoconto", bisogna che segua una read che chiede data e codice prodotto
Edit edit
Tranquillo, in ambito accademico non si fa mai grande uso di log testuali, ci si ferma a leggere e inserire qualche riga, quindi nessuna complicazione da lettura e strutturazione log
Ps
Il compito vuole una funzione ricorsiva, mi raccomando...
Non cadiamo in tentazione nell'usare cicli...
Ultima modifica effettuata da darioza il 19/02/2015 alle 12:17
ogni volta che "esce" una bibita, inserisci in un array multidimensionale (l'array della struct per capirci è dell'ala stessa cosa alla fine) data e prodotto scelto.
Se non ho capito male devi poter stampare quante bibite sono state vendute nel tale giorno, giusto?
Prevedi che scrivendo "resoconto" si attivi, al posto della procedura di rilascio della bibita, una funzione ricorsiva, la quale scorre l'array ed estrae i dati che ti servono.
Se non ricordo male vuoi sapere quanti prodotti venduti nella giornata, giusto?
Allora la funzione scorre l'array, ogni volta che incontra una vendita nella data odierna, incrementi un contatore e poi lo mandi alla console.
Era tardi ieri sera, spero di non aver tralasciato nulla.
Edit.
Chiede data e tale prodotto, quindi non basta scrivere "resoconto", bisogna che segua una read che chiede data e codice prodotto
Edit edit
Tranquillo, in ambito accademico non si fa mai grande uso di log testuali, ci si ferma a leggere e inserire qualche riga, quindi nessuna complicazione da lettura e strutturazione log
Ps
Il compito vuole una funzione ricorsiva, mi raccomando...
Non cadiamo in tentazione nell'usare cicli...
Come faccio a scorrere l'array con una funzione ricorsiva ?! T.T
Questo è l'intero codice che sono riuscito a creare.. Andrebbe bene ?! E poi, come faccio a creare la funzione ricorsiva che socrra l'array di struct e calcoli quante bibite sono state vendute ?!
allora...
innanzi tutto ti rispolvero la teoria, perchè mi sa che ti sono ostiche le ricorsive (non preoccuparti, dopo tanto tempo anche a me sono rimaste sulle scatole, ma per altri motivi...)
Una funzione ricorsiva è una funzione che richiama sé stessa (ricorsione diretta) o richiama una funzione che a sua volta la richiama (ricorsione indiretta). avendo il processo fine prima o poi è necessario che la catena si interrompa e che quindi si verifichino 2 "proprietà" (speriamo non mi legga nessuno troppo sensibile alla teoria )
1) Debbono esistere dei valori per cui la funzione non attivi la ricorsione
2) Ogni volta che la funzione lavora, i valori di cui al punto 1, devono essere piu vicini
ti posto un esempio che ho trovato in giro, per capirci:
int calcFatt(int numero){
int f;
if (!numero) /*3*/
f=1;
else
f=numero*calcFatt(numero-1); /*4*/
return f;
}
Detto cio, a me sono sempre state sulle balle le ricorsioni.
quello che devi fare te è come nell'esempio, appoggiarti ad una variabile incrementale, e richiamare la funzione su la nuova variabile incrementata, che corrisponde all'indice dell'array_data che hai creato.
in ogni "giro" della ricorsiva, controlli che prodotto è in quell'indice, e se corrisponde a quello richiesto, aggiungi +1 ad una seconda variabile d'appoggio.
Quando arrivi all'ubound dell'array, interrompi la ricorsione e stampi il numero d'appoggio (il secondo che abbiamo creato)
Tutto chiaro?
(Ho mal di testa stasera, spero non aver dimenticato nulla ed essere stato chiaro)