Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο Ενότητα 5: Εντολές if και switch Διδάσκουσα: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Να κατανοήσει ο φοιτητής τις δομές επιλογής if & switch. 4
Περιεχόμενα Εντολή επιλογής if. Εναλλακτικός βρόχος επιλογής (if-else). Πολλαπλός βρόχος επιλογής (if - elseif - else). Εντολή επιλογής switch. Διαφορά switch και if. 5
Ειδικές εντολές Οι εντολές ενός προγράμματος εκτελούνται σειριακά η μία μετά την άλλη. Σε κάθε γλώσσα προγραμματισμού, υπάρχουν ειδικές εντολές που επηρεάζουν τη ροή ενός προγράμματος είτε για να σταματά η σειριακή ροή του προγράμματος και να συνεχίζεται η εκτέλεση από άλλο σημείο, είτε να επαναλαμβάνεται ένα τμήμα του προγράμματος περισσότερες από μια φορές. 6
Εντολή επιλογής: IF Με την εντολή if μπορούν να εκτελεστούν επί μέρους εντολές ανάλογα με συνθήκες που ικανοποιούνται. Βρόχος επιλογής (if): if συνθήκη <εντολές> end Οι εντολές μετά την if εκτελούνται όταν η συνθήκη είναι αληθής. 7
Εναλλακτικός βρόχος επιλογής if συνθήκη <εντολές1> else <εντολές2> end (if-else) Αν ικανοποιείται η συνθήκη εκτελούνται οι <εντολές1>, διαφορετικά εκτελούνται οι <εντολές2>. 8
Πολλαπλός βρόχος επιλογής if συνθήκη1 <εντολές1> elseif συνθήκη2 <εντολές2> elseif συνθήκη3 <εντολές3> else <εντολές> end (if - elseif - else) 9
1 ο Παράδειγμα Δίδεται η παρακάτω συνάρτηση. Να γραφούν οι εντολές που διαβάζουν μια τιμή του πεδίου ορισμού και υπολογίζουν την αντίστοιχη τιμή της συνάρτησης. f(x)= x + 12 αν x > 15 55 αν 15 < x 15 x + 3x αν x 15 10
1 ο Παράδειγμα_1 x=input('dose x='); if x>15 fx=x+12 elseif x>-15 && x<=15 fx=55 else fx=x+3*x end 11
2 ο Παράδειγμα συνάρτησης Να γραφεί συνάρτηση για τον υπολογισμό της αντίστασης δύο αντιστάσεων παράλληλα ή σε σειρά. Τα ορίσματα εκτός από τις δύο αντιστάσεις θα είναι και ένας χαρακτήρας που θα δηλώνει τον τρόπο σύνδεσης των αντιστάσεων. Στη συνέχεια να δημιουργηθεί m-file που θα καλεί την συνάρτηση. 12
Δημιουργία function file function [r] = olikiantistasi( r1,r2,c ) %ypologismos olikis antistasis if c=='s' r=r1+r2; else c=='p' r=r1*r2/(r1+r2); end 13
Δημιουργία script file r1=input('dose proti antistas='); r2=input('dose deyteri antistas='); c=input('dose tropo syndesis'); r=olikiantistasi(r1,r2,c); % καλείται το αρχείο συνάρτησης olikiantistasi fprintf('oliki antistasi=%f',r). 14
3 ο Παράδειγμα_1 Να γραφεί πρόγραμμα το οποίο υπολογίζει τις ρίζες μιας δευτεροβάθμιας εξίσωσης. (Θα πρέπει να ζητηθεί από το χρήστη τιμές για a,b,c να υπολογισθεί η διακρίνουσα και ανάλογα με την τιμή της διακρίνουσας να χρησιμοποιηθούν οι αντίστοιχοι τύποι υπολογισμού). 15
3 ο Παράδειγμα_2 % Ζητούνται από το χρήστη τιμές για a,b,c. a=input('dose a='); b=input('dose b='); c=input('dose c='); % υπολογισμός διακρίνουσας. d=b^2-4*a*c; % σύγκριση διακρίνουσας. 16
3 ο Παράδειγμα_3 if d>0 x1=(-b+sqrt(d)/(2*a)); x2=(-b-sqrt(d)/(2*a)); fprintf('x1=%f x2=%f',x1,x2) elseif d==0 x=-b/2*a; fprintf('dipli riza x=%f',x) else fprintf('rizes migadikes') end 17
Εντολή επιλογής: switch Η εντολή switch είναι η δεύτερη εντολή ελέγχου που διαθέτει το MatLab. Η εντολή switch μας δίνει τη δυνατότητα να επιλέξουμε για εκτέλεση μια ομάδα εντολών από άλλες πιθανές ομάδες όταν μια μεταβλητή ελέγχεται ως προς την ισότητα για πολλές τιμές της. 18
Διαφορά switch και if Η διαφορά της switch από την if είναι ότι με τη switch μπορούμε να επιλέξουμε τιμές μεταβλητών μόνο από συγκεκριμένο σύνολο τιμών, ενώ με την if μπορούμε να επιλέξουμε τιμές μεταβλητών είτε από συγκεκριμένο σύνολο τιμών (αν χρησιμοποιηθεί συνθήκη ισότητας) είτε από συνεχές σύνολο τιμών (αν χρησιμοποιηθεί συνθήκη ανισότητας). 19
Σύνταξη εντολής switch Εικόνα 1: Σύνταξη εντολής switch. Πηγή: Διδάσκουσα (2015). 20
4 ο Παράδειγμα Να γραφτούν οι εντολές που διαβάζουν έναν αριθμό που δίνει ο χρήστης από πληκτρολόγιο και υπολογίζουν την τιμή της συνάρτησης. Εικόνα 2: 4 ο Παράδειγμα. Πηγή: Διδάσκουσα (2015). 21
5 ο Παράδειγμα_1 Χρησιμοποιώντας την εντολή switch case να γραφεί m-file το οποίο υπολογίζει την τιμή αεροπορικού εισιτηρίου ανάλογα με τον προορισμό. Να δοθούν 4 πόλεις προορισμού. 22
5 ο Παράδειγμα_2 city=input( Δώσε πόλη προορισμού ); switch city case 'Rodos' disp(' Η τιμή του εισητηρίου είναι 110 ευρώ') case 'Athens' disp(' Η τιμή του εισητηρίου είναι 160 ευρώ') 23
5 ο Παράδειγμα_3 case 'Paris' disp(' Η τιμή του εισητηρίου είναι 140 ευρώ ') case 'London' disp(' Η τιμή του εισητηρίου είναι 180 ευρώ ) otherwise disp(' Δεν υπάρχει στον κατάλογο η συγκεκριμένη πόλη') end 24
Τέλος Ενότητας
Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Τσαγκαλίδου Ροδή. «Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: URL. 26
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 27
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 28