12 Ιουνίου 2019
17 Μαρτίου 2019
Αναδρομικές συναρτήσεις
Αναδρομική λέγεται μια συνάρτηση που για να επιστρέψει το αποτέλεσμα που επιθυμούμε καλεί τον εαυτό της. Για παράδειγμα το παραγοντικό ενός ακέραιου θετικού αριθμού είναι ν!=1*2*.....*(ν-1)*ν
π.χ. 5!=1*2*3*4*5 και μπορεί να γραφτεί ν!=ν*(ν-1)! , 5!=4!*5
Παραδείγματα αναδρομικών συναρτήσεων στην Python
#Αναδρομικές συναρτήσεις
def factorial(n):
p=1
if n>=2:
p=n*factorial(n-1)
return p
def power(x,y):
p=1
if y>=1:
p=x*power(x,y-1)
return p
Παραδείγματα σε αρχείο python
π.χ. 5!=1*2*3*4*5 και μπορεί να γραφτεί ν!=ν*(ν-1)! , 5!=4!*5
Παραδείγματα αναδρομικών συναρτήσεων στην Python
#Αναδρομικές συναρτήσεις
def factorial(n):
p=1
if n>=2:
p=n*factorial(n-1)
return p
def power(x,y):
p=1
if y>=1:
p=x*power(x,y-1)
return p
Παραδείγματα σε αρχείο python
9 Φεβρουαρίου 2019
Συνδυαστική άσκηση επιλογής, συνάρτησης, συμβολοσειρών, λιστών και αλγορίθμων
Ένα
υποκατάστημα σούπερ μάρκετ έχει δημιουργήσει δύο λίστες για τα προϊόντα που
πουλάει. Στη πρώτη λίστα, με όνομα bcodes, είναι
οι γραμμωτοί κωδικοί των προϊόντων (bar codes) σε μορφή συμβολοσειράς και στη
δεύτερη, με όνομα sales, είναι οι αντίστοιχες συνολικές
πωλήσεις των προϊόντων σε ευρώ (€) για το έτος 2018.
Π.χ.
bcodes [‘5201171000126’,’6901100341234’,…….,’8300112291033’],
sales [1253,3872,…………..,7812]
Οι δύο λίστες έχουν ακριβώς τις ίδιες
θέσεις.
Οι αντίστοιχες θέσεις της κάθε λίστας
αναφέρονται στο ίδιο προϊόν.
Ο διευθυντής του
υποκαταστήματος ζήτησε από τον προγραμματιστή να δημιουργήσει μια συνάρτηση σε python, με παραμέτρους τις δύο λίστες (bcodes,sales), που να αναζητά στην πρώτη λίστα τα
ελληνικά προϊόντα, γνωρίζοντας ότι οι ελληνικοί γραμμωτοί κωδικοί ξεκινούν από
‘520’, και να βάζει τους ελληνικούς
κωδικούς σε μια λίστα grcodes
και τις αντίστοιχες
πωλήσεις σε μια λίστα grsales.
Στη συνέχεια θα
ταξινομεί τις δύο λίστες grcodes
και grsales σε φθίνουσα σειρά (από τις μεγαλύτερες
προς τις μικρότερες) σύμφωνα με τις πωλήσεις και θα τις επιστρέφει (return) σε μορφή λίστας με δύο υπολίστες [grcodes,grsales].
20 Ιουνίου 2018
Θέματα και Ενδεικτικές Λύσεις - Απαντήσεις στο μάθημα "Προγραμματισμός Υπολογιστών" Πανελλαδικών ΕΠΑΛ 2018
Θέματα και ενδεικτικές λύσεις - απαντήσεις "Προγραμματισμού Υπολογιστών" Πανελλαδικών ΕΠΑΛ - Τομέα Πληροφορικής - 20 Ιουνίου 2018
Θέματα
Ενδεικτικές λύσεις
Θέματα
Ενδεικτικές λύσεις
22 Απριλίου 2018
Άσκηση πανελλαδικών ΓΕΛ στο μάθημα ΑΕΠΠ προσαρμοσμένη για Python
Δημόσιος
οργανισμός διαθέτει ένα συγκεκριμένο
ποσό για την επιδότηση επενδυτικών
έργων. Η επιδότηση γίνεται κατόπιν
αξιολόγησης και αφορά δύο συγκεκριμένες
κατηγορίες έργων με βάση τον προϋπολογισμό
τους. Οι κατηγορίες και τα αντίστοιχα
ποσοστά επιδότησης επί του προϋπολογισμού
φαίνονται στον παρακάτω πίνακα.
Κατηγορία
έργου
|
Προϋπολογισμός
έργου σε ευρώ
|
Ποσοστό
Επιδότησης
|
Μικρή
|
200.000 – 299.999
|
60%
|
Μεγάλη
|
300.000 – 399.999
|
70%
|
Η εκταμίευση
των επιδοτήσεων των αξιολογηθέντων
έργων γίνεται με βάση τη χρονική σειρά
υποβολής τους. Μετά από κάθε εκταμίευση
μειώνεται το ποσό που διαθέτει ο
οργανισμός. Να αναπτύξετε πρόγραμμα σε Python το οποίο:
1. Να διαβάζει
το ποσό που διαθέτει ο οργανισμός για
το πρόγραμμα επενδύσεων συνολικά,
ελέγχοντας ότι το ποσό είναι μεγαλύτερο
από 5.000.000 ευρώ.
2.
Να διαβάζει το όνομα κάθε έργου. Η σειρά
ανάγνωσης είναι η σειρά υποβολής των
έργων. Η επαναληπτική διαδικασία να
τερματίζεται, όταν αντί για όνομα έργου
δοθεί η λέξη «ΤΕΛΟΣ», ή όταν το διαθέσιμο
ποσό έχει μειωθεί τόσο, ώστε να μην είναι
δυνατή η επιδότηση ούτε ενός έργου
μικρής κατηγορίας. Για κάθε έργο, αφού
διαβάσει το όνομά του, να διαβάζει και
τον προϋπολογισμό του (δεν απαιτείται
έλεγχος εγκυρότητας του προϋπολογισμού).
3. Για κάθε
έργο να ελέγχει αν το διαθέσιμο ποσό
καλύπτει την επιδότηση, και μόνον τότε
να γίνεται η εκταμίευση του ποσού. Στη
συνέχεια, να εμφανίζει το όνομα του
έργου και το ποσό της επιδότησης που
δόθηκε.
4. Να εμφανίζει
το πλήθος των έργων που επιδοτήθηκαν
από κάθε κατηγορία καθώς και τη συνολική
επιδότηση που δόθηκε σε κάθε κατηγορία.
5. Μετά το
τέλος της επαναληπτικής διαδικασίας
να εμφανίζει το ποσό που δεν έχει
διατεθεί, μόνο αν είναι μεγαλύτερο του
μηδενός.
Ενδεικτική λύση
Ενδεικτική λύση
15 Απριλίου 2018
Άσκηση πανελλαδικών ΓΕΛ στο μάθημα ΑΕΠΠ προσαρμοσμένη για Python
Σε
κάποιο σχολικό αγώνα, για το άθλημα
«Άλμα εις μήκος» καταγράφεται για κάθε
αθλητή η καλύτερη έγκυρη επίδοσή του.
Τιμής ένεκεν, πρώτος αγωνίζεται ο
περσινός πρωταθλητής. Η Επιτροπή του
αγώνα διαχειρίζεται τα στοιχεία των
αθλητών που αγωνίστηκαν. Να γράψετε
πρόγραμμα σε python που:
1.
Να ζητάει το ρεκόρ αγώνων και να το
δέχεται, εφόσον είναι θετικό και μικρότερο
των 10 μέτρων.
2.
Να ζητάει τον συνολικό αριθμό των
αγωνιζομένων και για κάθε αθλητή το
όνομα και την επίδοσή του σε
μέτρα. Τα στοιχεία αυτά (όνομα και
επίδοση) θα καταχωρούνται σε δύο λίστες
athlets και jumps με τη σειρά που
αγωνίζονται.
3.
Να εμφανίζει το όνομα του αθλητή με τη
χειρότερη επίδοση.
4.
Να εμφανίζει τα ονόματα των αθλητών
που κατέρριψαν το ρεκόρ αγώνων. Αν δεν
υπάρχουν τέτοιοι αθλητές, να εμφανίζει
το πλήθος των αθλητών που πλησίασαν το
ρεκόρ αγώνων σε απόσταση όχι μεγαλύτερη
των 50 εκατοστών.
5.
Να βρίσκει και να εμφανίζει τη θέση που
κατέλαβε στην τελική κατάταξη ο περσινός
πρωταθλητής.
Σημείωση:
Να θεωρήσετε ότι κάθε αθλητής έχει
έγκυρη επίδοση και ότι όλες οι επιδόσεις
των αθλητών που καταγράφονται είναι
διαφορετικές μεταξύ τους.
Ενδεικτική λύση
Ενδεικτική λύση
20 Μαρτίου 2018
Παράδειγμα δημιουργίας κλάσης Καλαθοσφαιριστή με ιδιότητες όνομα, ύψος, πόντους και φάουλ και μεθόδων σημείωσης πόντων και φάουλ
Παράδειγμα δημιουργίας κλάσης Καλαθοσφαιριστή με ιδιότητες όνομα, ύψος, πόντους και φάουλ και μεθόδων σημείωσης πόντων (scores) και φάουλ (makesfoul).
Οι αρχικές τιμές για τους πόντους και τα φάουλ ενός παίκτη (στιγμιότυπο κλάσης Καλαθοσφαιριστή) είναι 0.
Ζητάμε τα ύψη των παικτών h1 και h2
Δημιουργούμε δύο παίκτες (στιγμιότυπα) p1 και p2 με ονόματα Player1 και Player2 και ύψη h1 και h2.
Ακολουθούν οι παρακάτω ενέργειες:
Ο p1 κάνει φάουλ
Ο p2 βάζει 3 πόντους
Ο p1 κάνει φάουλ
Ο p2 βάζει 2 πόντους
Ο p2 κάνει φάουλ
Εμφανίζονται οι πόντοι και τα φάουλ των 2 παικτών
Το παράδειγμα
Οι αρχικές τιμές για τους πόντους και τα φάουλ ενός παίκτη (στιγμιότυπο κλάσης Καλαθοσφαιριστή) είναι 0.
Ζητάμε τα ύψη των παικτών h1 και h2
Δημιουργούμε δύο παίκτες (στιγμιότυπα) p1 και p2 με ονόματα Player1 και Player2 και ύψη h1 και h2.
Ακολουθούν οι παρακάτω ενέργειες:
Ο p1 κάνει φάουλ
Ο p2 βάζει 3 πόντους
Ο p1 κάνει φάουλ
Ο p2 βάζει 2 πόντους
Ο p2 κάνει φάουλ
Εμφανίζονται οι πόντοι και τα φάουλ των 2 παικτών
Το παράδειγμα
Εγγραφή σε:
Αναρτήσεις
(
Atom
)


