Οι τιμές κάποιων αγαθών ή τίτλων (π.χ. πετρελαίου, χρυσού, μετοχών αλλά και βασικών τροφίμων όπως των αλεύρων, της ζάχαρης κ.λπ.) διαμορφώνονται καθημερινά βάσει της προσφοράς και της ζήτησης, αλλά και με βάση την εκτίμηση για τη μελλοντική τους πορεία. Αποτέλεσμα αυτών των συναλλαγών είναι οι τιμές αυτές να αλλάζουν από μέρα σε μέρα. Κάποιοι εκμεταλλεύονται αυτήν την αυξομείωση των τιμών, αγοράζοντας μία ποσότητα (ή δικαίωμα σε ποσότητα) φθηνά, και έπειτα πουλούν την ίδια ποσότητα ή δικαίωμα ακριβότερα. Το κέρδος εκφράζεται από το λόγο της τιμής πώλησης προς την τιμή αγοράς. Έστω ότι γνωρίζουμε την τιμή που έχει κάποιο αγαθό κάθε μέρα για ένα μεγάλο χρονικό διάστημα. Θέλουμε να υπολογίσουμε το μέγιστο κέρδος που θα μπορούσε κάποιος να αποκομίσει με μία αγορά και στη συνέχεια μία πώληση.
Πρόβλημα:
Να αναπτύξετε ένα πρόγραμμα σε Γλώσσα το οποίο καταχωρεί σε έναν Πίνακα 30 θέσεων, την τιμή ενός αγαθού για κάθε μία από αυτές τις ημέρες, και θα εμφανίζει το μέγιστο δυνατό κέρδος από μία αγορά και στη συνέχεια μία πώληση.
Παράδειγμα 1
5 4 3 10 11 9 8 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
Επεξήγηση παραδείγματος 1: Το μέγιστο κέρδος προκύπτει αν κάποιος αγοράσει την τρίτη μέρα (Χ3 = 3) και πουλήσει την πέμπτη (Χ5 = 11). Το κέρδος είναι Χ5 / Χ3 = 11/3 = 3.6666666… ΕΠΥ, 23ος Π.Δ.Π. (2011) Α’ Φάση
ΛΥΣΗ
ΠΡΟΓΡΑΜΜΑ ΑΣΚ7_ΠΑΡ_Β_ΠΙΝ_ΚΕΡΔΟΣ_ΑΓΟΡΑΣ_ΠΩΛΗΣΗΣ ΣΤΑΘΕΡΕΣ N=30 ! πλήθος ημερών (τιμών) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ:i,j, ΤΙΜΕΣ[N], a, p ΠΡΑΓΜΑΤΙΚΕΣ: kerdos, max ΑΡΧΗ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N ΔΙΑΒΑΣΕ ΤΙΜΕΣ[i] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ max <-- 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N-1 ! ημέρες αγοράς ΓΙΑ j ΑΠΟ i+1 ΜΕΧΡΙ N ! ημέρες πώλησης kerdos <-- ΤΙΜΕΣ[j]/ΤΙΜΕΣ[i] ΑΝ kerdos > max ΤΟΤΕ max <-- kerdos a <-- i p <-- j ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'μέρα αγοράς: ' , a ΓΡΑΨΕ 'μέρα πώλησης: ' , p ΓΡΑΨΕ 'μέγιστο κέρδος ', max ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Πρόσφατα σχόλια