28 Φεβρουαρίου 2025

Θέμα Δ Προγραμματισμού Πανελλαδικές Ιούνιος 2024

 ΘΕΜΑ Δ

Δίνεται το αρχείο "branch.txt", το οποίο περιέχει ονόματα  υποκαταστημάτων μίας εταιρείας. Το αρχείο έχει ενδεικτικά την  παρακάτω δομή:

Micro_Vironas

Mega_Kifisia

.

.

Σε κάθε γραμμή του αρχείου "branch.txt" βρίσκεται το όνομα του υποκαταστήματος.

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

 Δ1. Να διαβάζει το αρχείο "branch.txt" γραμμή προς γραμμή και να καταχωρίζει τα ονόματα των υποκαταστημάτων σε μία λίστα με όνομα ΟΝ. Θεωρήστε ότι στο αρχείο υπάρχουν τουλάχιστον δύο (2) υποκαταστήματα.

Μονάδες  4

 Δ2. Για κάθε υποκατάστημα:

α) Να διαβάζει την ημερήσια είσπραξη για κάθε μία από τις τριάντα (30) ημέρες του μήνα Ιουνίου (μον.3).

β) Να υπολογίζει το σύνολο των εισπράξεων του μήνα Ιουνίου και να το καταχωρίζει σε λίστα με όνομα

S_POSO (μον.4).

Μονάδες  7 

 Δ3.

α) Να υπολογίζει και να εμφανίζει τον μέσο όρο των εισπράξεων όλων των υποκαταστημάτων για τον μήνα Ιούνιο. 

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

Μονάδες  6

 Δ4.

 Να ταξινομεί τη λίστα S_POSO με χρήση του αλγορίθμου ταξινόμησης της ευθείας ανταλλαγής (φυσαλίδα – bubble sort) σε φθίνουσα σειρά, αναδιατάσσοντας συγχρόνως τη λίστα  ΟΝ, έτσι ώστε να διατηρείται η αντιστοιχία ονομάτων  υποκαταστημάτων – εισπράξεων. Σε περίπτωση * ισότητας εισπράξεων να γίνεται ταξινόμηση με αλφαβητική σειρά ως προς τα ονόματα της λίστας ΟΝ.

Μονάδες  8


 

* ΚΏΔΙΚΑΣ ΓΙΑ ΤΗΝ ΠΕΡΙΠΤΩΣΗ ΙΣΟΤΗΤΑΣ

for i in range (n-1):

    for j in range(n-1,i,-1):

        if S_POSO[j]>S_POSO[j-1]:

            S_POSO[j],S_POSO[j-1]=S_POSO[j-1],S_POSO[j]

            ON[j],ON[j-1]=ON[j-1],ON[j]

        elif S_POSO[j]==S_POSO[j-1]:

            if ON[j]<ON[j-1]:

                ON[j],ON[j-1]=ON[j-1],ON[j]

Εκφώνηση 

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

17 Μαρτίου 2024

Γέμισμα (εγγραφή) αρχείου και διάβασμα (ανάγνωση) αρχείου

 Γέμισμα αρχείου με προκαθορισμένο και μη προκαθορισμένο πλήθος γραμμών.

Ανάγνωση και εμφάνιση γραμμών αρχείου με for και με readline()

Αρχείο Python 


 


Εφαρμογή λειτουργίας r+ σε αρχείο

 Πρόγραμμα σε Python που ζητάει και γεμίζει ένα αρχείο με ακέραιους αριθμούς από το 1 - 100 μέχρι να δοθεί ακέραιος εκτός του εύρους 1-100. Οι αριθμοί γράφονται στο αρχείο σε μορφή συμβολοσειράς 3 χαρακτήρων και αλλαγή γραμμής π.χ. αν 5 γράφεται 005, αν 56 γράφεται 056.

Στη συνέχεια ανοίγουμε το αρχείο με τη λειτουργία r+ και διαβάζουμε 4 χαρακτήρες (την συμβολοσειρά 3 χαρακτήρων και την αλλαγή γραμμής).

Αν ο ακέραιος αριθμός που περιέχεται σε αυτούς τους χαρακτήρες είναι μικρότερος του 50 μετακινούμαστε στην αρχή της γραμμής μετακινούμενοι -5 χαρακτήρες πίσω με τη μέθοδο seek. Μετακινούμαστε -5 επειδή η μέθοδος seek υπολογίζει την αλλαγή γραμμής ως δύο χαρακτήρες. Στη συνέχεια γράφουμε στη θέση του αριθμού τρία Χ και αλλαγή γραμμής  --> "ΧΧΧ\n" και μετακινούμαστε στο τρέχον σημείο για να διαβάσουμε την επόμενη γραμμή 4 χαρακτήρων.

Όταν διαβάσει κενούς χαρακτήρες "" σταματάει η επανάληψη.

Ακολουθούν οι οθόνες από την εκτέλεση του προγράμματος (Το αρχείο πριν και μετά την εφαρμογή της r+):

Αρχείο Python
 

Αρχεία Python - Δραστηριότητα 3

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

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

Αρχείο txt ως είσοδο - όνομα αρχείου. Να αντιγραφεί στον ίδιο φάκελο με το αρχείο Python