Μάθημα : Προγραμματισμός Υπολογιστών Γ' ετος 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.3 Δομή επανάληψης (For-While)
Συχνά σε ένα πρόγραμμα, μια ομάδα εντολών είναι αναγκαίο να εκτελείται περισσότερες από μία φορές. Υπάρχουν δύο τύποι επαναλήψεων:
● Οι προκαθορισμένοι, όπου το πλήθος των επαναλήψεων είναι δεδομένο, πριν αρχίσουν οι επαναλήψεις. Για παράδειγμα: ο υπολογισμός του μέσου όρου βαθμολογίας των μαθητών ενός τμήματος 22 μαθητών.
● Οι μη προκαθορισμένοι, όπου το πλήθος των επαναλήψεων καθορίζεται κατά τη διάρκεια της εκτέλεσης των εντολών του σώματος της επανάληψης. Για παράδειγμα: ο υπολογισμός των μορίων όσων υποβάλλουν αίτηση σε ένα διαγωνισμό του Δημοσίου.
Στη γλώσσα προγραμματισμού Python, χρησιμοποιούμε την εντολή for για να εκτελεστεί ένα τμήμα του κώδικα για έναν καθορισμένο αριθμό επαναλήψεων, ενώ την εντολή while για να εκτελείται υπό συνθήκη και μάλιστα, όσο αυτή είναι αληθής.
Στην εντολή for χρησιμοποιείται η συνάρτηση range() για τον καθορισμό των επαναλήψεων
for onoma_metavlitis in range (αρχή, μέχρι, βήμα):
Εντολή_1
Εντολή_2
…..
Εντολή_ν
Σύνταξη συνάρτησης range: range([αρχή],τέλος,[βήμα])
Η range φτιάχνει λίστες ακεραίων αριθμών
Παραδείγματα:
range(5) είτε range(0,5) είτε range(0,5,1) Φτιάχνουν την λίστα: [0,1,2,3,4]
range(2,8) είτε (2,8,1) Φτιάχνουν την λίστα: [2,3,4,5,6,7]
range(5,0,-1) Φτιάχνουν την λίστα: [5,4,3,2,1]
range (4,8,2) Φτιάχνει την λίστα: [4,6]
range(2,17,5) Φτιάχνειτην λίστα: [2,7,12]
range (3,-3,-1) Φτιάχνει την λίστα: [3,2,1,0,-1,-2]
range (3,-3,-2) Φτιάχνει την λίστα: [3,1,-1]
range(10,2) είτε range(2,10,-1) Φτιάχνουν την λίστα: [] (κενή λίστα)
Παραδείγματα:
for x in [4,2.5,'Maria',True]:
print x,
Εμφανίζει: 4 2.5 Maria True
L=[40,20.5,'Maria',True]:
for x in L:
print x,
Εμφανίζει: 40 20.5 Maria True
for x in range(4):
print x,
Εμφανίζει: 0 1 2 3
Άθροιση στοιχείων αριθμητικής λίστας με την εντολή for:
Εάν L μία λίστα με αριθμούς (ακέραιους ή δεκαδικούς) τότε οι εντολές εμφανίζουν το άθροισμα των στοιχείων της.
s=0 # Εδώ θα αθροισθούν τα στοιχεία της λίστας L
for a in L:
s+=a
print s
Παραδείγματα:
L=[3,-4,10,5.5,-0.5]
s=0 # Εδώ θα αθροισθούν τα στοιχεία της λίστας L
for a in L:
s+=a
print s
Εμφανίζει: 14.0
s=0 # Εδώ θα αθροισθούν τα στοιχεία της λίστας range(6): [0, 1, 2, 3, 4, 5]
for a in range(6):
s+=a
print s
Εμφανίζει: 15 (To άθροισμα:0+1+2+3+4+5)
Άθροιση αριθμών που δίνονται από το πληκτρολόγιο (γνωστο το πλήθος των αριθμών).
plithos = input("πόσους αιθμούς θα αθροίσω; ")
s=0 # Εδώ θα αθροισθούν οι αριθμοί
for a in range(plithos):
a = input('αριθμός> ')
s+=a
print s
Παράδειγμα
Να γραφεί πρόγραμμα σε γλώσσα Python που να υπολογίζει το άθροισμα των περιττών αριθμών από το 1 έως και το 100.
# Πρόγραμμα, αθροίζω περιττούς
athroisma = 0
for i in range(1,100,2):
athroisma = athroisma + i
print ' To αποτέλεσμα είναι ', athroisma
Εύρεση μεγίστου και μέσου όρου με την εντολή for (όταν γνωρίζω το πλήθος των τιμών):
Να βρεθεί η μέγιστη θερμοκρασία της τελευταίας εβδομάδας (Οι τιμές μεγ. θερμοκρασίας κάθε ημέρας δίνονται από το πληκτρολόγιο)
A' Λύση (Πάντα αποτελεσματική)
megisti=input("Θερμοκρασία> ")
for i in range(6):
t=input("Θερμοκρασία> ")
if t > megisti:
megisti = t
print 'Μεγαλύτερη θερμ.',megisti
Β' Λύση (Όταν γνωρίζουμε το κατώτερο όριο δυνατών τιμών)
megisti=-273.15 # Απόλυτο μηδέν, η ελάχιστη δυνατή θερμοκρασία στην φύση
for i in range(7):
t=input("Θερμοκρασία> ")
if t > megisti:
megisti = t
print 'Μεγαλύτερη θερμ.',megisti
Να βρεθεί ο μικρότερος βαθμός ενός τμήματος 10 μαθητών. (Ο βαθμός κάθε μαθητή δίδεται από το πληκτρολόγιο)
A' Λύση (Πάντα αποτελεσματική)
mikroteros=input("Βαθμός> ")
for i in range(9):
v=input("Βαθμός> ")
if v < mikroteros:
mikroteros = v
print 'Μικρότερος Βαθμός', mikroteros
Β' Λύση (Όταν γνωρίζουμε το ανώτερο όριο δυνατών τιμών)
mikroteros= 21# Γνωρίζουμε ότι ο μεγαλύτερος βαθμός είναι ο 20
for i in range(10):
v=input("Βαθμός> ")
if v < mikroteros:
mikroteros = v
print 'Μικρότερος Βαθμός', mikroteros
Να βρεθεί η μεγαλύτερη τιμή μιας λίστας.
L = [755,9,980,99, 55, . . . ]
megisti= L[0]
for st in L:
if st > megisti:
megisti = st
print 'Μεγαλύτερη τιμή λίστας',megisti
Να βρεθεί η μικρότερη τιμή μιας λίστας.
L = [755,9,980,99, 55, . . . ]
elexisti= L[0]
for st in L:
if st < elaxisti:
elaxisti= st
print 'Μικρότερη τιμή λίστας', elaxisti
Συνάρτηση συστήματος len: len( string ή λιστα)
H len επιστρέφει το πλήθος το χαρακτήρων του string η το πλήθος το στοιχείων μιας λίστας
Παραδείγματα:
len('snow') εμφανίζει 4
len('αου ') εμφανίζει 4
len([1,2,10,0,'riri',True]) εμφανίζει 6
len([]) εμφανίζει 0
Να βρεθεί ο μεγαλύτερη τιμή μιας λίστας. (με χρήση της len)
L = [755,9,980,99, 55, . . . ]
megisti= L[0]
for i in range(len(L)):
if L[i] > megisti:
megisti = L[i]
print 'Μεγαλύτερος τιμή λίστας', megisti
Ασκηση με συνάρτηση (randint)
Να γραφεί πρόγραμμα το οποίο διαβάζει 50 τυχαίους ακεραίους αριθμούς και θα εκτυπώνει τα ποσοστά των μονοψήφιων, διψήφιων και τριψήφιων αριθμών που παρήγαγε η μέθοδος random.radint.
Λύση
import random
pl_mono=0
pl_dipsi=0
pl_tripsi=0
for i in range(50):
number=random.randint(1,150)
if number <10:
pl_mono+=1
elif number <100:
pl_dipsi+=1
else:
pl_tripsi+=1
pososto_mono=(pl_mono/50.0)*100
pososto_dipsi=(pl_dipsi/50.0)*100
pososto_tripsi=(pl_tripsi/50.0)*100
print "pososto monopsiphion:",pososto_mono, "%"
print "pososto dipsiphion:",pososto_dipsi, "%"
print "pososto tripsiphion:",pososto_tripsi, "%"
Ασκηση με εμφωλευμένο for (διπλό for)
Να γραφτεί πρόγραμμα το οποίο θα διαβάζει έναν ακέραιο αριθμό και θα εκτυπώνει την προπαίδεια εως αυτόν τον αριθμό.
number=input("Dose enan akeraio:")
for i in range(1,number+1):
for j in range(1,11):
print i,"*",j,"=", i*j
print
Δομή Επανάληψης με while βρόχο
Η δομή while (Όσο <συνθήκη> επανάλαβε) χρησιμοποιείται για μη προκαθορισμένο αριθμό επαναλήψεων. Σε κάθε επανάληψη (και στην αρχική) πραγματοποιείται ο έλεγχος της συνθήκης, πριν από την εκτέλεση των εντολών του βρόχου, πράγμα που σημαίνει ότι υπάρχει περίπτωση να μην εκτελεστούν οιεντολές του βρόχου.
Αρχική τιμή μεταβλητής
while ονομα_μεταβλητής <συνθήκη>:
Εντολή_1
Εντολή_2
….
Εντολή_κ
: θα πρέπει μέσα στο μπλοκ εντολών να υπάρχει κατάλληλη εντολή, ώστε να εξασφαλίζεται ότι κάποια στιγμή η συνθήκη θα γίνει ψευδής και θα διακοπεί ο βρόχος. Διαφορετικά ο βρόχος δε θα τερματίζει.
: πριν το βρόχο while θα πρέπει αρχικά να δώσουμε μία τιμή στη μεταβλητή που ελέγχει τη συνθήκη του βρόχου, ώστε ανάλογα να εκτελεστεί ή όχι ο βρόχος
Άθροιση άγνωστου πλήθος αριθμών που δίδονται από το πληκτρολόγιο
s=0 # η μεταβλητή όπου θα γίνεται η άθροιση
a=input('προσθετέος> ')
while a!=-1000: # Για τέλος των αριθμών δίδεται ο -1000
s+=a # είτε s=s+a
a=input('προσθαιτέος> ')
print 'Το άθροισμα είναι:', s
Μέτρηση αγνώστου πλήθους λέξεων που δίδονται από το πληκτρολόγιο
m=0 # η μεταβλητή όπου θα γίνεται η μέτρηση
lexi=raw_input('λέξη> ')
while lexi!=’’: # Για τέλος δίδεται κενή λέξη
m+=1 # είτε m=m+1
lexi=raw_input('λέξη> ')
print 'Έγραψες’,m,’λέξεις’
Μεγαλύτερος από άγνωστο πλήθος αριθμών που δίδονται από το πληκτρολόγιο
Εξάσκηση την λογική διαδικασία εύρεσης μέγιστου
a=input('αριθμός> ')
megistos = a # η μεταβλητή όπου φυλάσσεται ο μέγιστος
while a!=-1000: # Για τέλος των αριθμών δίδεται ο -1000
if a > megistos:#άν βρήκα αριθμό μεγαλύτερο από τον μέγιστο
megistos = a # αυτός θα είναι ο μέχρι τώρα μέγιστος
a=input('αριθμός> ')
print 'Ο μέγιστος είναι:', megistos
Μικρότερος από άγνωστο πλήθος αριθμών που δίδονται από το πληκτρολόγιο
Εξάσκηση με την λογική διαδικασία εύρεσης ελάχιστου
a=input('αριθμός> ')
elaxistos = a # η μεταβλητή όπου φυλάσσεται ο ελάχιστος
while a!=-1000:# Για τέλος των αριθμών δίδεται ο -1000
if a < elaxistos: # Παρατηρούμε ότι η μόνη διαφορά με τον μέγιστο είναι η φορά της ανισότητας
elaxistos = a
a=input('αριθμός> ')
print 'Ο ελάχιστος είναι:', elaxistos