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

Κωδικός : T522234

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

Ενότητες μαθήματος - Αλγοριθμικές δομές (if, for, while)

Αλγοριθμικές δομές (if, for, while)

Εντολή if (δομή επιλογής)

1.

if <συνθήκη ελέγχου>:

                         # εντολές της if

# εντολές

 

Αν η συνθήκη είναι αληθής (True), τότε το σύνολο των εντολών που περιέχονται στη δομή if, θα εκτελεστεί, αλλιώς η ροή του προγράμματος θα προσπεράσει τη if και θα συνεχίσει από το τέλος της if.

2.

if <συνθήκη ελέγχου>:

                       # εντολές της if

else:

                       # εντολές της else

 

Αν ισχύει η συνθήκη (True), θα εκτελεστεί το μπλοκ εντολών της if, αλλιώς, αν δεν ισχύει (False), θα εκτελεστεί το μπλοκ εντολών της else.

3.

if <συνθήκη1>:

                     <εντολές1>

elif <συνθήκη2>:

                     <εντολές_2>

elif <συνθήκη3>:

                      <εντολές_3>

 

.....................................

else:

                    <εντολές_x>

 

Εξετάζεται εάν ισχύει (True) η 1η συνθήκη. Εάν ισχύει εκτελούνται οι εντολές1. Διαφορετικά εξετάζεται εάν ισχύει η 2η συνθήκη. Εάν ισχύει εκτελούνται οι εντολές2 και ούτω καθεξής. Εάν δεν ισχύει καμία συνθήκη εκτελούνται οι εντολές που είναι μετά το else.

 

Σημείωση: Οι ομάδες εντολών που θα εκτελεστούν, αν ισχύει η συνθήκη, ορίζονται ως ένα μπλοκ με εσοχή (κενά διαστήματα) βάζοντας τη μία εντολή κάτω από την άλλη.

Εντολή for (δομή επανάληψης)

for metavliti in range (αρχή, τέλος, βήμα):
     Εντολή1
     Εντολή2
     …
     Εντολήν

Το μπλοκ εντολών εκτελείται πολλές φορές, κάθε φορά για διαφορετική τιμή της μεταβλητής, ξεκινώντας από αρχή φθάνοντας πριν το τέλος, αυξανόμενη κάθε φορά με το βήμα.


range (αρχή, τέλος, βήμα)
αρχή, τέλος, βήμα: ακέραιοι αριθμοί
Συνάρτηση που επιστρέφει μια λίστα τιμών που ξεκινά από την αρχή, αυξάνεται ανά βήμα, και τερματίζει πριν το τέλος.

Εντολή while (δομή επανάληψης)

while ονομα_μεταβλητής <συνθήκη>:
       Εντολή1
       Εντολή2
        ….
       Εντολήν

Ελέγχεται η <συνθήκη>.Εάν είναι αληθής (True) εκτελείται το μπλοκ εντολών και ελέγχεται  πάλι η συνθήκη. Στην περίπτωση που είναι ψευδής (False) τότε δεν εκτελείται το μπλοκ εντολών και περνάμε στις εντολές μετά το μπλοκ της while.
O βρόχος while (ή Όσο <συνθήκη> επανάλαβε) χρησιμοποιείται για μη προκαθορισμένο αριθμό επαναλήψεων, όπου υπάρχει περίπτωση να μην εκτελεστούν οι εντολές του βρόχου, με τον έλεγχο της συνθήκης να πραγματοποιείται πριν από την εκτέλεση των εντολών του βρόχου.
Σημείωση 1: Θα πρέπει μέσα στο μπλοκ εντολών να υπάρχει κατάλληλη εντολή, ώστε να εξασφαλίζεται ότι κάποια στιγμή η συνθήκη θα γίνει ψευδής και θα διακοπεί ο βρόχος. Διαφορετικά, ο βρόχος δε θα τερματίζει.
Σημείωση 2: Θα πρέπει πριν το βρόχο while, αρχικά, να δώσουμε μια τιμή στη μεταβλητή που ελέγχει τη συνθήκη του βρόχου, ώστε αυτός να εκτελεστεί ή όχι.

#Έλεγχος εισαγωγής δεδομένων (ορθότητας τιμών)
choice = input(' Δώστε το βαθμό ')
while …….. or ……...:
                                   choice = input ('Παρακαλώ δώστε έγκυρη τιμή ')

Ασκήσεις


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

#Σημειώσεις
#1.εντολή for
#2.μεταβλητες onoma, vathmo, mesos_oros, athroisma
#3.εντολές input, raw_input
#4.υπολογισμος του ζητούμενου (άθροισμα βαθμών / πληθος μαθητων)
#5. εντολη print

athroisma=0.0 #αρχικοποιηση #1
for i in range (10): #2
         onoma=raw_input('ονομα:')#1
         vathmo=input('βαθμος:') #1
         athroisma=athroisma+vathmo#athroisma+=vathmo #2
mesos_oros=athroisma/10 #2
print mesos_oros #1

pswd='dimitris'
prospatheies=1
lexi=raw_input ('δωσε τον κωδικό ')
while lexi!=pswd and prospatheies<5:
               print 'λαθoς κωδικός' ,
               lexi=raw_input ('δωσε πάλι κωδικό ')
               prospatheies=prospatheies+1
if prospatheies<=5 and lexi==pswd :
                print 'Μπήκες!!!!'
else:
                print 'Δεν βρήκες τον κωδικό'

Θέμα #30099
ΘΕΜΑ 4
Μία μαθήτρια θέλει να αγοράσει ένα σετ εκπαιδευτικής ρομποτικής αξίας 200 ευρώ. Για τον
σκοπό αυτό αποφάσισε να αποταμιεύσει τα χρήματα από το ημερήσιο χαρτζιλίκι που της
δίνουν οι γονείς της.
Να αναπτύξετε πρόγραμμα σε γλώσσα προγραμματισμού Python, το οποίο να
πραγματοποιεί τα παρακάτω:
4.1 Να διαβάζει κάθε μέρα, το ημερήσιο χαρτζιλίκι μέχρι το συνολικό ποσό αποταμίευσης,
να γίνει ίσο ή μεγαλύτερο από τα 200 ευρώ.
Μονάδες 12
4.2 Να υπολογίζει και να εμφανίζει στην οθόνη το πλήθος των ημερών που χρειάστηκε για
να πετύχει τον σκοπό της.
Μονάδες 3
4.3 Να υπολογίζει και να εμφανίζει στην οθόνη το ποσοστό των ημερών που το ημερήσιο
ποσό από το χαρτζιλίκι ξεπέρασε τα 10 ευρώ.
Μονάδες 5
4.4 Να υπολογίζει και να εμφανίζει στην οθόνη πιθανό περίσσευμα χρημάτων με κατάλληλο
μήνυμα.
Μονάδες 5

__________________________________________________________________________
synoliko=0
imerisio=0
metritis=0
pano=0.0
while synoliko<200:
           imerisio=input('dose to xartziliki')
           if imerisio>10:
                          pano+=1
           synoliko+=imerisio
           metritis+=1

print 'xeperase ta 10 eyro',pano/metritis*100,'%'
print 'imeres', metritis
print 'periseyma', synoliko-200