Μάθημα : Προγραμματισμός Υπολογιστών Γ' ετος 2025-2026
Κωδικός : 4540050176
-
Θεματικές Ενότητες
-
3.3 Βασικές Ενσωματωμένες συναρτήσεις
-
4.1.2 Δομή επιλογής if
-
4.1.3 Δομή επανάληψης (For-While)
-
4.1.4 For ή While
-
4.2 Συναρτήσεις
-
8.1 Συμβολοσειρές (strings)
-
Λίστες
-
5.1 Δυαδική αναζητηση 5.2 Ταξινόμηση ανταλλαγής (bubble sort)
-
8.3 Στοίβα
-
8.4 Ουρά
-
7.3 Αρθρωματα (Modules)
-
7.3.2 Σύντομη περιγραφή της Πρότυπης βιβλιοθήκης (Standard Library)
-
7.3.3 Πακέτα (Packages)
-
6.Αρχεία
-
11.Αντικειμενοστραφής Προγραμματισμός
-
Τυποι δεδομένων,μεταβλητές, τελεστές,λογικές εκφράσεις
-
3.3 Βασικές Ενσωματωμένες συναρτήσεις
4.1.2 Δομή επιλογής if
H δομή επιλογής if (AN) χρησιμοποιείται, όταν θέλουμε να εκτελεστεί μια ακολουθία εντολών, μόνον, εφόσον πληρείται μία συγκεκριμένη συνθήκη.
Αν η συνθήκη είναι αληθής, τότε το σύνολο των εντολών που περιέχονται στην δομή if, θα εκτελεστούν. Αλλιώς, η ροή του προγράμματος θα προσπεράσει τη δομή if και θα συνεχίσει από την εντολή που βρίσκεται αμέσως μετά το τέλος της if.
if <συνθήκη ελέγχου>:
# εντολές που θα εκτελεσθούν αν ισχύει (αληθής-True) η συνθήκη ελέγχου
1. Να ζητείται αριθμός και να εμφανίζεται η απόλυτός τιμή του
a=input('arithmos> ')
if a>=0:
print a
if a<0:
print -a
2. Να ζητείται αριθμός και να εμφανίζεται το μήνυμα θετικός / αρνητικός / μηδέν
a=input('arithmos> ')
if a>=0:
print 'Θετικός'
if a<0:
print 'Αρνητικός'
if a==0:
print 'Μηδέν'
Σύνθετη δομή επιλογής
Αν, ανάλογα με την αποτίμηση μιας συνθήκης, θέλουμε να εκτελεστούν διαφορετικές ακολουθίες εντολών, τότε μπορούμε να χρησιμοποιήσουμε τη δομή
επιλογής if…else (AN…ΑΛΛΙΩΣ).
Αν ισχύει η συνθήκη (έχει τιμή TRUE), θα εκτελεστεί η Α ομάδα εντολών της if,
αλλιώς (αν δεν ισχύει-έχει τιμή FALSE), θα εκτελεστεί η Β ομάδα εντολών της else.
Η εντολή ελέγχου if …. else συντάσσεται:
if <συνθήκη ελέγχου>:
#εντολές που θα εκτελεσθούν, αν η συνθήκη ελέγχου είναι αληθής
else:
#εντολές που θα εκτελεσθούν αν η συνθήκη ελέγχου είναι ψευδής
3. Η ασκ. 1 με χρήση if / else
a=input('arithmos> ')
if a>=0:
print a
else:
print -a
Πολλαπλή Επιλογή: Η Python προσφέρει τη δυνατότητα για σύνταξη σύνθετων δομών επιλογής με τη χρήση της εντολής elif.
Η σύνταξη είναι η εξής:
if <συνθήκη>:
<εντολές>
elif <συνθήκη2>:
<εντολές_2>
else:
<εντολές_3>
4 Η ασκ.2 με χρήση if / elif / else
a=input('arithmos> ')
if a>=0:
print 'Θετικός'
elif a<0:
print 'Αρνητικός'
else:
print 'Μηδέν'
Εμφωλευμένες δομές επιλογής: Οι πολλαπλές επιλογές μπορούν να υλοποιηθούν και με εμφωλευμένες δομές Αν-αλλιώς, όπως στη ασκηση 5 :
5. Να χαρακτηρίσετε τον τελικό βαθμό ενός μαθητή
b=input('Bathmow> ')
if b<10:
print 'kakws'
elif b<13:
print 'metria'
elif b<16:
print 'kala'
elif b<18:
print 'poly kala'
elif b<=20:
print 'Arista'
Παράδειγμα 2 Ο δείκτης μάζας σώματος (ΔΜΣ) είναι μία ένδειξη για το βαθμό παχυσαρκίας ενό ατόμου και υπολογίζεται από τον τύπο: βάρος/ύψος^2. Δεδομένων του βάρους και του ύψους ενό ςατόμου, να εμφανίσετε χαρακτηρισμό που αφορά στο βαθμό παχυσαρκίας του με βάση το ΔΜΣ. Υπάρχουν τέσσερεις περιπτώσεις για τον χαρακτηρισμό του ατόμου, που μπορούν να εξετασθούν με μια δομή πολλαπλής επιλογής
|
ΔΜΣ |
Χαρακτηρισμός ατόμου |
|
<18, 5 |
Ελλιποβαρές |
|
18,5 - 24,9 |
Φυσιολογικό βάρος |
|
25 - 29,9 |
Υπέρβαρο |
|
>30 |
Πάσχει από παχυσαρκία |
#ΧαρακτηρισμόςΑτόμου
varos=input("Δώσε βάρος")
ypsos=input("Δώσε ύψος")
dms=varos/(ypsos**2)
if dms<18.5:
print 'ελλιποβαρές άτομο'
elif dms<25:
print 'άτομο με φυσιολογικό βάρος'
elif dms<30:
print 'υπέρβαρο άτομο'
else:
print 'άτομο που πάσχει από παχυσαρκία'
6. Η άσκηση 5 με την χρήση ένθετου (φωλιασμένου) if / else
b=input('Bathmow> ')
if b<13:
if b < 10:
print 'kakws'
else:
print 'metria'
else:
if b < 16:
print 'kala'
else:
if b < 18:
print 'poly kala'
else:
print 'Arista'
Παράδειγμα 3 ( Εμφωλευμένη Δομή επιλογής)
Στο ταχυδρομείο το κόστος αποστολής υπολογίζεται συναρτήσει του προορισμού και του βάρους της επιστολής με βάση τον πίνακα. Δεδομένων του προορισμού και του βάρους μιας επιστολής, να εμφανίσετε το ποσό που στοιχίζει η αποστολή της.
|
|
Βάρος αποστολής |
||
|
Μέχρι και 100 γραμμάρια |
Πάνω από 100 γραμμάρια |
||
|
Προορισμός επιστολής |
Εσωτερικό |
1€ |
2€ |
|
Εξωτερικό |
2.50€ |
4€ |
|
1ος Τρόπος ¨Με εμφωλευμένη Δομή Επιλογής
#Επιστολή1
print '1.Εσωτερικό'
print '2. Εξωτερικό'
proorismos=input("Επιλογή: ")
varos=input("Δώσε βάρος: ")
if proorismos==1:
if varos<=100:
kostos=1
else:
kostos=2
else:
if varos<=100:
kostos=2.5
else:
kostos=4
print 'Κόστος μεταφοράς της επιστολής:',kostos
2ος Τρόπος ¨Με σύνθετη Δομή Επιλογής
#Επιστολή2
print '1.Εσωτερικό'
print '2. Εξωτερικό'
pr=input("Επιλογή: ")
varos=input("Δώσε βάρος: ")
if pr==1 and varos<=100:
kostos=1
elif pr==1 and varos>100:
kostos=2
elif pr==2 and varos<=100:
kostos=2.5
else:
kostos=4
print 'Κόστος μεταφοράς της επιστολής:',kostos
Θεωρητική παρατήρηση: Στην περίπτωση της πολλαπλής επιλογής έχουμε λιγότερες συγκρίσεις σε σχέση με την απλή επιλογή. Στην απλή επιλογή σε κάθε εντολή if γίνεται νέος έλεγχος για το αν ισχύει η συνθήκη ελέγχου και ας έχει ικανοποιηθεί η συνθήκη ελέγχου προηγούμενης εντολής if.. Στην πολλαπλή επιλογή όμως, όταν βρεθεί η συνθήκη ελέγχου που είναι αληθής δε γίνονται οι άλλοι έλεγχοι για τις υπόλοιπες συνθήκες και ουσιαστικά σταματούν.
7. Η παραπάνω να γίνει με χρήση μόνo της εντολής if του λογικών συνδέσμων
b=input('Bathmow> ')
if b<10:
print 'kakws'
if 10 <= b and b < 13:
print 'metria'
if 13 <= b and b < 16:
print 'kala'
if 16 <= b and b < 18:
print 'poly kala'
if 18 <= b and b <= 20:
print 'Arista'
Δραστηριότητα
- Μελετήστε το παρακάτω πρόγραμμα.
- Τι πιστεύετε ότι κάνει;
- Τι θα εμφανίζει το παρακάτω πρόγραμμα της Python, αν εκτελεστεί διαδοχικά για την τιμή 4,την 11, την 13, την 16, την 18, την 20 και την 23;
iii. Τροποποιήστε το πρόγραμμα, ώστε αντί της εμφωλευμένης if ... else...if να χρησιμοποιήσετε την σύνθετη if... elif...elif...else...
test = input('Παρακαλώ δώσε το βαθμό που πήρες από το τεστ:')
if test<=20:
if test>= 18:
print 'ΑΡΙΣΤΑ'
else:
if test >= 15:
print 'ΚΑΛΑ'
else:
if test >= 10:
print 'ΜΕΤΡΙΟΣ'
else:
print 'ΑΠΟΡΡΙΠΤΕΤΑΙ'
else:
print "Ο βαθμός που έδωσες είναι μεγαλύτερος του είκοσι"
Κλιμακωτή χρέωση – Κλιμακωτή έκπτωση
Όταν πρέπει να υπολογίσουμε διαφορετικές χρεώσεις ή εκπτώσεις οι οποίες κλιμακώνονται σε διαφορετικά όρια τιμών με διαφορετικά ποσοστά:
Χρέωση = τιμή * ποσοστό1 / 100, εάν τιμή < όριο1
Χρέωση = όριο1* ποσοστό1 / 100 + (τιμή – όριο1) * ποσοστό2, εάν τιμή < όριο2 και τιμή >όριο1
Χρέωση = όριο1* ποσοστό1 / 100 + (όριο2 – όριο1) * ποσοστό2 + (τιμή – όριο2)*ποσοστό3, εάν τιμή > όριο3
…
Παράδειγμα
Για αγορές μέχρι 1000 έκπτωση 0%, από 1000 μέχρι 10000 έκπτωση 10% και πάνω από 10000 έκπτωση 25%)
agores=input("Σύνολο αγορών> ")
if agores < 1000:
ekptosi = 0
elif agores < 10000:
ekptosi = (agores - 1000) * 10/100.0
else:
ekptosi = (10000 - 1000)* 10/100.0 + (agores - 10000) * 25/100.0
neaTimi=agores - ekptosi
είτε:
agores=input("Σύνολο αγορών> ")
if agores < 1000:
ekptosi = 0
elif agores < 10000:
ekptosi = (agores - 1000) * 0.10
else:
ekptosi = (10000 - 1000)* 0.10+ (agores - 10000) * 0.25
neaTimi=agores - ekptosi
Παράδειγμα.
Το οικονομικό πακέτο της εταιρείας κινητής τηλεφωνίας XIAOMFHONE παρέχει 300’ ομιλίας προς όλους και 3GB internet, με πάγιο 18€. Κάθε μήνυμα χρεώνεται με 0,10€, ενώ κάθε επιπλέον λεπτό ομιλίας με 0,08€. Στην περίπτωση που ο συνδρομητής χρειαστεί επιπλέον GB, προσφέρονται 3GB με 5€.
Να γίνει πρόγραμμα που θα ζητάει από τον συνδρομητή τα λεπτά ομιλίας του, τον αριθμό των SMS, καθώς και αν χρειάστηκε επιπλέον GB και θα υπολογίζει την τελική χρέωση. Η χρέωση αυτή θα επιβαρύνεται με 24% ΦΠΑ και θα εκτυπώνεται ο λογαριασμός προς τον πελάτη.
Μία ενδεικτική λύση
lepta = input("Dose lepta:")
sms = input("Dose arithmo sms:")
gb = raw_input("8es extra gb? (yes/no):")
xrewsh=sms*0.10+18
if lepta>300:
xrewsh+=(lepta-300)*0.08
if gb=="yes":
xrewsh+=5
teltim = xrewsh+(xrewsh*0.24)
print teltim
Παράδειγμα
Ένα σχολείο πρόκειται να πάει μία εκπαιδευτική επίσκεψη. Στην προσφορά, που έγινε από ένα ταξιδιωτικό γραφείο, περιλαμβάνεται το κόστος ανά μαθητή, χωρίς τη διατροφή σε ξενοδοχείο, όπως φαίνεται στον παρακάτω πίνακα:
|
Αριθμός μαθητών |
Κόστος ανά μαθητή |
|
Από 1 έως και 100 |
80€ |
|
Από 101 και πάνω |
60€ |
Αν το σχολείο επιλέξει, να έχουν οι μαθητές και διατροφή στο ξενοδοχείο, το κόστος αυξάνεται κατά 30€ ανά μαθητή. Να γραφεί πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο θα υπολογίζει το κόστος για ένα σχολείο.
Μία ενδεικτική λύση