Δευτέρα 28 Νοεμβρίου 2022

ΤΑΞΙΝΟΜΗΣΗ ΛΙΣΤΩΝ

 ΑΣΚΗΣΕΙΣ


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


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


Δραστηριότητα 8. Να γράψετε ένα πρόγραμμα το οποίο να διαβάζει τους βαθμούς και τα επίθετα των μαθητών της τάξης σας, μέχρι να δοθεί σαν επίθετο το ‘0’ . Στη συνέχεια να τα εμφανίζει σε φθίνουσα σειρά ως προς τους βαθμούς, δηλαδή όσοι έχουν καλύτερους βαθμούς να είναι πρώτοι.


Δραστηριότητα 7 Ας υποθέσουμε ότι σας δίνεται μια λίστα στην Python η οποία περιέχει λογικές τιμές True/False εναλλάξ. Επίσης, το πλήθος των True είναι ίσο με το πλήθος των False. Να γράψετε αλγόριθμο σε Python, ο οποίος, δεδομένης της παραπάνω δομής της λίστας, θα τοποθετεί τα True πριν από τα False, εκτελώντας τις λιγότερες δυνατές μετακινήσεις. Δεν επιτρέπεται να κάνετε καμία σύγκριση ούτε να χρησιμοποιήσετε τη δομή if. Θεωρήστε ότι το πρώτο στοιχείο της λίστας έχει την τιμή True.


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


Δραστηριότητα 8. Το πρόβλημα της ολλανδικής σημαίας αναφέρεται στην αναδιάταξη μιας λίστας γραμμάτων, η οποία περιέχει μόνο τους χαρακτήρες R, W, B (Red, White, Blue), έτσι ώστε όλα τα R να βρίσκονται πριν από τα W και όλα τα W να βρίσκονται πριν από B. Να τροποποιήσετε έναν από τους αλγόριθμους ταξινόμησης που παρουσιάστηκαν σε αυτήν την ενότητα, ώστε να επιλύει αυτό το πρόβλημα.

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


ΘΕΜΑ Δ (2022)

Στις εξετάσεις του Κρατικού Πιστοποιητικού Γλωσσομάθειας συμμετέχουν υποψήφιοι από όλη τη χώρα. Η βαθμολογία των υποψηφίων είναι ένας ακέραιος αριθμός από το 1 έως και το 100. Επιτυχών θεωρείται ο υποψήφιος που έχει βαθμολογία πάνω από 60.

Θεωρήστε ότι υπάρχουν περισσότεροι από δύο υποψήφιοι και τουλάχιστον ένας επιτυχών.


Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο:

Δ1. Για κάθε υποψήφιο:

α) Να διαβάζει τον κωδικό του (ως συμβολοσειρά) και να τον καταχωρίζει σε λίστα με όνομα KΟD (μον.3).

β) Να διαβάζει τη βαθμολογία του και να κάνει έλεγχο ορθότητας τιμών. Στη συνέχεια να την καταχωρίζει σε λίστα με όνομα VATH (μον.4).

Η εισαγωγή των στοιχείων θα τερματίζεται, όταν δοθεί ως κωδικός υποψηφίου η λέξη “ΤΕΛΟΣ”.

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

Μονάδες 4

Δ3. α) Να εντοπίζει τη μεγαλύτερη βαθμολογία των υποψηφίων (μον.3).

β) Να εμφανίζει τους κωδικούς των υποψηφίων που έχουν αυτή τη βαθμολογία (μον.3).

ΘΕΜΑ Δ (2021)

Στο πλαίσιο των εκδηλώσεων για τον εορτασμό των 200 χρόνων από την Ελληνική Επανάσταση, πραγματοποιείται διαγωνισμός παραδοσιακών χορών στον οποίο συμμετέχουν 100 ομάδες από διάφορα μέρη της Ελλάδας. Η βαθμολογία των ομάδων κυμαίνεται από 1 έως 200 ακέραιες μονάδες. Στην επόμενη φάση του διαγωνισμού προκρίνονται οι ομάδες που συγκέντρωσαν βαθμολογία μεγαλύτερη του 150.

Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python το οποίο να πραγματοποιεί τα παρακάτω:

Δ1. Να διαβάζει το όνομα κάθε ομάδας χορού και τη βαθμολογία της. Τα στοιχεία αυτά να καταχωρίζονται στις λίστες OMADES και BATHMOI αντίστοιχα.

Δ2. Να δημιουργεί τις λίστες PROK και BATHPROK με τα ονόματα και τις βαθμολογίες των ομάδων αντίστοιχα, που έχουν προκριθεί στην επόμενη φάση. Θεωρήστε ότι θα προκριθεί τουλάχιστον μία ομάδα στην επόμενη φάση.

Δ3. Να ταξινομεί τη λίστα BATHPROK με χρήση του αλγορίθμου ταξινόμησης ευθείας ανταλλαγής (φυσαλίδα - bubblesort) σε φθίνουσα σειρά ως προς τις βαθμολογίες αναδιατάσσοντας συγχρόνως τη λίστα PROK, έτσι ώστε να διατηρείται η αντιστοιχία ομάδων – βαθμολογιών. Σε περίπτωση ισοβαθμίας να γίνεται ταξινόμηση με αλφαβητική σειρά ως προς τα ονόματα της λίστας PROK.

Δ4. Να υπολογίζει και να εμφανίζει το πλήθος των ομάδωνπου ισοβαθμούν στην πρώτη θέση της λίστας BATHPROK.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Σημείωση: Μόνο ένα μέλος αυτού του ιστολογίου μπορεί να αναρτήσει σχόλιο.