Εμφάνιση αναρτήσεων με ετικέτα λίστες. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα λίστες. Εμφάνιση όλων των αναρτήσεων

8 Φεβρουαρίου 2022

Δημιουργία και ταξινόμηση τυχαίας λίστας

 

Να γίνει πρόγραμμα που δημιουργεί μια λίστα 10 τυχαίων μοναδικών αριθμών από το το 1 έως το 100 και μετά την ταξινομεί σε αύξουσα σειρά και την εμφανίζει

Προτεινόμενη λύση 

Συνάρτηση που ταξινομεί λογικές τιμές

 Δραστηριότητα 5 - αλγόριθμοι


Να γράψετε μια συνάρτηση σε Python η οποία θα δέχεται μια λίστα με λογικές τιμές True/False και θα διαχωρίζει τις τιμές αυτές, τοποθετώντας τα True πριν από τα False.

Προτεινόμενη λύση 

Συνάρτηση που ελέγχει αν μια λίστα είναι σε αύξουσα σειρά

Δραστηριότητα 3 - αλγόριθμοι


Να γράψετε μια συνάρτηση σε Python, η οποία θα δέχεται μια λίστα, θα ελέγχει αν τα στοιχεία της είναι σε αύξουσα σειρά και θα επιστρέφει αντίστοιχα True ή False. 

Υπόδειξη: Χρησιμοποιήστε μια λογική μεταβλητή.

Προτεινόμενη λύση 

24 Δεκεμβρίου 2021

Κλήση συνάρτησης από συνάρτηση - συμβολοσειρά και λίστα

Να γράψετε μια συνάρτηση σε Python η οποία θα δέχεται μια λέξη σε κεφαλαία και ελληνικά και θα επιστρέφει το πλήθος των φωνηέντων που έχει. Στη συνέχεια, να γράψετε μια δεύτερη συνάρτηση, η οποία θα δέχεται μια λίστα από λέξεις σε κεφαλαία και ελληνικά και θα επιστρέφει τη λέξη με τα περισσότερα φωνήεντα.

 

 

 

 Ενδεικτική απάντηση με κυρίως πρόγραμμα - παράδειγμα εφαρμογής

27 Ιανουαρίου 2021

Συνάρτηση δημιουργίας λίστας της ακολουθίας Fibonacci με Python

 

Οι Αριθμοί Φιμπονάτσι είναι οι αριθμοί της παρακάτω ακέραιας ακολουθίας:

 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 , … 

Εξ ορισμού, οι πρώτοι δύο αριθμοί Φιμπονάτσι είναι το 0 και το 1, και κάθε επόμενος αριθμός είναι το άθροισμα των δύο προηγούμενων.

Σε μαθηματικούς όρους, η ακολουθία Fn των αριθμών Φιμπονάτσι ορίζεται από τον αναδρομικό τύπο: 

F n = F n − 1 + F n − 2  

με F 0 = 0 και F 1 = 1 

Πηγή: https://el.wikipedia.org/wiki/Ακολουθία_Φιμπονάτσι

Στην Python γράφουμε μία συνάρτηση που δημιουργεί μια λίστα με την ακολουθία Fibonacci m αριθμών. Στο κυρίως πρόγραμμα ζητάμε το πλήθος m που πρέπει να είναι μεγαλύτερο του 2.

Στη συνάρτηση που παίρνει ως παράμετρο το πλήθος m των αριθμών της ακολουθίας δημιουργούμε τη λίστα με την ακολουθία. Αρχικά είναι [0,1] και κάθε νέο στοιχείο είναι το άθροισμα των δύο προηγούμενων. Αν n=len(L) τότε L.append(L[n-2]+L[n-1]). Αυτό επαναλαμβάνεται όσο ισχύει n<m ώστε να έχει η ακολουθία ακριβώς m αριθμούς.

 
Η συνάρτηση python και το κυρίως πρόγραμμα

10 Ιουνίου 2020

Αφαίρεση αρνητικών αριθμών από μια λίστα με την χρήση της μεθόδου pop()


Πρόγραμμα με συνάρτηση που αφαιρεί τους αρνητικούς αριθμούς από μία λίστα ακεραίων αριθμών.
Η διάσχιση της λίστας πρέπει να γίνει από το τέλος προς την αρχή της λίστας για να μην παραλείπονται θέσεις και να μην έχουμε το μήνυμα "out of range", δηλαδή να ελέγχουμε μία θέση της λίστας που δεν υπάρχει πλέον.

Πρόγραμμα

[1, -2, -5, 3, 5, 87, 23, 78, -1923, -5, -45, -53, 100]
[1, 3, 5, 87, 23, 78, 100]



1 Ιουνίου 2020

Πρόγραμμα Python που μεταφέρει τις λέξεις από ένα κείμενο σε λίστα


Να γίνει πρόγραμμα σε Python που:
1) Ζητάει από τον χρήστη ένα κείμενο (συμβολοσειρά) που αποτελείται από λέξεις.
2) Στη συνέχεια οι λέξεις μεταφέρονται μία μία σε μία λίστα. Θεωρούμε ότι μία λέξη τελείωσε όταν εντοπιστεί το κενό διάστημα " " ή ένας από τους χαρακτήρες ! , . : ; ? 
3) Να εμφανιστούν μία μία οι λέξεις που μεταφέρθηκαν στη λίστα.

Παρατήρηση: Οι χαρακτήρες ! , . : ; ? και το κενό διάστημα " " δεν μεταφέρονται στη λίστα, ακόμα κι αν υπάρχουν στη σειρά.
Π.χ.

Καλημέρα, που είσαι; Καιρό έχω να σε δω!!

Καλημέρα
που
είσαι
Καιρό
έχω
να
σε
δω

Ενδεικτική λύση


10 Μαΐου 2020

Θέμα πανελλαδικών ΓΕΛ (Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον) προσαρμοσμένο για Python


Στην 27η Βαλκανιάδα Πληροφορικής που θα διεξαχθεί στην Αθήνα τον Σεπτέμβριο του 2020, συμμετέχουν 40 μαθητές. Κάθε μαθητής παίρνει έναν κωδικό από 1 έως και 40, ο οποίος αντιστοιχεί στη σειρά που δήλωσε συμμετοχή. Κάθε μαθητής καλείται να επιλύσει έξι (6) προβλήματα. Για κάθε πρόβλημα αναπτύσσει τη λύση του σε μία γλώσσα προγραμματισμού και την υποβάλλει για βαθμολόγηση. Η λύση βαθμολογείται σε ακέραια κλίμακα από 0 έως 100. Κατά τη διάρκεια του διαγωνισμού κάθε μαθητής και για κάθε πρόβλημα μπορεί να υποβάλλει τη λύση του όσες φορές θέλει.

Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο:

1.Να διαβάζει επαναληπτικά τα ονόματα των μαθητών και να τα καταχωρίζει στη λίστα ΟΝ. Επίσης, να αρχικοποιεί με την τιμή 0 όλα τα στοιχεία της λίστας VATH (λίστα δύο διαστάσεων με 40 υπολίστες 6 στοιχείων), η οποία θα περιέχει τη βαθμολογία κάθε μαθητή για κάθε πρόβλημα.

2. Κάθε φορά που μία λύση προβλήματος υποβάλλεται και βαθμολογείται, το πρόγραμμα να διαβάζει τον κωδικό του μαθητή (από 1 έως και 40), αριθμό του προβλήματος (από 1 έως και 6) και τη βαθμολογία του (από 0 έως και 100).  Η βαθμολογία να καταχωρίζεται στην αντίστοιχη θέση της λίστας VATH μόνο αν είναι μεγαλύτερη από τη βαθμολογία που είναι ήδη καταχωρισμένη. Για τον τερματισμό της εισαγωγής δεδομένων το πρόγραμμα να εμφανίζει το μήνυμα «Υπάρχει νέα λύση προβλήματος; ΝΑΙ / ΟΧΙ». Αν εισαχθεί η τιμή «ΟΧΙ», να τερματίζεται η εισαγωγή δεδομένων.

3. Να υπολογίζει και να καταχωρίζει στην λίστα SV τα αθροίσματα των βαθμολογιών κάθε μαθητή στα έξι προβλήματα. Για τον σκοπό αυτό να καλεί μόνο μια φορά το υποπρόγραμμα με όνομα YSV. Να αναπτύξετε το υποπρόγραμμα YSV το οποίο να δέχεται ως είσοδο την λίστα VATH και να επιστρέφει ως έξοδο συμπληρωμένη την λίστα SV.

4. Να εμφανίζει τα ονόματα των μαθητών ταξινομημένων σύμφωνα με τη συνολική τους βαθμολογία σε φθίνουσα βαθμολογική σειρά. Σε περίπτωση μαθητών με την ίδια βαθμολογία, τα ονόματά τους να εμφανίζονται με αλφαβητική σειρά.
Σημειώσεις
α) Απαιτούνται έλεγχοι εγκυρότητας τιμών.
β) Να θεωρήσετε ότι θα δοθεί τουλάχιστον μια λύση προβλήματος από έναν μαθητή.

26 Ιανουαρίου 2020

Άσκηση παράλληλης ταξινόμησης

Πρόγραμμα σε Python που διαβάζει ονόματα και βαθμολογίες (από 1 έως 100 με έλεγχο τιμών) μέχρι να δοθεί όνομα 'end'. Τα ονόματα καταχωρούνται σε μια λίστα names και οι βαθμοί σε μια λίστα grades και εμφανίζονται οι λίστες. Στη συνέχεια οι δύο λίστες ταξινομούνται παράλληλα σε φθίνουσα σειρά των βαθμών (grades) και εμφανίζονται οι λίστες. Αν οι δύο λίστες δεν είναι κενές εμφανίζεται το όνομα με τον καλύτερο βαθμό και ο βαθμός του. Θεωρήστε ότι όλοι οι βαθμοί είναι διαφορετικοί μεταξύ τους.

Άσκηση δημιοργίας λίστας, ταξινόμησης και διαχωρισμού λίστας σε δύο νέες

Πρόγραμμα σε Python που ζητά πλήθος στοιχείων λίστας L (από 5 έως 20 στοιχεία με έλεγχο τιμών). Στη συνέχεια γεμίζει τη λίστα L ζητώντας αριθμούς από το 1 έως το 1000 με έλεγχο τιμών. Υπολογίζει και εμφανίζει τον μέσο όρο mo των αριθμών της λίστας L. Ταξινομεί τη λίστα L σε φθίνουσα σειρά και την εμφανίζει. Στη συνέχεια διαχωρίζει την λίστα L σε δύο νέες λίστες L1 και L2 αδειάζοντας την L. Στην πρώτη L1 τοποθετούνται οι αριθμοί που είναι μικρότεροι από το 500 και στη δεύτερη L2 οι αριθμοί από 500 και άνω και τις εμφανίζει. 

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].  



15 Απριλίου 2018

Άσκηση πανελλαδικών ΓΕΛ στο μάθημα ΑΕΠΠ προσαρμοσμένη για Python


Σε κάποιο σχολικό αγώνα, για το άθλημα «Άλμα εις μήκος» καταγράφεται για κάθε αθλητή η καλύτερη έγκυρη επίδοσή του. Τιμής ένεκεν, πρώτος αγωνίζεται ο περσινός πρωταθλητής. Η Επιτροπή του αγώνα διαχειρίζεται τα στοιχεία των αθλητών που αγωνίστηκαν. Να γράψετε πρόγραμμα σε python που:



1. Να ζητάει το ρεκόρ αγώνων και να το δέχεται, εφόσον είναι θετικό και μικρότερο των 10 μέτρων.

2. Να ζητάει τον συνολικό αριθμό των αγωνιζομένων και για κάθε αθλητή το όνομα και την επίδοσή του σε μέτρα. Τα στοιχεία αυτά (όνομα και επίδοση) θα καταχωρούνται σε δύο λίστες athlets και jumps με τη σειρά που αγωνίζονται.

3. Να εμφανίζει το όνομα του αθλητή με τη χειρότερη επίδοση.

4. Να εμφανίζει τα ονόματα των αθλητών που κατέρριψαν το ρεκόρ αγώνων. Αν δεν υπάρχουν τέτοιοι αθλητές, να εμφανίζει το πλήθος των αθλητών που πλησίασαν το ρεκόρ αγώνων σε απόσταση όχι μεγαλύτερη των 50 εκατοστών.

5. Να βρίσκει και να εμφανίζει τη θέση που κατέλαβε στην τελική κατάταξη ο περσινός πρωταθλητής.

Σημείωση: Να θεωρήσετε ότι κάθε αθλητής έχει έγκυρη επίδοση και ότι όλες οι επιδόσεις των αθλητών που καταγράφονται είναι διαφορετικές μεταξύ τους.



Ενδεικτική λύση

20 Δεκεμβρίου 2017

Άσκηση python με λίστες πανελλαδικές ΕΠΑ.Λ. 2017 - εκφώνηση - λύση


Σε μια Ολυμπιάδα Πληροφορικής συμμετέχουν πενήντα (50) μαθητές. Κάθε μαθητής που συμμετέχει λαμβάνει μια τελική βαθμολογία από 1 έως και 100 ακέραιες μονάδες.
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:


Δ1. Να διαβάζει το ονοματεπώνυμο κάθε μαθητή και τη βαθμολογία που έλαβε. Τα στοιχεία αυτά καταχωρίζονται στις λίστες NAME και VATHMOS αντίστοιχα. Να γίνει έλεγχος ορθότητας ότι δηλαδή η βαθμολογία που καταχωρίζεται είναι από 1 έως και 100.


Δ2. Να υπολογίζει και να εμφανίζει τον μέσο όρο (ΜΟ) της βαθμολογίας όλων των μαθητών.


Δ3. Να εντοπίζει και να εμφανίζει τα ονοματεπώνυμα και τη βαθμολογία όλων των μαθητών των οποίων η τελική βαθμολογία είναι μεγαλύτερη ή ίση από τον μέσο όρο (ΜΟ).

Δ4. Να εντοπίζει και να εμφανίζει με κατάλληλο μήνυμα την υψηλότερη βαθμολογία και τα ονοματεπώνυμα των μαθητών που έχουν αυτή τη βαθμολογία.