Μάθημα : Προγραμματισμός Η/Υ

Κωδικός : T522234

T522234 - ΔΗΜΗΤΡΙΟΣ ΜΠΑΜΠΑΣ

Ενότητες μαθήματος

Η ΑΙ λύνει τα θέματα

ΙΟΥΝΙΟΥ 2017


Σε μια εξέταση του μαθήματος της Αγγλικής Γλώσσας εξετάζονται πενήντα (50) μαθητές προφορικά και γραπτά. Οι μαθητές βαθμολογούνται από το 0.0 έως και το 20.0 σε κάθε εξέταση (προφορικά, γραπτά).
Να γράψετε ένα πρόγραμμα σε γλώσσα προγραμματισμού Python 2.7 το οποίο να πραγματοποιεί τα παρακάτω:
Γ1. Σε δομή επανάληψης να διαβάζει το ονοματεπώνυμο, την προφορική και τη γραπτή βαθμολογία κάθε μαθητή. Δεν απαιτείται έλεγχος ορθότητας εισαγωγής τιμών.
Γ2. Να εμφανίζει τα ονοματεπώνυμα των μαθητών που έχουν άθροισμα προφορικής και γραπτής βαθμολογίας μεγαλύτερο από το 19.5.
Γ3. Να υπολογίζει και να εμφανίζει το πλήθος των μαθητών που η γραπτή βαθμολογία τους είναι μεγαλύτερη από την προφορική τους.
Γ4. Να υπολογίζει και να εμφανίζει τον μέσο όρο της γραπτής βαθμολογίας και τον μέσο όρο της προφορικής βαθμολογίας όλων των μαθητών.

Λύση

# -*- coding: utf-8 -*-

# Αρχικοποίηση μεταβλητών για τους μεσόρους και τους μετρητές
sum_grapth = 0.0
sum_proforikh = 0.0
count_grapth_megeth_proforikhs = 0

# Γ1. Δομή επανάληψης για 50 μαθητές
for i in range(50):
             print "--- Μαθητής", i+1, "---"
             onomateponymo = raw_input("Δώστε ονοματεπώνυμο: ")

             # Μετατροπή των εισόδων σε δεκαδικούς αριθμούς (float)
             vathmos_proforikhs = float(raw_input("Δώστε προφορική βαθμολογία (0.0-20.0): "))
             vathmos_grapth = float(raw_input("Δώστε γραπτή βαθμολογία (0.0-20.0): "))

            # Γ2. Έλεγχος αθροίσματος και εμφάνιση ονοματεπώνυμων
            athroisma = vathmos_proforikhs + vathmos_grapth
           if athroisma > 19.5:
                              print "Ο μαθητής/η μαθήτρια", onomateponymo, "έχει άθροισμα > 19.5"

           # Γ3. Έλεγχος αν η γραπτή είναι μεγαλύτερη της προφορικής
           if vathmos_grapth > vathmos_proforikhs:
                               count_grapth_megeth_proforikhs = count_grapth_megeth_proforikhs + 1

         # Γ4. Υπολογισμός αθροισμάτων για τον μέσο όρο
        sum_grapth = sum_grapth + vathmos_grapth
        sum_proforikh = sum_proforikh + vathmos_proforikhs

# Εκτύπωση αποτελεσμάτων μετά το τέλος του βρόχου (επειδή ζητείται για όλους τους μαθητές)

# Γ3. Εμφάνιση πλήθους
print "\nΤο πλήθος των μαθητών με γραπτή βαθμολογία > προφορική είναι:", count_grapth_megeth_proforikhs

# Γ4. Υπολογισμός και εμφάνιση μέσων όρων
mesos_oros_grapth = sum_grapth / 50.0
mesos_oros_proforikhs = sum_proforikh / 50.0

print "Ο μέσος όρος της γραπτής βαθμολογίας είναι:", mesos_oros_grapth
print "Ο μέσος όρος της προφορικής βαθμολογίας είναι:", mesos_oros_proforikhs

 

Επεξήγηση του κώδικα:

Γ1 (Είσοδος δεδομένων):
Χρησιμοποιούμε την εντολή for i in range(50): ώστε ο βρόχος (loop) να εκτελεστεί ακριβώς 50 φορές.
Με την εντολή raw_input() διαβάζουμε τα δεδομένα ως κείμενο.
Με την εντολή float() μετατρέπουμε τις βαθμολογίες σε αριθμούς κινητής υποδιαστολής ώστε να μπορούμε να κάνουμε μαθηματικές πράξεις.

Γ2 (Φιλτράρισμα αθροίσματος):
Υπολογίζουμε το άθροισμα (athroisma).
Με τη δομή if ελέγχουμε αν το άθροισμα είναι μεγαλύτερο του 19.5 και τυπώνουμε άμεσα το όνομα του μαθητή.

Γ3 (Μέτρηση μαθητών):
Χρησιμοποιούμε έναν μετρητή (count_grapth_megeth_proforikhs) αρχικοποιημένο στο 0.
Μέσα στον βρόχο, αν βρεθεί μαθητής με vathmos_grapth > vathmos_proforikhs, αυξάνουμε τον μετρητή κατά 1.
Στο τέλος του προγράμματος (εκτός του βρόχου) εμφανίζουμε το τελικό αποτέλεσμα.

Γ4 (Μέσοι όροι):
Χρησιμοποιούμε δύο μεταβλητές αθροιστών (sum_grapth, sum_proforikh) για να προσθέτουμε εκεί τις βαθμολογίες κάθε μαθητή.
Στο τέλος διαιρούμε το άθροισμα με το 50 (τον αριθμό των μαθητών) για να βρούμε τους μέσους όρους. Το 50.0 χρησιμοποιείται για να διασφαλιστεί ότι η διαίρεση θα επιστρέψει δεκαδικό αριθμό.

(z.ai)