Αρχή

Εργασία Π48.3 Δομή επολογής

Εργασία Π48.3 Δομή επιλογής

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

 

Σημείωση: Τα μπλοκ των εντολών που θα εκτελεστούν σε όλες τις περιπτώσεις της if, ορίζονται ως ένα μπλοκ με εσοχή βάζοντας τη μια εντολή κάτω από την άλλη. Αν το μπλοκ εντολών αποτελείται από μια εντολή, τότε μπορεί να γραφτεί στην ίδια γραμμή με την if ή την else. Π.χ.

a=input('give a number ')

if a>0: print a,'>0'

else: print a,'<0'

 

Λογικές εκφράσεις

Για την σύνταξη της συνθήκης που χρησιμοποιεί η εντολή της δομής επιλογής if, χρειάζεται να συνταχθεί μια λογική έκφραση, η οποία θα δίνει σαν αποτέλεσμα την τιμή Αληθής ή Ψευδής. Για την σύνταξη μιας λογικής έκφρασης χρησιμοποιούνται οι συγκριτικοί τελεστές:

>          Μεγαλύτερο

>=       Μεγαλύτερο ή ίσο

<          Μικρότερο

<=       Μικρότερο ή ίσο

!=        Διάφορο

==       Ισότητα

 

Τελεστές λογικών πράξεων: not, or, and, με τις ακόλουθες λογικές λειτουργίες

P

Q

P and Q

P or Q

Not P

ΑΛΗΘΗΣ

ΑΛΗΘΗΣ

ΑΛΗΘΗΣ

ΑΛΗΘΗΣ

ΨΕΥΔΗΣ

ΑΛΗΘΗΣ

ΨΕΥΔΗΣ

ΨΕΥΔΗΣ

ΑΛΗΘΗΣ

ΨΕΥΔΗΣ

ΨΕΥΔΗΣ

ΑΛΗΘΗΣ

ΨΕΥΔΗΣ

ΑΛΗΘΗΣ

ΑΛΗΘΗΣ

ΨΕΥΔΗΣ

ΨΕΥΔΗΣ

ΨΕΥΔΗΣ

ΨΕΥΔΗΣ

ΑΛΗΘΗΣ

 

Π.χ.

a>=10                   2. b!=0                 3. (a<10) and (b<0)

 

Εργασία 48_3a_epilogh

Να υπολογιστεί ο μεγαλύτερος δύο ακέραιων αριθμών που δίνονται από το πληκτρολόγιο.

 

      1. Ανοίξτε την Python: Έναρξη > Όλα τα προγράμματα > Python > IDLE (Python GUI)
      2. Ανοίξτε ένα νέο αρχείο στο συντάκτη Python:  File > New File ή τον αντίστοιχο συνδυασμό πλήκτρων.
      3. Πληκτρολογήστε το ως πρώτη εντολή το ονοματεπώνυμό σας με τη μορφή επεξηγηματικού σχολίου: #Ονοματεπώνυμο.

Στη συνέχεια πληκτρολογήστε το παρακάτω πρόγραμμα.

Η ενσωματωμένη συνάρτηση  int(...) στις εντολές, x=int(input("Δώσε τον 1ο ακέραιο αριθμό ")) και y=int(input("Δώσε τον 2ο ακέραιο αριθμό ")) μας υποχρεώνει να εισάγουμε ακέραιο αριθμό

Προσοχή στην 4η εντολή (max = y), που έχει εσοχή, γιατί είναι εντολή που ανήκει στο μπλόκ των εντολών της if. Επίσης στην  εντολή if max > y: , η άνω και κάτω τελεία είναι μέρος της σύνταξης της εντολής. Επίσης παρατηρήστε ότι το μπλόκ των εντολών της  if, τελειώνει εκεί που αρχίζει η εντολή : print "Μεγαλύτερος ο ",max, γιατί η εσοχή της είναι μικρότερη από την εσοχή των εντολών της if (στην προκειμένη περίπτωση της  εντολής   max=y.

x=int(input("Δώσε τον 1ο ακέραιο αριθμό "))

y=int(input("Δώσε τον 2ο ακέραιο αριθμό "))

max=x

if max<y:

   max=y

print "Μεγαλύτερος ο ",max

      1. Εκτελέστε διαδοχικά το πρόγραμμα για τα ζεύγη τιμών (3, 5), (4, 3) και (-1, -3).
      2. Προσδιορίστε τι ακριβώς κάνει το πρόγραμμα.
      3. Προσθέστε μια εντολή ως σχόλιο, με τον τίτλο του προγράμματος,  που να προσδιορίζει τη λειτουργία του προγράμματος
      4. Προσθέστε μετά μια εντολή που να φαίνεται το ονοματεπώνυμό σας.
      5. Αποθηκεύστε πρόγραμμα με όνομα “ergasia_ 48_3α_epilogh.py ”.
      6. Κλείσιμο του συντάκτη: επιλέγετε από το μενού: File > Close ή File > Exit 

Εργασία 48_3b_epilogh

 Μελετήστε το παρακάτω πρόγραμμα.

      1. Εκτελέστε το παρακάτω πρόγραμμα της Python, διαδοχικά για τις τιμές 4, την 11, την 13, την 16, την 18, την 20 και την 23;
      2. Τι πιστεύετε ότι κάνει;

 

test = input('Παρακαλώ δώσε το βαθμό που πήρες από το τεστ:')

if test<=20:

    if test>= 18:

        print 'ΑΡΙΣΤΑ'

    else:

           if test >= 15:

                print 'ΚΑΛΑ'

           else:

                if test >= 10:

                      print 'ΜΕΤΡΙΟΣ'

                else:

                     print 'ΑΠΟΡΡΙΠΤΕΤΑΙ'

else:

               print "Ο βαθμός που έδωσες είναι μεγαλύτερος του είκοσι"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 4. Τροποποιήστε το πρόγραμμα, ώστε αντί της εμφωλευμένης if ... else...if να χρησιμοποιήσετε την σύνθετη if... elif...elif...else... (χωρίς χρήση λογικών τελεστών π.χ.) and και αποθηκεύστε το με το όνομα “ergasia_ 48_3b_epilogh.py ”. Προσοχή στις εσοχές (απόσταση από τα αριστερά) για κάθε μπλοκ εντολών. Οι εντολές ενός μπλόκ είναι πιο δεξιά και με την ίδια εσοχή, όπως στον κώδικα που σας δίνεται στην εκφώνηση.

* για βοήθεια δείτε το παράδειγμα 3 του πίνακα από τη θεωρία ή το παρακάτω παράδειγμα το οποίο βρίσκει το μεγαλύτερο μεταξύ δύο δοθέντων αριθμών ή αν είναι ίσοι. Οι τρείς περιπτώσεις είναι ισοδύναμες. Στην περίπτωση Α, για τους ελέγχους χρησιμοποιούνται διαδοχικά if, ένα μετά το άλλο. Στη δεύτερη ισοδύναμη περίπτωση χρησιμοποιούνται εμφωλευμένα if...else, το ένα μέσα στο άλλο, μέσα στο πρώτο (μετά το else της πρώτης if), μπαίνει το δεύτερο if...else (με τα κόκκινα γράμματα). Αυτή είναι και η δομή if..., των δεδομένων της εκφώνησης. Στην τρίτη ισοδύναμη περίπτωση, το ίδιο πρόγραμμα (εύρεση του μεγαλύτερου μεταξύ δύο δοθέντων αριθμών), υλοποιείται με την ισοδύναμη της if...else την if...elif...else, που είναι και δομή που πρέπει να έχουν οι if... στο πρόγραμμα που επιλύει την άσκηση. 

Περίπτωση Α με διαδοχικά if

a=input("Δώσε τον πρώτο αριθμό:")
b=input("Δώσε το δεύτερο αριθμό:")
if (a>b):
    print (a)
if (a<b):
    print(b)
if (a == b):
    print 'equals'

Περίπτωση Β με εμφωλευμένη if

a=input("Δώσε τον πρώτο αριθμό:")
b=input("Δώσε το δεύτερο αριθμό:")
if (a>b):
    print(a)
else:
    if (a<b):
        print(b)
    else:
        print 'equals'

Περίπτωση Γ με if...elif...

a=input("Δώσε τον πρώτο αριθμό:")
b=input("Δώσε το δεύτερο αριθμό:")

if (a>b):
    print(a)
elif(a<b):
     print(b)
else:
     print  'equals'

 Σας υπενθυμίζω ότι για να εμφανίζονται τα μηνύματα στην ελληνική γλώσσα από τον editor πρέπει: File > Options > Configure IDLE > General (από το παράθυρο Settings που ανοίγει)  > Utf-8 > Apply > OK..Αν η επιλογή είναι ενεργοποιημένη και κάποιο αποτέλεσμα-μήνυμα στα ελληνικά, δεν εμφανίζεται  στο SHELL, κάνετε  τη  διαδικασία:  File > Options > Configure IDLE > General (από το παράθυρο Settings που ανοίγει)  > None > Apply > OK και πάλι από την αρχή File > Options > Configure IDLE > General (από το παράθυρο Settings που ανοίγει)  > Utf-8 > Apply > OK. Αν και πάλι έχετε πρόβλημα γράψτε το αποτέλεσμα-μήνυμα(στην αντίστοιχη εντολή στο πρόγραμμα) με λατινικούς χαρακτήρες (greeklish). Π.χ. αντί για print 'ΑΡΙΣΤΑ', γράψτε print 'ARISTA'.

Υπενθυμίζω ότι τα εισαγωγικά μπορεί να είναι είτε μονά είτε διπλά. Πολλές φορές η αντιγραφή επικόλληση δεν πραγματοποιείται ορθά λόγω της διαφορετικής κωδικοποίησης από τον υπολογιστή που αντιγράφεται, αν και το κείμενο φαίνεται ίδιο. Στην περίπτωση αυτή πρέπει να ξαναπληκτρολογηθούν κάποιοι χαρακτήρες. Συνήθως αυτό συμβαίνει στα εισαγωγικά είτε είναι διπλά είτε μονά.

5.   Συμπιέστε τα αρχεία “ergasia_ 48_3b_epilogh.py” και ergasia_ 48_3a_epilogh.pyσε ένα αρχείο zip  με όνομαergasia_ 48_3_epilogh.zip και ανεβάστε το στο ΠΣΔ ή στο dropbox και στείλτε μας το σύνδεσμο που οδηγεί σε αυτό το αρχείο.