Η Γλώσσα Pascal Εντολή If Κεφάλαιο 10.1 © Βελώνης Γεώργιος
Εντολή If-THEN Η εντολή If της Pascal χρησιμοποιείται για την υλοποίηση της δομής επιλογής του δομημένου προγραμματισμού. Μπορούμε δηλαδή να εκτελέσουμε επιλεκτικά κάποιες εντολές ανάλογα με την τιμή μιας λογικής παράστασης. Η γενική της σύνταξη είναι η παρακάτω:
Εντολή If-THEN Ιf Λογική Έκφραση Then Εντολή; Σύνταξη Pascal Αν Λογική Έκφραση Αληθής Τότε Εντολή Τέλος_Αν Ψευδοκώδικας Λογικό Διάγραμμα Πρώτα υπολογίζεται η Λογική Έκφραση (Συνθήκη) και στην περίπτωση που η τιμή της είναι True εκτελείται το τμήμα της Then (Εντολή).
Εντολή If-THEN Παράδειγμα: Δίνεται από το πληκτρολόγιο ένας ακέραιος αριθμός και ζητείται να εμφανιστή στην οθόνη. Αν ο αριθμός είναι αρνητικός θα πρέπει πρώτα να μετατρέπεται σε θετικός. ….. Readln(x); If x<0 Then x:=-x; Writeln(‘Πληκτρολόγησες: ‘,x); Το τμήμα Else μιας εντολής If είναι προαιρετικό. Αυτό σημαίνει ότι μπορεί να παραλείπεται σε περιπτώσεις που δεν θέλουμε να γίνει καμία ενέργεια όταν δεν ισχύει η συνθήκη.
Εντολή If-THEN-ELSE Ιf Λογική Έκφραση Then Εντολή 1 Else Εντολή 2; Σύνταξη Pascal Αν Λογική Έκφραση Αληθής Τότε Εντολή 1 Αλλιώς Εντολή 2 Τέλος_Αν Λογικό Διάγραμμα Ψευδοκώδικας
Εντολή If-THEN-ELSE Πρώτα υπολογίζεται η Λογική Έκφραση (Συνθήκη) και στην περίπτωση που η τιμή της είναι True εκτελείται το τμήμα της Then (Εντολή 1), αλλιώς εκτελείται το τμήμα της Else (Εντολή 2). Και στις δύο περιπτώσεις η εκτέλεση του προγράμματος γίνεται με την εντολή που ακολουθεί την If. Στο παρακάτω παράδειγμα αν η τιμή της λογικής παράστασης (grade>=10) είναι True, θα εμφανιστεί το μήνυμα «Προάγεται» αλλιώς θα εμφανιστεί το μήνυμα «Απορρίπτεται».
Εντολή If-THEN-ELSE Παράδειγμα: …… Ιf grade>=10 Then WriteLN(‘Προάγεται’) Else WriteLN(‘Απορρίπτεται’); …….
Εντολή If-THEN-ELSE Μετά το Then ή το Else πρέπει να υπάρχει μία και μόνο εντολή. Στην περίπτωση που θέλουμε να εκτελούνται περισσότερες από μία εντολές, σε ένα ή και στα δύο τμήματα, πρέπει να χρησιμοποιήσουμε σύνθετες εντολές (Begin - End). Ιf grade>=10 Then Begin WriteLN(‘Προάγεται’); Success:=True; End { Όχι “;” } Else WriteLN(‘Απορρίπτεται’); Success:=False; End;
Εντολή If-THEN-ELSE Παρατηρείστε στα προηγούμενα παραδείγματα ότι το σύμβολο τέλους εντολής “;” τοποθετείται μόνο μία φορά στο τέλος της εντολής If, δηλαδή στην Εντολή 2 ή στην Εντολής 1 αν δεν υπάρχει τμήμα Else. Σε περιπτώσεις που έχουμε φωλιασμένα If, πρέπει να τοποθετήσουμε μόνο έναν χαρακτήρα τέλους εντολής στο τέλος της πρώτης If. Τα τμήματα Else αντιστοιχίζονται στην αμέσως προηγούμενη If, όπως φαίνεται στο διπλανό σχήμα.
Εντολή If-THEN-ELSE Σημείωση: Σε περίπτωση που μια Λογική Έκφραση περιέχει εκτός από πράξεις σύγκρισης και λογικές πράξεις (not, and, or, xor), τότε οι πράξεις σύγκρισης μπαίνουν μέσα σε παρενθέσεις, διαφορετικά οι παρενθέσεις δεν είναι υποχρεωτικές. Παράδειγμα: IF (x>=0) and (x<=20) Then writeln(‘Αριθμός εντός ορίων’) Else writeln(‘Αριθμός εκτός ορίων’);
Εντολή If-THEN-ELSE If συνθήκη 1 Then ........ Else {συνθήκη 3} Else {συνθήκη 2} If συνθήκη 4 Then Else {συνθήκη4} Else {συνθήκη 1} ……. Ιδιαίτερη προσοχή πρέπει να δοθεί σε περιπτώσεις φωλιασμένων If, όπου υπάρχει κάποια εντολή If χωρίς τμήμα Else. Σε αυτές τις περιπτώσεις απαιτείται χρήση σύνθετης εντολής για να καθοριστεί η σωστή εκτέλεση των εντολών .
Εντολή If-THEN-ELSE If A >= 10 Then Begin If A > 20 Then Writeln(‘Το A είναι μεγαλύτερο του είκοσι’); End Else Writeln(‘Το A είναι μικρότερο του δέκα’); Στο παραπάνω παράδειγμα ορίσαμε μία σύνθετη εντολή η οποία αποτελείται από μία μόνο εντολή If. Όμως η χρήση σύνθετης εντολής είναι αναγκαία για να λειτουργήσει σωστά το πρόγραμμα. Αν δεν χρησιμοποιούσαμε σύνθετη εντολή το τμήμα Else θα το αντιστοιχούσε ο Compiler στην δεύτερη εντολή If, με αποτέλεσμα να υπάρξει λογικό λάθος στο πρόγραμμα.
Το σύνθετο IF Ένας άλλος τρόπος σύνταξης της εντολής If είναι: IF συνθήκη-1 Then Begin Εντολές-Α; End ELSE IF συνθήκη-2 Then Εντολές-Β; ELSE Εντολές-Γ; End; Αν ισχύει η συνθήκη-1 θα εκτελεστούν οι εντολές-Α διαφορετικά αν ισχύει η συνθήκη-2 θα εκτελεστούν οι εντολές-Β διαφορετικά (αν δεν ισχύει καμία από τις συνθήκες 1 και 2) θα εκτελεστούν οι εντολές-Γ (εξ’ ορισμού περίπτωση).
Το σύνθετο IF Παράδειγμα : Ακολουθεί ένα πρόγραμμα το οποίο διαβάζει από το πληκτρολόγιο δύο αριθμούς Α και Β, τους συγκρίνει και εμφανίζει αντίστοιχο μήνυμα. Program Comp; Var A,B : Integer; Begin Write('Δώσε τον αριθμό Α : '); ReadLN(A); Write('Δώσε τον αριθμό B : '); ReadLN(B); If (A > B) Then WriteLN('Ο Α είναι μεγαλύτερος του B') Else If (A < B) Then WriteLN('Ο Α είναι μικρότερος του B') WriteLN('Οι αριθμοί Α και Β είναι ίσοι '); End.
Βιβλιογραφία Σημειώσεις Πετρίδη Συμεών – Καθηγητής Πληροφορικής ΠΕ20 – ΕΠΑΛ Νάουσας