Esercizio in C per esonero università

di il
6 risposte

Esercizio in C per esonero università

Esonero a.a. 2018-2019
Programmazione I con Laboratorio
7 Novembre 2018
Preambolo. Il vecchio zio d’America, Rosco, `e passato a miglior vita dopo
essere diventato ricchissimo in vita comprando e vendendo azioni a Wall Street.
Rosco `e stato per`o anche famoso per essere avarissimo e non aver mai aiutato
chi aveva bisogno. Per questo motivo, per poter scontare i suoi peccati fino
in fondo, `e costretto ad apparire in sogno ed aiutare i pi`u poveri predicendo il
futuro delle azioni della Toppe e Rammendi spa, in modo che anche altri possano
arricchirsi come ha fatto lui in vita.
Testo. Rosco ogni volta pu`o predire il futuro di n giorni del valore delle azioni
in questione. Per esempio, la Figura 1 riporta un esempio di quello che Rosco
pu`o rivelare al prossimo fortunato: al giorno 0 (il giorno dell’apparizione), le
azioni della Toppe e Rammendi spa valgono 10, al giorno 1 valgono 14, e cos`i
via. Per aiutare Rosco hai bisogno di creare un programma in linguaggio C che
trovi il giorno migliore in cui comprare ed il giorno migliore in cui vendere le
azioni massimizzando il guadagno, dato l’intervallo di n giorni.
Notare che il giorno 0 non si pu`o comprare le azioni: Rosco appare di notte
quando il mercato `e gi`a chiuso, quindi i valori in Figura 1 corrispondono ai valori
di chiusura per ogni giorno. Se si compra all’inizio del giorno 1 si guadagna 4 a
fine giornata (le azioni passano da 10 a 14).
Scrivere una funzione main che:
• Legga da tastiera il numero di giorni n della predizione, ed il numero totale
k di azioni comprate.
• Crei un array di lunghezza n e legga da tastiera il valore delle azioni per
ogni giorno (per esempio, i 12 valori dell’asse x in Figura 1).
• Crei un array di n - 1 posizioni e lo riempi considerando la differenza tra
il valore del giorno precedente e successivo. Per l’esempio in Figura 1 il
nuovo array avr`a valori {+4, -6, +3, +1, +3, -2, +3, -4, +1, -9, +6}.
• Trovi l’intervallo migliore su questo nuovo array, cio`e il giorno in cui com-
prare e il giorno in cui vendere per poter massimizzare il guadagno dato
il valore di una azione. Per l’esempio in Figura 1 l’intervallo migliore con-
siste nel comprare il giorno 3 e vendere il giorno 7 (2-6 suol nuovo array
di n - 1 posizioni). Questi giorni devono essere stampati sullo schermo modo da suggerire a Rosco la soluzione.
(Sugg.: l’intervallo migliore `e quello a somma massima sul secondo array)
• Nel caso particolare in cui non esista un intervallo possibile in cui si
guadagni, consigli di non comprare affatto le azioni.
• Infine stampi l’ammontare totale riscosso dalla vendita ed il guadagno (in
base a k). Per l’esempio in Figura 1, comprando a 8 dollari e rivendendo
a 16, se k = 500, l’ammontare riscosso `e 8000 ed il guadagno `e 4000.
Se esistono pi`u intervalli di costo (massimo) uguale, `e sufficiente ritornare
come soluzione uno solo di essi.
Vedere i prezzi delle azioni sul grafico in Figura 1 come i prezzi di chiusura
del giorno corrispondente. Se si compra ad un dato giorno, si compra al prezzo
di chiusura del giorno prima (in pratica `e come se si comprasse appena il mer-
cato apre, ed il prezzo `e sempre quello del giorno prima) Se si vende ad un dato
giorno si vende al prezzo di chiusura di quel giorno. In realt`a `e semplicemente
l’intervallo con la differenza massima tra giorno finale e giorno iniziale, ricor-
dandosi per`o di incrementare di 1 l’indice del giorno in cui si compra. Rispetto
alla Figura 1, se si compra e vende il giorno 3 si guadagna +3: si compra ad 8
e si vende a 11.

6 Risposte

  • Re: Esercizio in C per esonero università

    Devi iniziare a mostrare qualcosa. Difficilmente qualcuno te lo farò da zero.
  • Re: Esercizio in C per esonero università

    Non saprei proprio come impostare l'esercizio.
  • Re: Esercizio in C per esonero università

    Mi sono fermato ad "Esonero":

    Una volta c'era l'esonero da "ginnastica", dall'ora di "religione"

    Che acciderbolina e' ora un "esonero" ?

    Prima cosa, bisogna ridurre la lunghezza del testo alle cose fondamentali.

    Al posto della vita segreta di Rosco (di dubbio interesse ) c'e' il molto piu' carino 'La vita segreta di Walter Mitty"





    Secondo: C'E' SCRITTO che cosa c'e' da fare, basta farlo
  • Re: Esercizio in C per esonero università

    Questo è quanto richiesto :

    Scrivere una funzione main che:
    • Legga da tastiera il numero di giorni n della predizione, ed il numero totale
    k di azioni comprate.
    • Crei un array di lunghezza n e legga da tastiera il valore delle azioni per
    ogni giorno (per esempio, i 12 valori dell’asse x in Figura 1).
    • Crei un array di n - 1 posizioni e lo riempi considerando la differenza tra
    il valore del giorno precedente e successivo. Per l’esempio in Figura 1 il
    nuovo array avr`a valori {+4, -6, +3, +1, +3, -2, +3, -4, +1, -9, +6}.
    • Trovi l’intervallo migliore su questo nuovo array, cio`e il giorno in cui com-
    prare e il giorno in cui vendere per poter massimizzare il guadagno dato
    il valore di una azione. Per l’esempio in Figura 1 l’intervallo migliore con-
    siste nel comprare il giorno 3 e vendere il giorno 7 (2-6 suol nuovo array
    di n - 1 posizioni). Questi giorni devono essere stampati sullo schermo modo da suggerire a Rosco la soluzione.
    (Sugg.: l’intervallo migliore `e quello a somma massima sul secondo array)
    • Nel caso particolare in cui non esista un intervallo possibile in cui si
    guadagni, consigli di non comprare affatto le azioni.
    • Infine stampi l’ammontare totale riscosso dalla vendita ed il guadagno (in
    base a k). Per l’esempio in Figura 1, comprando a 8 dollari e rivendendo
    a 16, se k = 500, l’ammontare riscosso `e 8000 ed il guadagno `e 4000.
  • Re: Esercizio in C per esonero università

    Mi potresti aiutare, grazieee:=) =)

    Dovrei consegnarlo entro domani ma non so proprio come scriverlo
  • Re: Esercizio in C per esonero università

    No mi spiace ma mi sa che non lo consegnerai. Questo forum non è un "pronto soccorso studenti".
Devi accedere o registrarti per scrivere nel forum
6 risposte