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



Σχετικά έγγραφα
Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

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

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

Εισαγωγή στον δομημένο προγραμματισμό

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

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

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

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

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

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

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

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

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

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

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

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

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

Μεθόδων Επίλυσης Προβλημάτων

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

for for for for( . */

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

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

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

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

Δομές ελέγχου & επανάληψης

Εισαγωγή στην πληροφορική

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

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

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Κεφάλαιο : Επαναλήψεις (for, do-while)

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

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

9. Εντολές επανάληψηςκαι η εντολή

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

10. Εντολές επανάληψηςκαι οι εντολές

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

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

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

Προγραμματισμός I (Θ)

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

Transcript:

Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013

Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις πρέπει να μπορεί να παίρνει και αποφάσεις. Για παράδειγμα ένα πρόγραμμα που εκτυπώνει τους επιτυχόντες τους μαθήματος σε μία λίστα πρέπει να διαβάζει τον βαθμό κάθε φοιτητή και να μπορεί να ελέγξει εάν αυτός ο βαθμός είναι μεγαλύτερος ή ίσος του 5. Χαροκόπειο Πανεπιστήμιο 2/37

Σχεσιακοί Τελεστές και Ισότητας Η γλώσσα C δεν παρέχει κάποιο συγκεκριμένο τύπο που να παίρνει τις τιμές ή αλλά χρησιμοποιεί τις τιμές 0 και 0 για να αναπαραστήσει αυτές τις τιμές. Χαροκόπειο Πανεπιστήμιο 3/37

Σχεσιακοί Τελεστές και Ισότητας Οι τελεστές ισότητας και οι σχεσιακοί τελεστές μας επιτρέπουν να κάνουμε συγκρίσεις και να παίρνουμε ως αποτέλεσμα μία τιμή 1 ή 0 ( ή ) την οποία μπορούμε μετά να χρησιμοποιήσουμε για να εκτελέσουμε διαφορετικές εντολές. Χαροκόπειο Πανεπιστήμιο 4/37

Σχεσιακοί Τελεστές και Ισότητας τελεστής κώδικας σε C αποτέλεσμα συνθήκης > x > y 1 ( ) εάν x > y, αλλιώς 0 ( ) < x < y 1 ( ) εάν x < y, αλλιώς 0 ( ) >= x >= y 1 ( ) εάν x y, αλλιώς 0 ( ) <= x <= y 1 ( ) εάν x y, αλλιώς 0 ( ) == x == y 1 ( ) εάν x = y, αλλιώς 0 ( )!= x!= y 0 ( ) εάν x = y, αλλιώς 1 ( ) Οι τελεστές αυτοί εκτελούνται από αριστερά προς τα δεξιά και έχουν μικρότερη προτεραιότητα από τους αριθμητικούς. Χαροκόπειο Πανεπιστήμιο 5/37

Προτεραιότητα Τελεστών Ο τρόπος υπολογισμού μιας έκφρασης εξαρτάται από την προτεραιότητα των τελεστών:.1 παρενθέσεις: (), expr++, expr Υπολογίζονται πρώτα, από τα αριστερά προς τα δεξιά. Εάν υπάρχουν ένθετες υπολογίζονται πρώτα οι εσωτερικές..2 μοναδιαίοι αριθμητικοί τελεστές: +,, ++expr ή expr Υπολογίζονται από δεξιά προς τα αριστερά..3 πολλαπλασιασμός, διαίρεση και υπόλοιπο:, /, ή % Υπολογίζονται δεύτερα από αριστερά προς τα δεξιά..4 πρόσθεση, αφαίρεση: + ή Εάν υπάρχουν πολλοί, υπολογίζονται από τα αριστερά προς τα δεξιά..5 Σχεσιακοί: <, >, <=, >= Υπολογίζονται από τα αριστερά προς τα δεξιά..6 Ισότητας: ==,! = Υπολογίζονται από τα αριστερά προς τα δεξιά..7 εκχώρησης: =, + =, =, =, / =, % = Από δεξιά προς τα αριστερά. Χαροκόπειο Πανεπιστήμιο 6/37

Απόφαση στην C Η δομή if 1 int main ( ) { 2 int grade ; 3 4 grade = 8 ; 5 6 if ( grade >= 5) 7 printf ( "PASS\n" ) ; 8 } Μας επιτρέπει να εκτελούμε κάποιες εντολές ή όχι ανάλογα με μία συνθήκη που εξαρτάται από τις τιμές κάποιων σταθερών και κάποιων μεταβλητών. Χαροκόπειο Πανεπιστήμιο 7/37

Απόφαση στην C Η δομή if Η δομή if δέχεται ως συνθήκη οποιαδήποτε παράσταση επιστρέφει έναν ακέραιο. Εάν αυτός ο ακέραιος είναι διάφορος του 0 τότε εκτελεί τις γραμμές που ακολουθούν, εάν είναι 0 δεν τις εκτελεί. 1 int main ( ) { 2 int grade ; 3 4 grade = 8 ; 5 6 if ( grade >= 5) { 7 printf ( "grade = %d ", grade ) ; 8 printf ( "(PASS)\n" ) ; 9 } 10 } Μπορούμε να εκτελέσουμε παραπάνω από μία εντολές. Χαροκόπειο Πανεπιστήμιο 8/37

Παράδειγμα 1 #include <stdio. h> 2 3 int main ( ) { 4 int num1, num2 ; 5 6 printf ( "Enter two integers\n" ) ; 7 scanf ( "%d%d", &num1, &num2 ) ; 8 9 if ( num1 == num2 ) 10 printf ( "%d is equal to %d\n", num1, num2 ) ; 11 12 if ( num1!= num2 ) 13 printf ( "%d is not equal to %d\n", num1, num2 ) ; 14 15 if ( num1 < num2 ) 16 printf ( "%d is less than %d\n", num1, num2 ) ; 17 18 if ( num1 > num2 ) 19 printf ( "%d is greater than %d\n", num1, num2 ) ; 20 21 if ( num1 <= num2 ) 22 printf ( "%d is less than or equal to %d\n", num1, num2 ) ; 23 24 if ( num1 >= num2 ) 25 printf ( "%d is greater than or equal to %d\n", num1, num2 ) ; 26 } Χαροκόπειο Πανεπιστήμιο 9/37

Προσοχή: Τελεστής Εκχώρησης σε if Προσοχή θέλει όταν χρησιμοποιούμε τον τελεστή ισότητας, ώστε να μην γράψουμε καταλάθος την ίδια έκφραση αλλά με τον τελεστή εκχώρησης. 1 if ( x == 5) { 2 / * code t o be executed * / 3 } και όχι 1 if ( x = 5) { 2 / * code t o be executed * / 3 } Αφού όπως είπαμε το x=5 επιστρέφει την τιμή 5 η οποία είναι διάφορη του μηδενός και άρα αληθής. Άρα το δεύτερο πρόγραμμα εκτελεί το if πάντα ανεξάρτητα από την τιμή του x. Χαροκόπειο Πανεπιστήμιο 10/37

Αλγόριθμοι και Ψευδοκώδικας Ένας αλγόριθμος είναι μία μέθοδος επίλυσης κάποιου προβλήματος χρησιμοποιώντας ένα πεπερασμένο αριθμό βημάτων. Χαροκόπειο Πανεπιστήμιο 11/37

Δομές Ελέγχου Σε μία δομημένη γλώσσα προγραμματισμού χρησιμοποιούμε τους παρακάτω μηχανισμούς για να υλοποιήσουμε αλγορίθμους:.1 σειριακή δομή.2 δομή επιλογής.3 δομή επανάληψης Χαροκόπειο Πανεπιστήμιο 12/37

Δομές Ελέγχου Σε μία δομημένη γλώσσα προγραμματισμού χρησιμοποιούμε τους παρακάτω μηχανισμούς για να υλοποιήσουμε αλγορίθμους:.1 σειριακή δομή στην γλώσσα C οι εντολές εκτελούνται η μία μετά την άλλη (σειριακά) όπως δίνονται στον πηγαίο κώδικα..2 δομή επιλογής.3 δομή επανάληψης Χαροκόπειο Πανεπιστήμιο 12/37

Δομές Ελέγχου Σε μία δομημένη γλώσσα προγραμματισμού χρησιμοποιούμε τους παρακάτω μηχανισμούς για να υλοποιήσουμε αλγορίθμους:.1 σειριακή δομή.2 δομή επιλογής πολλές φορές όμως θέλουμε να μπορούμε να επιλέξουμε ποιος κώδικας θα εκτελεστεί, για αυτό η γλώσσα C μας παρέχει την λειτουργία if-then-else..3 δομή επανάληψης Χαροκόπειο Πανεπιστήμιο 12/37

Δομές Ελέγχου Σε μία δομημένη γλώσσα προγραμματισμού χρησιμοποιούμε τους παρακάτω μηχανισμούς για να υλοποιήσουμε αλγορίθμους:.1 σειριακή δομή.2 δομή επιλογής.3 δομή επανάληψης είναι άλλες φορές που θέλουμε να επαναλάβουμε τα ίδια βήματα πολλές φορές. H γλώσσα C παρέχει διάφορες δομές επανάληψης, όπως for, do..while. Χαροκόπειο Πανεπιστήμιο 12/37

if/then/else 1 if ( / * boolean expression * / ) { 2 / * code t o be executed i f t r u e * / 3 } 4 else { 5 / * code t o be executed i f f a l s e * / 6 } Το else είναι προαιρετικό... Χαροκόπειο Πανεπιστήμιο 13/37

Παράδειγμα if/then/else 1 int main ( ) { 2 float grade = 6. 5 ; 3 4 if ( grade >= 5. 0 ) { 5 printf ( "PASSED!" ) ; 6 } 7 else { 8 printf ( "FAILED!" ) ; 9 } 10 } Χαροκόπειο Πανεπιστήμιο 14/37

Ένθετα if/then/else Οι δομές επιλογής μπορούν φυσικά να είναι και ένθετες πράγμα που μας επιτρέπει να έχουμε μεγαλύτερο έλεγχο πάνω στις εντολές που θα εκτελεστούν. 1 int main ( ) 2 { 3 float grade = 6. 5 ; 4 5 if (grade >= 5. 0 ) { 6 printf ( "PASSED!" ) ; 7 if (grade >= 8. 5 ) 8 printf ( " with distinction!!" ) ; 9 printf ( "\n" ) ; 10 } 11 else { 12 printf ( "FAILED!\n" ) ; 13 } 14 } Χαροκόπειο Πανεπιστήμιο 15/37

Τελεστής Συνθηκών Ο μοναδικός τριαδικός τελεστής στη C σχετίζεται στενά με την δομή if/then/else. boolean expression? value if true : value if false Έχει 3 τελεστές:.1 μία συνθήκη.2 η τιμή για την έκφραση εάν η συνθήκη είναι αληθής.3 η τιμή για την έκφραση εάν η συνθήκη είναι ψευδής Χαροκόπειο Πανεπιστήμιο 16/37

Τελεστής Συνθηκών 1 int main ( ) 2 { 3 float grade ; 4 5 printf ( "Enter your grade\n" ) ; 6 scanf ( "%f", &grade ) ; 7 8 printf ( "%s\n", grade >= 5.0? "Passed" : "Failed" ) ; 9 } ή 1 int main ( ) { 2 float grade ; 3 4 printf ( "Enter your grade\n" ) ; 5 scanf ( "%f", &grade ) ; 6 7 if (grade >= 5. 0 ) 8 printf ( "Passed\n" ) ; 9 else 10 printf ( "Failed\n" ) ; 11 } Χαροκόπειο Πανεπιστήμιο 17/37

Δομή Επανάληψης while Η δομή επανάληψης while επιτρέπει στον προγραμματιστή να εκτελέσει κάποιες γραμμές κώδικα επαναληπτικά όσο μία συγκεκριμένη συνθήκη παραμένει αληθής. 1 while ( condition ) { 2 / * code t o be executed i f c o n d i t i o n i s t r u e * / 3 } Χαροκόπειο Πανεπιστήμιο 18/37

Παράδειγμα while Εκτύπωση των αριθμών 0 έως 9 Θέλουμε να εκτυπώσουμε τους αριθμούς από 0 έως και 9 ένα αριθμό ανά γραμμή. 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i = 0 ; 5 6 while ( i < 10) { 7 printf ( "%d\n", i ) ; 8 i = i + 1 ; 9 } 10 } Χαροκόπειο Πανεπιστήμιο 19/37

Ατέρμων Βρόχος 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i = 0 ; 5 6 while ( i < 10) { 7 printf ( "%d\n", i ) ; 8 } 9 } Τι θα κάνει το παραπάνω πρόγραμμα; Χαροκόπειο Πανεπιστήμιο 20/37

Δομή Επανάληψης do/while Η δομή επανάληψης do/while είναι παρόμοια με την while αλλά εκτελείται πάντα τουλάχιστον μία φορά. 1 do { 2 / * code t o be executed * / 3 } while ( condition ) ; Προσοχή στο ερωτηματικό στο τέλος, είναι υποχρεωτικό! Χαροκόπειο Πανεπιστήμιο 21/37

Δομή Επανάληψης do/while Παράδειγμα 1 #include < s t d i o. h> 2 3 int main ( ) 4 { 5 int i = 0 ; 6 7 do { 8 printf ( "%d\n", i ) ; 9 } while(++i < 1 0 ) ; 10 } Χαροκόπειο Πανεπιστήμιο 22/37

Δομή Επανάληψης do/while Παράδειγμα 1 #include < s t d i o. h> 2 3 int main ( ) 4 { 5 const int SECRETCODE = 3313; 6 int code ; 7 8 do { 9 printf ( "Type the secret code to enter.\n" ) ; 10 scanf ( "%d", &code ) ; 11 } while ( code! =SECRETCODE ) ; 12 13 printf ( "Well done, you can now enter\n" ) ; 14 } Χαροκόπειο Πανεπιστήμιο 23/37

Δομή Επανάληψης for Η δομή επανάληψης for μας επιτρέπει να γράψουμε εύκολα επαναλήψεις με μετρητές, μιας και παρέχει χώρο για να γράψουμε την αρχικοποίηση και την αύξηση των μετρητών. 1 for ( initializations ; test conditions ; increment value ) { 2 / * block o f code t o be repeated * / 3 } Χαροκόπειο Πανεπιστήμιο 24/37

Δομή Επανάληψης for Παράδειγμα 1 for ( i = 0 ; i < 10; i++) { 2 printf ( "%d\n", i ) ; 3 } Χαροκόπειο Πανεπιστήμιο 25/37

Δομή Επανάληψης for Παράδειγμα Η συνθήκη μπορεί να είναι ανεξάρτητη από τις μεταβλητές του for. 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i, j ; 5 6 j = 0 ; 7 for ( i = 0 ; j < 10; i += 2) { 8 printf ( "i = %d, j = %d\n", i, j ) ; 9 j++; 10 } 11 } Χαροκόπειο Πανεπιστήμιο 26/37

Δομή Επανάληψης for Παράδειγμα Μπορούμε να έχουμε και πολλαπλές αρχικοποιήσεις, κ.τ.λ 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i, j ; 5 6 for ( i = 0, j = 0 ; j < 10; i += 2, j++) 7 printf ( "i = %d, j = %d\n", i, j ) ; 8 } Χαροκόπειο Πανεπιστήμιο 27/37

break Πολλές φορές μπορεί να χρειαστεί να σταματήσουμε πρόωρα την εκτέλεση ενός βρόγχου. 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i = 0 ; 5 6 while ( i < 100) { 7 printf ( "%d\n", i ) ; 8 if ( i >= 9) 9 break ; 10 i++; 11 } 12 13 printf ( "Due to break i should be 9: %s\n", ( i==9)?"yes" : "NO" ) ; 14 } Μπορούμε να χρησιμοποιήσουμε την break σε διάφορους βρόγχους. Χαροκόπειο Πανεπιστήμιο 28/37

continue Άλλες φορές θέλουμε να παραλείψουμε τις υπόλοιπες εντολές του βρόγχου και να συνεχίσουμε με την επόμενη επανάληψη. 1 #include < s t d i o. h> 2 3 int main ( ) { 4 int i, j ; 5 6 for ( i = 0, j = 0 ; i < 10; i++, j++) { 7 printf ( "j = %d\n", j ) ; 8 if ( i == 5) 9 continue ; 10 printf ( "i = %d\n", i ) ; 11 } 12 } Χαροκόπειο Πανεπιστήμιο 29/37

Διπλό Loop Πολλές φορές χρειάζεται να κάνουμε διπλό loop. 1 int main ( ) { 2 int i, j ; 3 for ( i = 0 ; i < 10; i++) { 4 for ( j = 0 ; j < 5 ; j++) { 5 printf ( "(%d,%d) ", i, j ) ; 6 } 7 printf ( "\n" ) ; 8 } 9 } Τι τυπώνει ο παραπάνω κώδικας; Χαροκόπειο Πανεπιστήμιο 30/37

Δομή Πολλών Επιλογών switch Υπάρχουν περιπτώσεις που το if/then/else και οι δύο περιπτώσεις που μας παρέχει δεν είναι αρκετές. 1 switch ( expression ) { 2 case value1 : 3 / * code i f value1 * / 4 break ; 5 case value2 : 6 / * code i f value2 * / 7... 8 default : 9 / * execute d e f a u l t a c t i o n * / 10 break ; 11 } η τιμή της έκφρασης πρέπει να είναι ακέραιος οι τιμές στο case πρέπει να είναι σταθερές Χαροκόπειο Πανεπιστήμιο 31/37

Δομή Πολλών Επιλογών switch Παράδειγμα 1 #include <stdio. h> 2 3 int main ( ) { 4 int acount = 0, bcount = 0 ; 5 char c ; 6 7 while ( ( c = getchar ( ) )!= EOF ) { 8 switch ( c ) { 9 case 'a' : 10 case 'A' : 11 acount++; 12 break ; 13 case 'b' : 14 case 'B' : 15 bcount++; 16 break ; 17 default : 18 break ; 19 } 20 } 21 printf ( "number of a: %d, number of b: %d\n", acount, bcount ) ; 22 } Χαροκόπειο Πανεπιστήμιο 32/37

Πολύπλοκες Συνθήκες (AND OR NOT) Η C μας παρέχει τους λογικούς τελεστές &&, και! για να μπορούμε να γράψουμε πιο πολύπλοκες συνθήκες ελέγχου. τελεστής σημασία παράδειγμα && λογικό AND x > 10 && x < 20 λογικό OR x <= 10 x >= 20! λογικό NOT!(x>10 && x < 20) Χαροκόπειο Πανεπιστήμιο 33/37

Παράδειγμα Πολύπλοκης Συνθήκης 1 / * 2 * A program t o count l e t t e r s i n i n p u t. 3 * / 4 #include < s t d i o. h> 5 6 int main ( ) { 7 int c ; 8 int count = 0 ; 9 10 while ( ( c = getchar ( ) )!= EOF ) 11 if ( ( c >= 'A' ) && ( c <= 'Z' ) 12 ( c >= 'a' ) && ( c <= 'z' ) ) 13 count++; 14 15 printf ( "%d letters\n", count ) ; 16 } Χαροκόπειο Πανεπιστήμιο 34/37

Προτεραιότητα Τελεστών Ο τρόπος υπολογισμού μιας έκφρασης εξαρτάται από την προτεραιότητα των τελεστών:.1 παρενθέσεις: (), expr++ ή expr Υπολογίζονται πρώτα, από τα αριστερά προς τα δεξιά. Εάν υπάρχουν ένθετες υπολογίζονται πρώτα οι εσωτερικές..2 μοναδιαίοι τελεστές: +,, ++expr, expr και! Υπολογίζονται από δεξιά προς τα αριστερά..3 πολλαπλασιασμός, διαίρεση και υπόλοιπο:, /, ή % Υπολογίζονται δεύτερα από αριστερά προς τα δεξιά..4 πρόσθεση, αφαίρεση: + ή Εάν υπάρχουν πολλοί, υπολογίζονται από τα αριστερά προς τα δεξιά..5 Σχεσιακοί: <, >, <=, >= Υπολογίζονται από τα αριστερά προς τα δεξιά..6 Ισότητας: ==,! = Υπολογίζονται από τα αριστερά προς τα δεξιά..7 λογικό AND: && Από αριστερά προς τα δεξιά..8 λογικό OR: Από αριστερά προς τα δεξιά..9 εκχώρησης: =, + =, =, =, / =, % = Από δεξιά προς τα αριστερά. Χαροκόπειο Πανεπιστήμιο 35/37

goto Η γλώσσα C μας παρέχει και μία δομή ελέγχου η οποία οδηγεί σε "spaghetti code", δηλαδή σε κώδικα που είναι δύσκολος να διαβαστεί. 1 #include <stdio. h> 2 3 int main ( ) { 4 int a = 1 ; 5 6 if ( a == 0) 7 goto test0 ; 8 else 9 goto test1 ; 10 11 test0 : 12 printf ( "a = 0\n" ) ; 13 return 0 ; 14 15 test1 : 16 printf ( "a = 1\n" ) ; 17 return 0 ; 18 19 } Χαροκόπειο Πανεπιστήμιο 36/37

goto Ότι μπορούμε να υλοποιήσουμε με την χρήση του goto μπορούμε να το υλοποιήσουμε και χωρίς, με την χρήση των άλλων δομών ελέγχου. Η ΧΡΗΣΗ ΤΟΥ goto ΑΠΑΓΟΡΕΥΤΑΙ Χαροκόπειο Πανεπιστήμιο 37/37