Μάθημα : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Γ ΕΠΑΛ ΘΕΩΡΙΑ
Κωδικός : T100228
T100228 - ΓΕΩΡΓΙΟΣ ΜΠΑΝΤΟΥΒΕΡΗΣ
Περιγραφή Μαθήματος
6/5/2025 ΕΠΑΝΑΛΗΨΗ ΤΑΞΙΝΟΜΗΣΗ
07/03/2025 Επαναληπτικο κουιζ στο Κεφάλαιο 6 Θεωρία - Διαχείριση Αρχείων
Η εντολή while χρησιμεύει όπως και η απλή if ή ακόμα και η if ... else
ΕΛΕΓΧΟΣ ΑΝ ΠΛΗΚΤΡΟΛΟΓΗΘΗΚΕ ΧΑΡΑΚΤΗΡΑΣ ΤΕΛΟΥΣ
Ο παρακάτω κώδικας το αποδεικνεύει. Δοκιμάστε να τον τρέξετε
ch=raw_input("Δώσε οποιοδήποτε γράμμα T αγγλικο για τέλος ")
while ch.upper() != 'T':
print "Εδωσες "+ch
ch=raw_input("Δώσε οποιοδήποτε γράμμα T αγγλικο για τέλος ")
else:
print "Εδωσες "+ch+" και τελος"
Οταν θέλουμε να χρησιμοποιήσουμε την εντολή while προφανώς δυσκολευόμαστε με τη συνθηκη.
Για να το ξεπεράσουμε διαβαζουμε την εκφώνηση. Αν η εκφώνηση λέει για παράδειγμα το εξής "μέχρι να πατηθεί το πλήκτρο Τ , σκεφτόμαστε "αρα όσο το πλήκτρο που δοθηκε (για να συνεχίζει η επανάληψη) να μην είναι το Τ". Αυτό πρέπει να σκεφτούμε. ΤΟ ΠΩΣ ΘΑ ΣΥΝΕΧΙΖΕΙ
Με βάση αυτή τη σκέψη μας πάμε να περιγράψουμε με συνθήκη.
Το πλήκτρο που δόθηκε το περιέχει η μεταβλητή π.χ. ch στο παραπάνω παράδειγμα
Αρα για κάνουμε τη συνθήκη γράφουμε το όνομα της μεταβλητής ch
Πως μεταφράζουμε το 'δεν είναι' με την έκφραση 'διάφορο' ή καλύτερα != της Python
Mε τι να μην είναι ?? , με το 'Τ' ( σε μονά εισαγωγικά για να εκφράσουμε το σύμβολο 'T')
Αρα η συνθήκη γίνεται while ch != 'T':
ΕΛΕΓΧΟΣ ΑΝ ΠΛΗΚΤΡΟΛΟΓΗΘΗΚΕ ΕΝΔΕΙΞΗ ΤΕΛΟΥΣ ή ΟΛΟΚΛΗΡΩΘΗΚΕ Η ΦΟΡΤΩΣΗ
Η Ασκηση βασίζεται στην εκφώνηση 4_24732 θεμα της τράπεζας θεμάτων.
Μια μερική λύση που υλοποιεί τη συνθήκη που λαμβάνει επαναληπτικά κωδικό πελάτη μέχρι να δοθεί η λέξη ΝΟΝΕ ή να μην υπερβεί το πληθος των μεταφερόμενων παραγγελιών τις 30 ( έγινε στην τάξη για μέχρι 3 πελάτες) υλοποιείται ως παρακατω.
Σύμφωνα με τα παραπάνω η επανάληψη θα γίνεται όσο ο τρέχων κωδικός πελάτη ειναι διαφορος του NONE και δεν έχουμε υπερβεί τους 3 πελάτες
Ο κώδικας είναι
cod=raw_input("Δωσε κωδικο πελάτη") #αυτο που διαμορφώνει τη συνθήκη τέλους γράφεται
#πριν το while
counter = 0 # αρχική τιμή μέτρησης πλήθους παραγγελιών
while cod.upper() != 'NONE' and counter <3: # η συνθήκη επανάληψης
poso = input("Δωσε αξια πωλήσεων")
counter = counter+1
cod=raw_input("Δωσε κωδικο πελάτη") # Οτι πριν το while, το ίδιο ξαναγράφεται σαν τελευταία εντολή
# στο σώμα εντολών του whileμετα
Η τέλεια έκδοση του προγράμματος ώστε να μην ξαναζητάει κωδικό οταν οι παραγγελίες έχουν φτάσει στο όριο τους (εδω 3) είναι η
cod=raw_input("Δωσε κωδικο πελάτη")
counter = 0
while cod.upper() != 'NONE' and counter <3:
poso = input("Δωσε αξια πωλήσεων")
counter = counter+1
if counter <=3: #προσθέτουμε εδώ ενα επιπλεον έλεγχο να μην ξαναζητάει κωδικο
cod=raw_input("Δωσε κωδικο πελάτη")
print "Τέλος..."
Στο κεφάλαιο αυτό γίνεται η εμβάθυνση σε βασικές έννοιες, αλγοριθμικές δομές και τεχνικές προγραμματισμού, καθώς και στην
αξιοποίησή τους για την επίλυση προβλημάτων με προγραμματισμό, σε γλώσσα Python.
Αυξουσα απαρίθμηση
Ο παρακάτω κώδικας μετατρέπει την εντολή while σε εντολη for εκτελώντας συγκεκριμενες επαναλήψεις
| ΑΠΑΡΙΘΜΗΣΗ ΑΥΞΟΥΣΑ ΜΕ WHILE | ΑΠΑΡΙΘΜΗΣΗ ΑΥΞΟΥΣΑ ΜΕ for |
|
t_arxiki = 1 vima = 1 while x <= t_teliki: |
t_arxiki = 1 vima = 1 |
| ΑΠΑΡΙΘΜΗΣΗ ΦΘΙΝΟΥΣΑ ΜΕ WHILE | ΑΠΑΡΙΘΜΗΣΗ ΦΘΙΝΟΥΣΑ ΜΕ for |
|
t_arxiki = 10 |
t_arxiki = 10 t_teliki = 11 for x in range(t_arxiki,t_teliki-1,-1): print x |
- Ζυγουρης Python
- Python 0.13-ΑΣΚΗΣΕΙΣ με ΠΡΩΤΕΣ ΕΝΤΟΛΕΣ
- Python 0.02-Αριθμητικοί τελεστές
- Python 0.03-Σχεσιακοί τελεστές
- Python 0.04-Τελεστές Λογικών πράξεων
- Python 0.05-ΕΚΦΡΑΣΕΙΣ
- Αληθείς-Ψευδείς Συνθήκες Λογικοί Τελεστές
- Python 0.09-Τύποι και Δομές Δεδομένων
- Python 0.11 Αλγοριθμοι-Διαγραμμα Ροής-Πρόγραμμα
- Δομή Απλής Επιλογής
- Σύνθετη Επιλογή Μέρος 2ο
- ΠΟΛΛΑΠΛΗ ΕΠΙΛΟΓΗ -1
- Python 1.01 Δομή ΑΚΟΛΟΥΘΙΑΣ
- Python 1.02 ΑΚΟΛΟΥΘΙΑ-ΠΟΣΟΣΤΑ
- Python 1.03 ΑΚΟΛΟΥΘΙΑ-ΔΙΑΧΩΡΙΣΜΟΣ ΨΗΦΙΩΝ
- Python 1.04 Δομή ΕΠΙΛΟΓΗΣ-ΕΙΣΑΓΩΓΗ
- Python 1.05 Απλή Δομή ΕΠΙΛΟΓΗΣ
- Python 1.06 Απλή Δομή ΕΠΙΛΟΓΗΣ-ΜΕΓΙΣΤΟ-ΕΛΑΧΙΣΤΟ
- Python 1.07 Σύνθετη Δομή ΕΠΙΛΟΓΗΣ-1
- Python 1.08 Σύνθετη Δομή ΕΠΙΛΟΓΗΣ-2
- Python 1.09 Σύνθετη Δομή ΕΠΙΛΟΓΗΣ-3
- Python 1.10 Πολλαπλή Δομή ΕΠΙΛΟΓΗΣ-1
- Python 1.11 Πολλαπλή Δομή Επιλογής -2 Διαδοχικες και μη - περιοχές τιμών
- Python 1.12 Πολλαπλή Δομή Επιλογής -3 Ασκήσεις
- Python 1.13 Κλιμακωτός Υπολγισμός
- Python 1.14 Εμφωλευμένες Εισαγωγή
- Python 1.15 Εμφωλευμένες Ασκήσεις-1
- Python 1.16 Εμφωλευμένες-Ασκήσεις-2
- Δομή επανάληψης Όσο … επανάλαβε 1
- Δομή επανάληψης Όσο … επανάλαβε-2
- Python 2.01 Δομή ΕΠΑΝΑΛΗΨΗΣ-Εισαγωγή
name=["ΑΙΚΑΤΕΡΙΝΗ","ΑΝΑΣΤΑΣΙΑ","ΒΑΣΙΛΙΚΗ","ΓΕΩΡΓΙΑ","ΓΕΩΡΓΙΟΣ",
"ΔΗΜΗΤΡΑ","ΔΗΜΗΤΡΙΟΣ","ΕΙΡΗΝΗ","ΕΛΕΝΗ","ΕΥΑΓΓΕΛΙΑ",
"ΙΩΑΝΝΑ","ΙΩΑΝΝΗΣ","ΚΩΝΣΤΑΝΤΙΝΟΣ","ΜΑΡΙΑ","ΝΙΚΟΛΑΟΣ","ΣΟΦΙΑ"
]
bath=[7,10,18,15,14,15,18,17,13,20,20,12,10,20,14,17]
student = input("Dwse onoma mathiti ").upper()
found=False
print (student)
for i in range(len(name)):
if name[i] == student:
found = True
index = i
break
if found:
print ("το ",student," βρισκεται στη θεση ",index)
print("εχει βαθμο",bath[index])
else:
print("Δεν βρεθηκε ")
Η σειριακή αναζήτηση διερευνά τα το προς διερεύνηση στοιχείο υπάρχει στη λίστα. Oi πληροφορίες που μπορεί να εξαγχθούν είναι μια ένδειξη π.χ. found με τιμή true αν βρέθηκε το προς διερεύνηση στοιχείο ειδάλλωs έχει τιμή false.
Αλλη πληλοφορία που μπορεί να εξαγχθεί είναι η θέση του ευρεθέντος στοιχείοι που είναι η θέση στη λίστα
Η ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ υλοποιείται με τον παρακάτω κώδικα
def linearSearch( array, key ):
pos = -1
i ,N = 0 ,len(array)
while pos < 0 and i < N:
if array[ i ] == key :
pos = i
break
i = i + 1
return pos
testlist=[1,3,4,6,7,10,13,14]
print(linearSearch(testlist,5))
print(linearSearch(testlist,14))
--------------------------------------
def linearSearch( array, key ):
pos = -1
i ,N = 0 ,len(array)
while pos < 0 and i < N:
if array[ i ] == key :
pos = i
break
i = i + 1
return pos
lista=[1,3,4,6,7,10,13,14] #
pos = linearSearch(lista,5)
if pos == -1:
print("to 5 den brathike ")
else:
print("to 5 brethike sth thesi",pos)
pos = linearSearch(lista,14)
if pos == -1:
print("to 14 den brathike ")
else:
print("to 14 brethike sth thesi",pos)
-------------------------------------------------
def linearSearch( array, key ):
pos = -1
i ,N = 0 ,len(array)
while pos < 0 and i < N:
if array[ i ] == key :
pos = i
break
i = i + 1
return pos
vathmoi=[1,3,4,6,7,10,13,14] #
names=['A','b','c','d','e','f','g','j']
pos = linearSearch(names,'d')
if pos == -1:
print("to d den brathike ")
else:
print ("to d brethike sth thesi",pos,'kai phre vathmo',vathmoi[pos])
Ελεγχος αν η δομή λιστας - με όνομα lista ειναι ταξινομημένη αύξουσα
lista=[1,2,3,4,-10,5,6]
flag_sort=True
prev=lista[0]
for i in range(1,len(lista)):
if lista[i] < prev:
flag_sort=False
prev=lista[i]
print i, lista[i]
print flag_sort
import random
onomata = [
"Γιώργος", "Μαρία", "Νίκος", "Ελένη", "Δημήτρης", "Κατερίνα", "Παναγιώτης",
"Αννα", "Κώστας", "Χρήστος", "Σοφία", "Βασίλης", "Ιωάννα", "Αντώνης", "Ειρήνη",
"Αλέξης", "Θεοδώρα", "Μιχάλης", "Δέσποινα", "Πέτρος", "Αγγελική", "Γιάννης",
"Αναστασία", "Στέλιος", "Μαργαρίτα", "Χριστίνα", "Λουκάς"]
vathmoi = [random.randint(1, 20) for _ in range(27)]
#for i in range(27):
# print onomata[i],vathmoi[i]
synolo_vath=0
#for i in range(27):
# synolo_vath = synolo_vath + vathmoi[i]
#mesos_oros=synolo_vath / 27.0
#print "mesos oros ",mesos_oros
max,min=0,1000
for i in range(27):
if vathmoi[i] < min:
min = vathmoi[i]
if vathmoi[i] > max:
max = vathmoi[i]
print "min ",min," max ",max
ΠΑΡΆΔΕΙΓΜΑ ΜΕΤΑΤΡΟΠΗΣ for σε while ΚΑΙ ΑΝΤΙΣΤΡΟΦΑ
arxiki_timi=1
teliki_timi=10
vima=1
for i in range(arxiki_timi,teliki_timi,vima):
print i
i=arxiki_timi
while i < teliki_timi:
print i
i = i + vima
Ημερολόγιο
Ανακοινώσεις
Όλες...- - Δεν υπάρχουν ανακοινώσεις -