Τρίτη 13 Ιουνίου 2017

ΠΑΝΕΛΛΗΝΙΕΣ 2017

ΘΕΜΑ Γ
Σε ένα κεντρικό ΚΤΕΟ προσέρχονται για τεχνικό έλεγχο τριών τύπων οχήματα: Φορτηγά, Επιβατικά και Μοτοσυκλέτες.
Οι τακτικοί πελάτες μπορούν να γίνουν μέλη του ΚΤΕΟ και να έχουν έκπτωση στο κόστος ελέγχου.
Το κόστος ελέγχου υπολογίζεται σύμφωνα με τον παρακάτω πίνακα:
Τύπος οχήματος
Μέλη ΚΤΕΟ
Μη Μέλη ΚΤΕΟ
Φορτηγά
70 ευρώ
80 ευρώ
Επιβατικά
40 ευρώ
50 ευρώ
Μοτοσυκλέτες
25 ευρώ
30 ευρώ

Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο, για μία συγκεκριμένη ημέρα:
Γ1. Να διαβάζει τον τύπο του οχήματος για κάθε όχημα που προσέρχεται καθώς και αν ο πελάτης είναι μέλος του ΚΤΕΟ ή όχι. Η διαδικασία αυτή τερματίζεται όταν δοθεί ως τύπος οχήματος η λέξη «TELOS».
 (Για Φορτηγό θα διαβάζει το «F», για Επιβατικό το «E» και για Μοτοσυκλέτα το «M». Δεν απαιτείται έλεγχος εγκυρότητας εισαγωγής των δεδομένων.)
Μονάδες 6
Γ2. Να υπολογίζει το πλήθος και τις εισπράξεις του ΚΤΕΟ για κάθε τύπο οχήματος και να τα εμφανίζει με κατάλληλα μηνύματα. Για παράδειγμα:
Φορτηγά                    10        750 ευρώ
Επιβατικά                  20        900 ευρώ
Μοτοσυκλέτες           10        295 ευρώ
(Οι παραπάνω τιμές, όπως και ο τρόπος εμφάνισης-στοίχισης δίνονται ενδεικτικά.)
Μονάδες 9
Γ3. Να υπολογίζει και να εμφανίζει το πλήθος όλων των οχημάτων καθώς και το συνολικό ποσό είσπραξης του ΚΤΕΟ.
Μονάδες 6
Γ4. Να υπολογίζει και να εμφανίζει με κατάλληλο μήνυμα τον αριθμό των μελών του ΚΤΕΟ και των μη μελών που προσήλθαν για τεχνικό έλεγχο την συγκεκριμένη ημέρα.
Μονάδες 4

ΕΝΔΕΙΚΤΙΚΗ ΛΥΣΗ

count_f=0 #μετρητής φορτηγών
count_e=0 #μετρητής επιβατικών
count_m=0 #μετρητής μοτοσυκλετών
money_f=0 #εισπράξεις από φορτηγά
money_e=0 #εισπράξεις από επιβατικά
money_m=0 #εισπράξεις από μοτοσυκλέτες
notmember=0 #μη μέλη
member=0 #μέλη
type_v=' ' #αρχικοποίηση για τύπο οχήματος
while type_v!='TELOS': #όσο δεν τυπώνεται TELOS
    type_v = raw_input('Ποιός είναι ο τύπος του οχήματος;Δώσε F για Φορτηγό, Ε για Επιβατικό και Μ για Μοτοσυκλέτα.')
    if type_v!='TELOS': #στην περίπτωση όπου πληκτρολογείται TELOS, παύει ο έλεγχος μέλους
        ismember = raw_input('Είναι ο πελάτης μέλος; N για ΝΑΙ ή O για ΌΧΙ')
        if ismember == 'N':
            member+=1
            if type_v=='F':
                count_f+=1
                money_f+=70
            elif type_v=='E':
                count_e+=1
                money_e+=40
            elif type_v=='M':
                count_m+=1
                money_m+=25
        elif ismember == 'O':
            notmember+=1
            if type_v=='F':
                count_f+=1
                money_f+=80
            elif type_v=='E':
                count_e+=1
                money_e+=50
            elif type_v=='M':
                count_m+=1
                money_m+=30
#------------------ΕΚΤΥΠΩΣΕΙΣ-----------------------
print('Φορτηγά',count_f,money_f,'ευρώ')
print('Επιβατικά',count_e,money_e,'ευρώ')
print('Μοτοσυκλέτες',count_m,money_m,'ευρώ')
print('Συνολικό πλήθος οχημάτων:',count_f+count_e+count_m,'Συνολικό ποσό είσπραξης:',money_f+money_e+money_m)
print('Μέλη που προσήλθαν:',member)
print('Μη μέλη που προσήλθαν:',notmember)

ΘΕΜΑ Δ
Σε μια Ολυμπιάδα Πληροφορικής συμμετέχουν πενήντα (50) μαθητές. Κάθε μαθητής που συμμετέχει λαμβάνει μια τελική βαθμολογία από 1 έως και 100 ακέραιες μονάδες.
Να γράψετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο:
Δ1. Να διαβάζει το ονοματεπώνυμο κάθε μαθητή και τη βαθμολογία που έλαβε. Τα στοιχεία αυτά καταχωρίζονται
 στις λίστες NAME και VATHMOS αντίστοιχα. Να γίνει έλεγχος ορθότητας ότι δηλαδή η βαθμολογία που καταχωρίζεται είναι από 1 έως και 100.
Μονάδες 9
Δ2. Να υπολογίζει και να εμφανίζει τον μέσο όρο (ΜΟ) της βαθμολογίας όλων των μαθητών.
Μονάδες 5
Δ3. Να εντοπίζει και να εμφανίζει τα ονοματεπώνυμα και τη βαθμολογία όλων των μαθητών των οποίων η τελική βαθμολογία είναι μεγαλύτερη ή ίση από τον μέσο όρο (ΜΟ).
Μονάδες 4

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

Μονάδες 7

ΕΝΔΕΙΚΤΙΚΗ ΛΥΣΗ

name=[]
vathmos=[]
sum=0
for i in range (0,50):
name.append(raw_input('Ονοματεπώνυμο'))
vathmos.append(int(input('Βαθμολογία')))
while vathmos[i]>100 or vathmos[i]<1:
vathmos[i]=input('Απαράδεκτη τιμή. Επανάλαβε εισαγωγή βαθμολογίας.')
sum=sum+vathmos[i]
mo=sum/50
print('Ο μέσος όρος είναι:',mo)
max=vathmos[0]
for i in range (0, 50):
if vathmos[i]>=mo:
print('Η βαθμολογία του/της ',name[i],' είναι μεγαλύτερη του μέσου όρου')
if vathmos[i]>=max:
max=vathmos[i]
print('Η μέγιστη βαθμολογία που σημειώθηκε είναι:',max)
for i in range(0, 50):
if vathmos[i]==max:
print('Ο/Η μαθητής/τρια',name[i],'έχει τη μεγαλύτερη βαθμολογία')

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

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