ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 4 Ο. Δομή επανάληψης Επανάληψη με συνθήκη Ατέρμονη επανάληψη Πίνακας ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

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

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ασκήσεις Επανάληψης

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

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

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

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

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

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

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

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

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

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

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

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

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

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

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

EΒ ΟΜΑ Α 4 Η. οµές επανάληψης while και do while

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

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

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

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 5 Εντολές Επανάληψης for while do while. Λαμπρινίδης Γεώργιος

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

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

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή

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

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

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

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

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

Ψευδοκώδικας. November 7, 2011

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

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

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

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

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

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

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

Transcript:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 4 Ο Δομή επανάληψης Επανάληψη με συνθήκη Ατέρμονη επανάληψη Πίνακας ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

Δομή επανάληψης Πολύ χρήσιμη δομή στον προγραμματισμό είναι η επανάληψη. Στην επανάληψη ένα σύνολο εντολών εκτελείται πολλές φορές ελέγχοντας σε κάθε κύκλο την ισχύ κάποιας συνθήκης ελέγχου. Υπάρχει βέβαια και ο ατέρμων βρόγχος επανάληψης που όπως λέει και το όνομά του δεν ολοκληρώνεται ποτέ. int i = 1; printf( "\nαριθμοσ\tτετραγωνο\tκυβοσ\n" ); i = i + 1; i = i + 1; i = i + 1; i = i + 1; int i; printf( "\nαριθμοσ\tτετραγωνο\tκυβοσ\n" ); for(i=1; i<=5; i=i+1) printf("%d\t%d\t\t%d\n",i, i*i,i*i*i); Τα δύο αυτά προγράμματα εμφανίζουν ακριβώςταίδιαστηνοθόνη, ωστόσο το δεύτεροείναιπολύπιοαπλό. Αυτό περιέχει την επανάληψη for ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 2

for(..) Η συνηθισμένη επανάληψη στην C υλοποιείται με την εντολή for. Η ακριβής σύνταξη της εντολής είναι : for( έκφραση1; έκφραση2; έκφραση3) εντολή/ες Η έκφραση1 αρχικοποιεί τον βρόγχο και ελέγχεται η ισχύς της έκφρασης πριν την πρώτη εκτέλεσή του. Μετά από κάθε κύκλο υπολογίζεται η έκφραση3 μεταβάλλοντας την τιμή της. Ο βρόγχος επαναλαμβάνεται για όσο ισχύει η συνθήκη της έκφρασης2. Ειδικά για την έκφραση3, όταν ο μετρητής του βρόγχου μεταβάλλεται κατά μία μονάδα μπορεί να αξιοποιηθεί η δυνατότητα της C, υποκατάστασης των τελεστών αύξησης και μείωσης ως εξής Επιθεματικά i++ αντιστοιχεί στο i=i+1 i-- αντιστοιχεί στο i=i-1 Προθεματικά ++i αντιστοιχεί στο i+1=i --i αντιστοιχεί στο i-1=i Επιθεματικά, πρώτα αυξάνεται (μειώνεται) ητιμήτουi και στη συνέχεια χρησιμοποιείται η νέα τιμή. Προθεματικά πρώτα χρησιμοποιείται η τιμή και κατόπιν μεταβάλλεται η τιμή του i. Ο βρόγχος τερματίζεται είτε γιατί διαψεύδεται η έκφραση2 είτε γιατί διακόπτεται ρητά η εκτέλεσή του με την εντολή break που συναντήσαμε και στην switch. Μπορεί επίσης με την εντολή continue να παραλείψει την εντολή/ες πηγαίνοντας στον επόμενο κύκλο μεριμνώντας βέβαια για τη συνθήκη. ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 3

while(..) Στην προηγούμενη δομή επανάληψης ο βρόγχος ολοκληρώνεται μετά από γνωστό αριθμό επαναλήψεων. Πολλές φορές όμως δεν είναι γνωστός ο αριθμός αυτός. Στην περίπτωση αυτή μπορεί να χρησιμοποιηθεί η επανάληψη με συνθήκη. Η σύνταξη της εντολής είναι: while(έκφραση) εντολή/ες Πρώτα ελέγχεται η έκφραση και αν είναι αληθής εκτελείται στη συνέχεια η εντολή ή οι εντολές. Αν εξ αρχής η έκφραση είναι ψευδής ο βρόγχος δεν εκτελείται ποτέ. Επομένως στο εσωτερικό του βρόγχου υπάρχει τρόπος που τροποποιεί τα στοιχεία της έκφρασης. #include <stdlib.h> int i=1; float a=100.; const int i=3; const float alim=1.e-10; int k=1,l=1; while(a>alim) a=a/(10*i*i-3*i+7); while(k!=i) printf("%10d%10.3e\n",i,a); k=rand()%10; i++; printf("%10d%10d\n",l, k); l++; ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 4

do-while Ηδομήdo-while είναι όπως η προηγούμενη με τη διαφορά ότι ο έλεγχος της λογικής έκφρασης γίνεται στο τέλος του βρόγχου και όχι στην αρχή του. Αυτό σημαίνει ότι εκτελείται οπωσδήποτε μία τουλάχιστον φορά. Η σύνταξη της εντολής είναι : do εντολή/ες while(έκφραση); int i=1; float a=0.5e-5; const float alim=1.e-10; do a=a/(10*i*i-3*i+7); printf("χρηση ΤΗΣ do %10d%10.3E\n",i,a); i++; while(a>alim); i=1; a=0.5e-5; while(a>alim) a=a/(10*i*i-3*i+7); printf("χρηση ΤΗΣ while %10d%10.3E\n",i,a); i++; ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 5

Ένθετοι βρόγχοι Πολλές φορές χρειάζεται να επαναληφθούν εντολές σε δύο η και περισσότερα επίπεδα. Τότε οι βρόγχοι επανάληψης που τις υλοποιούν χαρακτηρίζονται ως ένθετοι βρόγχοι. Οι ένθετοι αυτοί βρόγχοι μπορεί να είναι κάθε είδους από τους προηγούμενους. Μπορεί να χρησιμοποιούνται σε κάθε επίπεδο οποιοδήποτε από τα είδη αυτά. Ωστόσο θα έχουμε υπόψη ότι πρώτα ολοκληρώνεται ο πιο εσωτερικός βρόγχος και στη συνέχεια ο αμέσως επόμενος μέχρι τον πιο εξωτερικό. int i,j; for (i=6;i<=9;i++) printf("\n"); for (j=1; j<=10; j++) printf("%d X %d = %d\n", i, j, i*j); Στο διπλανό πρόγραμμα εμφανίζεται η προπαίδεια του 6,7,8 και 9. Αυτό επιτυγχάνεται με τις δυο for όπου η πρώτη i διατρέχει τους πιο πάνω αριθμούς ενώ η δεύτερη j σαρώνει από 1 μέχρι το 10. Η αξιοποίηση τέτοιων βρόγχων δίνει τη δυνατότητα χρήσης πολυδιάστατων πινάκων. ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 6

Ατέρμονας βρόγχος Ατέρμονας λέγεται ο βρόγχος που δεν ολοκληρώνεται ποτέ. Θα αναρωτηθεί καθείς αν είναι παθολογική κατάσταση ή αν είναι συνειδητή επιλογή. Ο Ατέρμονας βρόγχος με την for συντάσσεται ως εξής for( ; ; ).. Τέτοιος βρόγχος μπορεί να χρησιμοποιηθεί π.χ. για την ανάγνωση αρχείου του οποίου δεν είναι γνωστές οι γραμμές ή οι εγγραφές, για την διαρκή εκτέλεση μιας συνάρτησης ή διαδικασίας κ.λ.π. Μπορεί κανείς να εξέλθει από τον βρόγχο με την break; Σε εξαιρετική περίπτωση που χρειασθεί να διακοπεί βίαια μπορεί να χρησιμοποιηθεί ο συνδυασμός Ctrl + C. Δοκιμάστε το πιο κάτω πρόγραμμα int i; printf( "\nεισαι ΠΕΡΙΕΡΓΟΣ ΝΑ ΔΕΙΣ ΤΙ ΘΑ ΓΙΝΕΙ; ΝΑΙ=1 ΟΧΙ=2:\n" ); scanf("%d",&i); if (i!=1) printf( "\nδεν ΕΙΣΑΙ ΠΕΡΙΕΡΓΟΣ ΛΥΠΑΜΑΙ\n" ); else for( ; ; ) printf("η ΠΕΡΙΕΡΓΕΙΑ ΒΛΑΠΤΕΙ!!! ΤΩΡΑ ΠΕΡΙΜΕΝΕ ΤΟ Ctrl+C ΕΙΝΑΙ ΜΙΑ ΛΥΣΗ\n\n"); ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 7

Η έννοια του πίνακα Χρήση στην C Η έννοια του πίνακα αφορά σύνολο δεδομένων ιδίου τύπου στα οποία μπορεί να αναφερόμαστε με ένα κοινό όνομα ξεχωρίζοντάς τα με κατάλληλους δείκτες. Για παράδειγμα μπορούμε να καταχωρίζουμε την μέση θερμοκρασία των ημερών του χρόνου σε μια κοινή μεταβλητή την temp. Ωστόσο μπορούμε να ανακαλέσουμε την θερμοκρασία οποιασδήποτε ημέρας π.χ. της 35 ή της 251 κλπ. Η δήλωση μιας τέτοιας μεταβλητής γίνεται ως εξής : float temp[365]; Με τον τρόπο αυτό ορίζεται μια πραγματική μεταβλητή με 366 θέσεις από 0. 355. Για να καταχωρηθούν τιμές στις θέσεις του πίνακα μπορεί να γίνει με δομή επανάληψης που τις διατρέχει και σε κάθε θέση καταχωρεί, όπως και στην απλή μεταβλητή τις τιμές. Η πρόσβαση και αναφορά σε συγκεκριμένη θέση, ημέρα στο παράδειγμά μας, γίνεται με την κατάλληλη αναφορά στον δείκτη θέση του πίνακα. ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 8