Εντολές επιλογής Επαναλήψεις (if, switch, while)

Σχετικά έγγραφα
ΗΥ-150. Προγραμματισμός

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Πληροφορική ΙΙ Θεματική Ενότητα 5

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

οµές Επιλογής Εντολές if και switch

Δομές ελέγχου ροής προγράμματος

Στόχοι και αντικείμενο ενότητας. Βασικές κατασκευές ΓΠ. Έλεγχος ροής προγράμματος. #4.. Εντολές Επιλογής

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Εισαγωγή στον Προγραμματισμό

ιαδικαστικός Προγραμματισμός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Θέματα Προγραμματισμού Η/Υ

Πληροφορική ΙΙ Θεματική Ενότητα 6

Οι εντολές ελέγχου της ροής ενός προγράμματος.

8. Συνθήκες ελέγχου, λογικοί τελεστές

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

Διαδικασιακός Προγραμματισμός

Παίρνοντας Αποφάσεις 1

Δομημένος Προγραμματισμός (ΤΛ1006)

Διάλεξη 5η: Εντολές Επανάληψης

Διαδικασιακός Προγραμματισμός

Ανάπτυξη και Σχεδίαση Λογισμικού

Δομημένος Προγραμματισμός

Η γλώσσα προγραμματισμού C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Υπολογισμός - Εντολές Ελέγχου

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Προγραμματισμός Ι (HY120)

Η γλώσσα προγραμματισμού C

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Προγραμματισμό για ΗΜΥ

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Εντολές ελέγχου ροής if, for, while, do-while

Προγραμματισμός Η/Υ (ΤΛ2007 )

Ηλεκτρονικοί Υπολογιστές

Δομές Ελέγχου και Επανάληψης

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07

Προγραμματισμός Ι (ΗΥ120)

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Πληροφορική. Ενότητα 4: Α. Λογικές εκφράσεις (Παραστάσεις και Δείκτες). Β. Δομές Προγραμματισμού. Κωνσταντίνος Καρατζάς Τμήμα Μηχανολόγων Μηχανικών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

Δομημένος Προγραμματισμός

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΔΟΜΗ ΕΠΙΛΟΓΗΣ. Οι διάφορες εκδοχές της

Ηλεκτρονικοί Υπολογιστές

Βασικές Έννοιες Αλγορίθμων. Βασικές Εντολές Αλγορίθμων (Κεφ. 2ο Παρ. 2.4)

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Προγραμματισμός Ι (HY120)

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Γλώσσα Προγραμματισμού C

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Διαδικασιακός Προγραμματισμός

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Βασικά Στοιχεία της Java

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

true (1) αν και οι δύο είσοδοι είναι true (1) true (1) αν τουλάχιστον μια είσοδος είναι true (1)

Αντικειμενοστρεφής Προγραμματισμός

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Υπολογισμός - Εντολές Επανάληψης

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επιλογής. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Transcript:

Εντολές επιλογής Επαναλήψεις (if, switch, while) Οι σημειώσεις αυτές έχουν σαν στόχο την μάθηση εντολών επιλογής (if, switch, while) που ελέγχουν τη ροή εκτέλεσης ενός προγράμματος. Πρώτα όμως, είναι αναγκαίο να περιγραφούν συνθήκες και λογικές εκφράσεις οι οποίες έχουν άμεση σχέση με τις εντολές αυτές. Συνθήκες Ένα πρόγραμμα επιλέγει μεταξύ εναλλακτικών δηλώσεων ελέγχοντας τη τιμή μεταβλητών. Για παράδειγμα, η πιο κάτω πρόταση: αν ο γενικός βαθμός ενός φοιτητή σε ένα εξάμηνο είναι πέντε και άνω, τότε ο φοιτητής έχει επιτύχει, διαφορετικά έχει αποτύχει περιλαμβάνει την ακόλουθη έκφραση: γενικός βαθμός ενός φοιτητή σε ένα εξάμηνο >=πέντε η οποία συγκρίνει τον γενικό βαθμό και αποτιμεί σε 1 (true) όταν ο γενικός βαθμός είναι μεγαλύτερος ή ίσος του πέντε, ή σε 0 (false) όταν ο γενικός βαθμός δεν είναι μεγαλύτερος του πέντε. Τέτοια έκφραση ονομάζεται συνθήκη η οποία είναι είτε αληθής είτε ψευδής. Αν είναι αληθής τότε θα εκτελεστεί μια ομάδα εντολών, διαφορετικά αν είναι ψευδής η ομάδα εντολών θα αγνοηθεί και δε θα εκτελεστεί. Τελεστές Τελεστής Έννοια < Μικρότερο από > Μεγαλύτερο από <= Μικρότερο ή ίσο από >= Μεγαλύτερο ή ίσο από == Ίσο με!= Άνισο με Οι τελεστές μπορούν να εφαρμοστούν μεταξύ μεταβλητών, ή μεταξύ μεταβλητών και σταθερών τιμών. Μαρία Σταυρινού Ιωάννου 1

Λογικοί Τελεστές Με τους λογικούς τελεστές: && (and) (or)! (not) μπορούμε να δημιουργήσουμε πιο πολύπλοκες συνθήκες ή λογικές εκφράσεις. Πίνακας αληθείας τελεστή && (and) Τελεστέος Α Τελεστέος Β Α && Β 0 0 0 0 1 0 1 0 0 1 1 1 Πίνακας αληθείας τελεστή (or) Τελεστέος Α Τελεστέος Β Α Β 0 0 0 0 1 1 1 0 1 1 1 1 Πίνακας αληθείας τελεστή! (not) Τελεστέος Α!A 0 1 1 0 Μαρία Σταυρινού Ιωάννου 2

Προτεραιότητες Τελεστής Προτεραιότητα Κλήση συνάρτησης Υψηλότερη! + - & (unary operators) * / % + - < <= >= > ==!= && = Χαμηλότερη Δήλωση if Η δήλωση if με μια εναλλακτική λύση έχει την εξής σύνταξη: if (συνθήκη) Αν η συνθήκη είναι αληθής, τότε οι εντολές μέσα στα θα εκτελεστούν. Αν είναι ψευδής οι εντολές αυτές θα αγνοηθούν και το πρόγραμμα θα συνεχίσει μετά το. Η δήλωση if με δύο εναλλακτικές λύσεις έχει την εξής σύνταξη: if (συνθήκη) else Μαρία Σταυρινού Ιωάννου 3

Αν η συνθήκη είναι αληθής, τότε οι εντολές μέσα στα πρώτα θα εκτελεστούν. Αν είναι ψευδής οι εντολές αυτές θα αγνοηθούν και το πρόγραμμα θα εκτελέσει τις εντολές που βρίσκονται μέσα στα δεύτερα. Στο παράδειγμα που είδαμε πιο πάνω, η πρόταση: αν ο γενικός βαθμός ενός φοιτητή σε ένα εξάμηνο είναι πέντε και άνω, τότε ο φοιτητής έχει επιτύχει, διαφορετικά έχει αποτύχει μεταφράζεται στη c ως εξής (δημιουργώντας τη μεταβλητή generalgrade): if ( generalgrade >= 5 ) printf( Epitixia ); else printf( Apotixia ); Nested if πολλαπλές εναλλακτικές αποφάσεις Μπορούμε να χρησιμοποιήσουμε δηλώσεις if οι οποίες να βρίσκονται μέσα σε άλλες δηλώσεις if για απεικόνιση πολλαπλών εναλλακτικών αποφάσεων. Πιο κάτω δίνεται ένα παράδειγμα: if (x > 0) num_pos = num_pos + 1; else if (x < 0) num_neg = num_neg + 1; else /* x ίσο με μηδέν */ num_zero = num_zer + 1; Επειδή τα nested if μπορούν να γίνουν πολύπλοκα, στις περιπτώσεις όπου κάθε ψευδής αποτίμηση (εκτός από την τελευταία) αποτελείται από μια δήλωση της μορφής if-then-else, τότε το nested if μπορεί να υλοποιηθεί με τον ακόλουθο τρόπο σύνταξης: Μαρία Σταυρινού Ιωάννου 4

if (συνθήκη) else if (συνθήκη). else if (συνθήκη) Συνεπώς, το προηγούμενο παράδειγμα υλοποιείται ως εξής: if (x > 0) num_pos = num_pos + 1; else if (x < 0) num_neg = num_neg + 1; else /* x ίσο με μηδέν */ num_zero = num_zer + 1; Τα δύο πιο πάνω παραδείγματα επιτυγχάνουν το ίδιο αποτέλεσμα. Το δεύτερο παράδειγμα όμως είναι το επιθυμητό, καθώς μειώνει σημαντικά την πολυπλοκότητα του κώδικα και τον κάνει πιο ευανάγνωστο. Μαρία Σταυρινού Ιωάννου 5

Nested if με περισσότερες από μια μεταβλητές Δίνεται το ακόλουθο παράδειγμα: if (marital_status == S ) if (gender == M ) if (age >= 18 && age <=26) printf( All criteria are met. ); Η εντολή printf θα εκτελεστεί μόνο αν όλες οι συνθήκες είναι αληθείς. Το πιο πάνω παράδειγμα μπορεί να γραφτεί και με τον εξής πιο απλό τρόπο κάνοντας χρήση μόνο ενός if: if ( (marital_status == S ) && (gender == M ) && (age >= 18) && (age <=26) ) printf( All criteria are met. ); Ο τρόπος αυτός έχει άμεση σχέση με τους λογικούς τελεστές που περιγράφηκαν προηγουμένως. Μαρία Σταυρινού Ιωάννου 6

Switch Το switch είναι ένας άλλος τρόπος επιλογής μιας μεταξύ πολλών εναλλακτικών αποφάσεων. Είναι ιδιαίτερα χρήσιμο στις περιπτώσεις που η επιλογή είναι βασισμένη στη τιμή μιας συγκεκριμένης μεταβλητής ή μιας έκφρασης (controlling expression). Η τιμή της έκφρασης μπορεί να είναι του τύπου int ή char, αλλά όχι double. Η σύνταξη του switch έχει ως εξής: switch (controlling expression) case τιμή : case τιμή : case τιμή : Default: Πιο κάτω δίνεται ένα παράδειγμα που υλοποιεί τον ακόλουθο πίνακα αποφάσεων: Ταυτότητα κατηγορίας Β ή b C ή c D ή d F ή f Κατηγορία Πλοίου Battleship Cruiser Destroyer Frigate Μαρία Σταυρινού Ιωάννου 7

switch (class) case B : case b : printf( Battleship ); case C : case c : printf( Cruiser ); case D : case d : printf( Destroyer ); case F : case f : printf( Frigate ); default: printf( Unknown ship class %c, class); Πιο πάνω, class είναι μια μεταβλητή τύπου char. Μαρία Σταυρινού Ιωάννου 8

Μελέτη Περίπτωσης Να γραφτεί ένα πρόγραμμα σε C στο οποίο ο χρήστης θα καταχωρεί τρεις αριθμούς που αντιπροσωπεύουν βαθμούς σε μαθήματα. Οι τρεις αριθμοί έχουν πεδίο τιμών από 1 μέχρι και 100. Ακολούθως, το πρόγραμμα θα υπολογίζει το μέσο όρο τους και θα τυπώνει το τελικό βαθμό με βάση τα πιο κάτω κριτήρια: Αν ο μέσος όρος βρίσκεται μεταξύ: 86-100 Τύπωσε το χαρακτήρα Α. 65-85 Τύπωσε το χαρακτήρα Β. 50-64 Τύπωσε το χαρακτήρα C. 25-49 Τύπωσε το χαρακτήρα D. 1-24 Τύπωσε το χαρακτήρα E. Το πρόγραμμα να κάνει επίσης έλεγχο για την ορθότητα των βαθμών που δίνονται από το χρήστη. Σε περίπτωση που ο χρήστης δώσει βαθμό έξω από το πεδίο τιμών 1 100, θα τυπώνεται μήνυμα λάθους και θα επιτρέπει στο χρήστη να δώσει νέο βαθμό. Μαρία Σταυρινού Ιωάννου 9