Μάθημα : ΠΛΗΡΟΦΟΡΙΚΗ Γ' ΛΥΚΕΙΟΥ
Κωδικός : EL1148132
-
Θεματικές Ενότητες
ΠΑΝΕΛΛΗΝΙΕΣ 2025
Πρόταση 2 Διαγωνισμάτων με τις λύσεις τους:
ΕΠΑΝΑΛΗΠΤΙΚΕΣ 2022 - ΘΕΜΑ Γ -ΟΥΡΑ ΣΕ ΓΛΩΣΣΑ
Προβλέψεις:
ΘΕΜΑ Α και Β
Κληρονομικότητα κλάσεων και πολυμορφισμός
Πλεονεκτήματα και μειονεκτήματα των λιστών έναντι των πινάκων
Εμβέλεια μεταβλητών σταθερών (Απεριόριστη -Περιορισμένη -Μερικώς περιορισμένη )
Σενάρια έλεγχου και ασκησούλα με μαύρο κουτί
Μεταγλωττιστής – Διερμηνευτής
Στοίβα χρόνου εκτέλεσης (κεφ 10 σελ 182)
Μετατροπή συνάρτηση σε διαδικασία και αντίστροφα
Μετατροπές σε δομές επανάληψης
Ταξινόμηση με επιλογή και με εισαγωγή
Τετραγωνικός πίνακας
Περισσότερες συνεχόμενες φορές καταχώρησης
ΘΕΜΑ Γ
Κλασσικό – επαναλήψεις που δεν ξέρω τον αριθμό τους με τιμή φρουρό ή μας ρωτά αν θα συνεχίσει ή με μενού επιλογής
Πρωτότυπο – Στοίβα ή Ουρά (δες επαναληπτικές 2022 ή ασκήσεις από Σ.Ε.Υ σελ 17, 33-35)
ΘΕΜΑ Δ
Κλασσικό με μονοδιάστατο και δισδιάστατο πίνακα (δες παραπάνω διαγωνίσματα)
ΕΙΔΙΚΑ ΘΕΜΑΤΑ:
ΚΡΕΜΑΛΑ
Να γίνει πρόγραμμα που:
Α) να διαβάζει την λέξη που πρέπει να βρει ο αντίπαλος (8 γραμμάτων) και να την αποθηκεύει σε ένα πίνακα Α[8].
Β) να γεμίζει ένα πίνακα Β[8] με κάτω παύλες ( _ )
Γ) στη συνέχεια επαναληπτικά και με την ακόλουθη σειρά
να τυπώνει τον πίνακα Β,
να ζητά από τον αντίπαλο ένα γράμμα,
να το ψάχνει στον πίνακα Α
και να το βάζει στον πίνακα Β αν υπάρχει μία ή περισσότερες φορές (στις αντίστοιχες θέσεις)
Η επανάληψη θα σταματά όταν βρεθούν όλα τα γράμματα της λέξης(8) ή δοθούν 3 λάθος γράμματα
Δ) να τυπώνει τη λέξη ΚΕΡΔΙΣΕΣ ή ΕΧΑΣΕΣ
EUROVISION
Σε έναν υποθετικό ευρωπαϊκό διαγωνισμό έντεχνου τραγουδιού συμμετέχουν 24 χώρες. Κάθε χώρα ψηφίζει 7 άλλες χώρες δίνοντας 7 διαφορετικές (αλλά συγκεκριμένες) βαθμολογίες οι οποίες είναι αποθηκευμένες σε αύξουσα σειρά στον πίνακα Πόντοι[7].
Πόντοι
1 |
2 |
4 |
7 |
11 |
16 |
22 |
1 2 3 4 5 6 7
Κάθε μια χώρα με τη σειρά δίνει τη βαθμολογία της σε άλλες 7 χώρες. Διαδοχικά δίνει το όνομα της χώρας που θα πάρει τον ένα βαθμό, στη συνέχεια δίνει το όνομα της χώρας που δίνει τους 2 βαθμούς κλπ μέχρι να δώσει και τους 22 βαθμούς.
Για λόγους αρχειοθέτησης αποθηκεύουμε σε πίνακα Β[24,24] τη βαθμολογία που έδωσε κάθε χώρα στις 7, της προτίμησής της και στις υπόλοιπες τοποθετούμε το 0. Το στοιχείο Β[i,j], περιέχει τη βαθμολογία που δίνει η χώρα που βρίσκεται στη γραμμή i στη χώρα που βρίσκεται στη στήλη j.
α) Να γραφεί συνάρτηση η οποία θα δέχεται σαν παράμετρο ένα πίνακα τύπου χαρακτήρα 24 θέσεων και μια λέξη. Η συνάρτηση θα επιστρέφει τη θέση του πίνακα στην οποία υπάρχει η λέξη ή 0 αν η λέξη δεν υπάρχει σε κάποια από τις θέσεις του πίνακα.
β) Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ το οποίο αποθηκεύει στον πίνακα Ο[24] τα ονόματα των χωρών που συμμετέχουν στο διαγωνισμό και αποθηκεύει στον πίνακα Πόντοι[7] τους συγκεκριμένους πόντους σε κάθε θέση όπως φαίνεται στο παράδειγμα
διαβάζει για κάθε χώρα τα ονόματα 7 διαφορετικών χωρών στις οποίες δίνει βαθμολογία και θα αποθηκεύει στον πίνακα Β[24,24] την αντίστοιχη βαθμολογία κάνοντας χρήση του πίνακα Πόντοι[7] και με τη βοήθεια της συνάρτησης . Θα πραγματοποιείται έλεγχος εισόδου που θα εξασφαλίζει ότι η κάθε χώρα δεν βαθμολογεί τον εαυτό της και ότι κάθε όνομα χώρας στην οποία δίνει βαθμολογία είναι καταχωρημένη στον πίνακα Ο[24].
γ) Στη συνέχεια το πρόγραμμα θα υπολογίζει τη συνολική βαθμολογία κάθε χώρας και θα εκτυπώνει μια λίστα με τα ονόματα των χωρών που συμμετείχαν στο διαγωνισμό και την αντίστοιχη βαθμολογία. Η λίστα θα είναι ταξινομημένη κατά φθίνουσα σειρά βαθμολογίας. Σε περίπτωση ισοβαθμίας οι χώρες θα εμφανίζονται σε αλφαβητική σειρά.
ΚΕΙΜΕΝΟΓΡΑΦΟΣ
Ένας επεξεργαστής κειμένου (κειμενογράφος) ενσωματώνει τη λειτουργία της αναζήτησης μιας συνεχόμενης ακολουθίας χαρακτήρων σε ένα κείμενο. Αυτή η ακολουθία πρέπει να βρεθεί μέσα στο κείμενο τόσο ως ξεχωριστή λέξη όσο και ως τμήμα κάποιας άλλης λέξης (π.χ να βρεθεί σε ένα κείμενο η ακολουθία χαρακτήρων “για” σαν αυτούσια λέξη ή και ως τμήμα της λέξης “γιατρός”).
Θεωρούμε ότι μπορούμε να αποθηκεύσουμε σε έναν μονοδιάστατο πίνακα κάθε χαρακτήρα ή σύμβολο του κειμένου και σε έναν άλλο μονοδιάστατο πίνακα κάθε ακολουθία χαρακτήρων που επιθυμούμε να αναζητήσουμε στο κείμενο.
Να γραφεί αλγόριθμος που θα διαβάζει το κείμενο και την ακολουθία χαρακτήρων και θα εμφανίζει αν βρέθηκε η ακολουθία χαρακτήρων στο κείμενο, πόσες φορές βρέθηκε και σε ποια θέση του κειμένου βρέθηκε κάθε φορά.
ΕΠΙΚΡΑΤΟΥΣΑ ΤΙΜΗ
Να γραφεί πρόγραμμα που διαβάζει έναν πίνακα ακεραίων μονοδιάστατο 100 θέσεων και υπολογίζει την επικρατούσα τιμή, δηλαδή την τιμή που εμφανίζεται τις περισσότερες φορές. Το πρόγραμμα κάνει χρήση των ακόλουθων υποπρογραμμάτων
- ΤΑΞΙΝΟΜΗΣΕ (για την ταξινόμηση ενός πίνακα)
- ΕΠΙΚΡΑΤΟΥΣΑ (για την εύρεση της επικρατούσας τιμής)
ΥΠΟΠΡΟΓΡΑΜΜΑ -ΤΑΞΙΝΟΜΗΣΗ ΜΙΑΣ ΓΡΑΜΜΗΣ ΔΙΣΔΙΑΣΤΑΤΟΥ
Να γραφεί υποπρόγραμμα που να δέχεται ένα πίνακα πραγματικών αριθμών Α[100,10] και ένα ακέραιο αριθμό Χ και να ταξινομεί με αύξουσα σειρά τη Χ γραμμή του πίνακα.
Να γραφεί πρόγραμμα που να διαβάζει τους βαθμούς 100 μαθητών σε 10 μαθήματα και να ταξινομεί κάθε γραμμή του πίνακα χρησιμοποιώντας το παραπάνω υποπρόγραμμα
Πίνακας συχνοτήτων εμφάνισης
Γυρίζουμε την ρουλέτα (αριθμοί 1-36) 1000 φορές και αποθηκεύουμε τα αποτελέσματα σε πίνακα Ρ[1000]. Πόσες φορές εμφανίστηκε ο κάθε αριθμός;
- Έξυπνη ταξινόμηση
i ← 2
ΑΝΤΙΜΕΤΑΘΕΣΗ ← αληθής
ΌΣΟ i <= 100 ΚΑΙ ΑΝΤΙΜΕΤΑΘΕΣΗ = αληθής ΕΠΑΝΑΛΑΒΕ
ΑΝΤΙΜΕΤΑΘΕΣΗ ← ψευδής
ΓΙΑ j ΑΠΟ 100 ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1
ΑΝ Α[j-1] > A[j] TOTE
Temp ← A[j-1]
Α[j-1] ← A[j]
A[j] ← Temp
ΑΝΤΙΜΕΤΑΘΕΣΗ ← αληθής
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
i ← i + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
- ΟΥΡΑ - ΣΕ ΚΑΘΕ ΕΞΑΓΩΓΗ ΠΗΓΑΊΝΟΥΝ ΟΛΟΙ ΜΙΑ ΘΕΣΗ ΜΠΡΟΣΤΑ (front είναι πάντα 1)
ΑΝ (front = 0 KAI rear = 0) ΤΟΤΕ
ΓΡΑΨΕ 'Άδεια ουρά'
ΑΛΛΙΩΣ ΑΝ (front = rear ) ΤΟΤΕ ! front και rear είναι ίσα με 1
ΓΡΑΨΕ 'Εξάγεται το στοιχείο:', A[front]
front ← 0
rear ← 0
ΑΛΛΙΩΣ
ΓΡΑΨΕ 'Εξάγεται το στοιχείο:', A[front]
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ rear
A[i-1] ←A[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
rear←rear-1
ΤΕΛΟΣ_ΑΝ
- ΟΥΡΑ - ΣΤΗΝ ΕΙΣΑΓΩΓΗ ΟΤΑΝ ΕΙΝΑΙ ΓΕΜΑΤΗ Η ΟΥΡΑ (rear=10) ΚΑΙ ΥΠΑΡΧΕΙ ΧΩΡΟΣ ΣΤΗΝ ΑΡΧΗ ΤΗΣ (front >1) ΠΗΓΑΙΝΟΥΝ ΟΛΟΙ ΜΠΡΟΣΤΑ
ΓΡΑΨΕ ΄Δώσε στοιχείο για εισαγωγή στην ουρά Α’
ΔΙΑΒΑΣΕ στοιχείο
ΑΝ rear=10 ΚΑΙ front = 1 TOTE ! γεμάτη ουρά δεν υπάρχει χώρος
ΓΡΑΨΕ ‘Γεμάτη ουρά’
ΑΛΛΙΩΣ_ΑΝ rear = 10 ΚΑΙ front >1 TOTE ! το στοιχείο μπορεί να εισαχθεί
κ← 0 ! υπάρχει χώρος αλλά όχι πίσω
Για ι από front μέχρι rear ! μεταφορά στοιχείων εμπρός (συντήρηση ουράς)
κ← κ + 1
A[κ]←A[ι]
Τέλος_επανάληψης
front← 1
rear←κ
rear←rear+1
A[rear] ←στοιχείο
ΑΛΛΙΩΣ_ΑΝ (front=0 ΚΑΙ rear=0) ΤΟΤΕ
front← 1
rear←1
A[rear] ←στοιχείο
ΑΛΛΙΩΣ
rear←rear+1
A[rear] ←στοιχείο
ΤΕΛΟΣ_ΑΝ
- ΔΙΣΔΙΑΣΤΑΤΟΣ ΠΙΝΑΚΑΣ ΧΑΡΤΗΣ
Εστω πίνακας Α[6,6]. Ξεκινώντας ένα όχημα από το Α[1,1] να διαβάζει τη γραμμή και τη στήλη που θελει να κινηθεί το όχημα και να τυπώνει το περιεχόμενο του πίνακα-χάρτη μέχρι να φτάσει στη νέαγραμμή,νέαστήλη προχωρώντας πρώτα οριζόντια (αριστερά δεξιά) και μετά κάθετα (βορρά νότο)