Eντολες Επαναληψης - Βροχοι (repetition and loops)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
Advertisements

Προγραμματισμός Ι Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες.
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Να καταργήσουμε τη ΓΛΩΣΣΑ και να κρατήσουμε μόνο την ψευδογλώσσα
Εισαγωγή στους Αλγόριθμους Ταξινόμησης
Εντολες Επιλογης (Selection)
ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ(ΒΡΟΧΟΙ)
Βρόχος με συνθήκη εισόδου στη C, οδηγούμενος από μετρητή: for
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Γενική μορφή προγράμματος Pascal
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό 1.4 Υλοποίηση Αλγορίθμου με υπολογιστή - Προγραμματισμός 1 Επιμέλεια: Τίκβα Χριστίνα.
Προγραμματισμός ΙΙ Διάλεξη #7: Περισσότερες Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Ενότητα Η Δομή Επανάληψης
ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΑΘΗΜΑ 4. ΑΚΟΛΟΥΘΙΑΚΗ ΕΚΤΕΛΕΣΗ ΠΡΟΤΑΣΕΩΝ ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n ΠΡΟΤΑΣΗ Α ΠΡΟΤΑΣΗ Β ΠΡΟΤΑΣΗ Γ ………………. ΠΡΟΤΑΣΗ n.
Προγραμματισμός Ι Προτάσεις επανάληψης - γενικά επαναλαμβάνουν ένα μπλοκ προτάσεωνΟι προτάσεις επανάληψης επαναλαμβάνουν ένα μπλοκ προτάσεων είτε για όσες.
1 Ολυμπιάδα Πληροφορικής Μάθημα 3. 2 Στόχοι μαθήματος Δομή Επανάληψης Εντολή while Εντολή for.
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Υποθετικός τελεστής Ο υποθετικός τελεστής (?:) αποτελείται από δύο σύμβολα. Ανήκει στην κατηγορία των τελεστών που αποτελούνται από συνδυασμό συμβόλων.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΒΡΟΧΟΙ ΜΑΘΗΜΑ 5. ΒΡΟΧΟΙΒΡΟΧΟΙ Ο Βρόχος (loop) αποτελείται από προτάσεις επανάληψης. Οι προτάσεις επανάληψης είναι οι προτάσεις που επαναλαμβάνουν ένα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
Eντολες Επαναληψης - Βροχοι (repetition and loops)
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Συγγραφείς Α.Βακάλη Η. Γιαννόπουλος Ν. Ιωαννίδης Χ.Κοίλιας Κ. Μάλαμας Ι. Μανωλόπουλος Π. Πολίτης Γ΄ τάξη.
Δομή επανάληψης Η δομή επανάληψης είναι μια ολοκληρωμένη πρόταση η οποία περικλείει μια συνθήκη και μια ομάδα εντολών, οι οποίες εκτελούνται, όσο ικανοποιείται.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Δομημένος Προγραμματισμός και Δομές.
Επανάληψη.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ ΓΛΩΣΣΑΣ PASCAL ΠΑΡΟΥΣΙΑΣΗ ΠΑΡΑΔΕΙΓΜΑΤΟΣ: ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΜΕ ΤΙΣ ΤΡΕΙΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ.
Η Δομή Επανάληψης οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες… Η παρουσίαση της εντολής Μέχρις_ότου είναι από την εισήγηση των κ. Σ. Δουκάκη.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Γλώσσα Προγραμματισμού LOGO
Μετατροπή Εκφράσεων σε C
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΜΑΘ3122/106 – Γλώσσα προγραμματισμού Επανάληψη.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Εντολές Επιλογής και Αποφάσεων
2/28/00epl-1311 Παραδειγματα Aλγοριθμων Αριθμος λεξεων που διαβαστηκαν απο εισοδο Εκτυπωση περιφερειας τετραγωνων με * Υπολογισμος exp(x,n) = 1 + x/1!
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 4: Επαναληπτικές δομές. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής. Τμήμα Μηχανικών.
Δομές Επανάληψης ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ.
Προτάσεις, εκφράσεις, τελεστές Βασικά στοιχεία ελέγχου προγράμματος
Τεχνολογία και Προγραμματισμός Υπολογιστών
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Αντικειμενοστραφής Προγραμματισμός Ι
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ
Άθλημα Πετοσφαίρισης Βογιατζή Ίριδα-Βοϊλα Έφη.
for (παράσταση_1; παράσταση_2; παράσταση_3)
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ «ΓΙΑ» Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της.
Ενότητα 5 : Δομές Ελέγχου της γλώσσας PHP Ιωάννης Τσούλος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Επανάληψη.
Δομημένος Προγραμματισμός - Κεφάλαιο 4 - Ανάπτυξη αλγορίθμων
Δομή Επιλογής Μάθημα 4ο Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τάξη Γ Οικονομίας & Πληροφορικής Θετικών Σπουδών 2ο Γενικό Λύκειο Αλιβερίου |
ΒΙΒΛΙΟ ΠΛΗΡΟΦΟΡΙΚΗΣ Σελίδες 2ο Κεφάλαιο - Παράγραφο 2.7 ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Javascript – Βασικά της γλώσσας
Από τη Δομή Επανάληψης Για στην Όσο
οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες…
Ιεραρχική σχεδίαση Καθορίζονται οι βασικές λειτουργίες σε ανώτερο επίπεδο και στη συνέχεια γίνεται διάσπαση σε όλο και μικρότερες λειτουργίες μέχρι το.
Από τη Δομή Ακολουθίας στις Δομές Επανάληψης
Δομές ροής προγράμματος
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
Μεταγράφημα παρουσίασης:

Eντολες Επαναληψης - Βροχοι (repetition and loops) while(){} for(){} do{ }while() τελεστες postfix/prefix (++, --, ...) και συνθετοι τελεστες break (εξοδος απο βροχο) break και continue βιβλιοθηκη

Δομες Ελεγχου Ενα προγραμμα αποτελειται απο Ακολουθιες πχ {εντολη;εντολη;…} Εκλογη πχ if(){} Επαναληψη πχ while{}

Χρηση Βροχων Για επαναληψη λειτουργικοτητας μετρητης (counter) επαναλαβε εαν μετρητης μικροτερος(μεγαλυτερος) μια τιμης σημαια (sentinel, flag) επανελαβε εαν διαφορο του EOF, -1 κτλ συνθηκη/ελεγχος (conditional) επαναλαβε εφοσον συνθηκη δεν ισχυει συνδυασμος (με χρηση λογικων τελεστων)

while Συνταξη: while (εκφραση) εντολη; while (εκφραση){ ….. }

while (συν) Σημασια: οσον η τιμη της εκφρασης (συνθηκης) ειναι διαφορη του μηδεν εκτελα τις εξαρτομενες εντολες αλλιως συνεχισε με τις εντολες που ακουλουθουν το while block

while με μετρητη int x; μεταβλητη που χρησιμοπoιειται για ελεγχο επαναληψης(control/ induction variable) int x; x=0; while(x<5){ printf(“%d\n”,x); ++x; } αρχικοποιηση συνθηκη επαναληψης ενημερωσης επομενο βημα

Tελεστες προ-σημειογραφική (prefix) μετα-σημειογραφική(postfix) ++i; <==> i = i + 1; --i; <==> i = i - 1; μετα-σημειογραφική(postfix) i++; <==> i = i + 1; i--; <==> i = i - 1;

Prefix vs Postfix i = 5; x = ++i; y = i++; x ειναι 6, y ειναι 6 και το i ειναι 7 Χρησιμοποιητε -- ++ σε απλες εκφρασεις

Συνθετοι Τελεστες Αναθεσης i+=k; <==> i = i + k; i*=k; <==> i = i * k; iop= k; <==> i = i op (k);

Shift/Bitwise Operators (appendix C) Δυαδικοι: & | ^ (and, or, exclusive-or) 0x0ffff & 0x0ffa0003 0x3 Μοναδιαιος: ~ (complement) ~ 0x0000ffff 0xffff0000 Shift Δυαδικοι: << >> (shift left, shift right) 5 >> 1 (101) 2 (10) 6<<2 (110) 24 (11000)

while με σημαια Aθροισμα σειρας απροσδιοριστου μεγεθους που τερματιζεται με 0 int number, sum=0; scanf(“%d”,&number); /* diabase prwto stoixeio */ while(number != 0){ /*sinthiki epanalipsis*/ sum +=number; /*sum=sum+number */ scanf(“%d”,&number); /* διαβασε επομενο στοιχειο */ } printf(“To athroisma tis seiras einai %d\n”,sum);

while με συνθηκη Διαβασμα τιμης μεχρι να ικανοποιηθει συνθηκη (αργοτερα do-while) int number; printf(“Enter a possitive value: ”); scanf(“%d”,&number); /* diabase timh */ while(number<= 0){ /*sinthiki epanalipsis*/ scanf(“%d”,&number); /* διαβασε timi xana */ }

Nested while (φωλιασμενα) int i=0,j; while(i<5){ j=0; while(j<5){ printf(“%d-%d”,i,j); ++j; } printf(“\n”); ++i; 0-0 0-1 0-2 0-3 0-4 1-0 1-1 1-2 1-3 1-4 2-0 2-1 2-2 2-3 2-4 3-0 3-1 3-2 3-3 3-4 4-0 4-1 4-2 4-3 4-4

Nested while (φωλιασμενα) int i=0,j; while(i<5){ j=0; while(j<=i){ printf(“%d-%d”,i,j); ++j; } printf(“\n”); ++i; 0-0 1-0 1-1 2-0 2-1 2-2 3-0 3-1 3-2 3-3 4-0 4-1 4-2 4-3 4-4

Συνταξη for for(αρχικοποιηση; συνθηκη επαναληψης ; ενημερωση) εντολη; ….. }

Σημασια for for(Αρχικοποιηση; Συνθηκη επαναληψης ; Ενημερωση) εντολη;

Παραδειγμα με for x x<5 εξοδος 0 1 0 1 1 1 2 1 2 3 1 3 4 1 4 5 0 int x; for(x=0;x<5;++x){ printf(“%d\n”,x); } x x<5 εξοδος 0 1 0 1 1 1 2 1 2 3 1 3 4 1 4 5 0

Ομοιοτητα for με while int x; while(x<5){ printf(“%d\n”,x); ++x; } int x; for(x=0;x<5;++x){ printf(“%d\n”,x); } Οποιoδηποτε for μπορει να γραφει με while και οποιoδηποτε while με for

Παραδειγμα Γραψετε ενα προγραμμα που υπολογιζει και τυπωνει την τιμη του ex βαση της ακολουθηςεκφρασης- n ειναι ο αριθμος ορων 1 + x/1! + x2/2! + x3/3! +…+ xn/n! Το προγραμμα διαβαζει τις τιμες x και n απο τον χρηστη. Νοte: x0/0! + x1/1! + x2/2! + x3/3! +…+ xn/n!

Υπολογισμος Τι πρεπει να γινει? Δημιουργια n+1 ορων (0 μεχρι n) Aθροισμα των ορων

float term(int n, float x) term(0,x) term(1,x) term(2,x) term(3,x) exp + exp + exp + exp float term(int n, float x)

Δημιουργια Ορου ν Συναρτηση float term(n,x) επιστρεφει τον n ορο της σειρας για την τιμη x

Υπολογισμος float exp; int ith_term; exp =0; ith_term = 0; while(ith_term <= n){ exp += term(ith_term,x); ++ith_term; }

term(n,x) - xn/n! Πως πρεπει να γινει? Χρησιμες Συναρτησεις υπολογισμος δυναμης υπολογισμος παραγωντικου Χρησιμες Συναρτησεις xn float pow(x,n); n! int factorial(n); n! = n n-1 … 3 2, 0!=1!=1 Οριζεται στην math.h Need user definition

float term (int n, float x) { return pow(x,n)/factorial(n); }

float factorial(int n) 3 4 1 2 factorial * factorial * factorial * factorial float factorial(int n)

float factorial (int n) { int i; float f; f=1; i=2; /* if i=0 or 1 return 1*/ while(i<=n){ f *= i; ++i; } return f;

Trace Table for Factorial Για n: 0,1,2 … 5

float factorial (int n) { int i; float f; /* if i=0 or 1 return 1*/ for(f=1,i=2;i<=n;++i){ f *= i; } return f;

float factorial (int n) { int i; float f; /* if i=0 or 1 return 1*/ for(f=1,i=2;i<=n;f*=i,++i); return f; }

do-while συνταξη do εντολη; while(συνθηκη); do{ εντολη;

do-while σημασια Εκτελα το σωμα Εφοσον η συνθηκη ισχυει επανελαβε την εκτελεση των εντολων στο σωμα του βροχου for και while το σωμα μπορει να μην εκτελεστει, ενω στο do-while εκτελειται τουλαχιστο μια φορα

Παραδειγμα int a,b; do{ printf(Enter values for A and B where A < B: ); scanf(%d%d, &a, &b); } while (a >= b);

Παραδειγμα int number; int number; do{ printf(“Enter a possitive value: ”); scanf(“%d”,&number); while(number<= 0); int number; printf(“Enter a possitive value: ”); scanf(“%d”,&number); while(number<= 0){ }

Απειροι Βροχοι while(1){} while(x=1){} for(;i=1;){} do{}while(x=13); Μη ή λανθασμενη ενημερωση της μεταβλητης ελεγχου int i = 0, n= 10; while(i<n){ printf(“%d ”,i); }

Κοινα Λαθη Σύγχυση ανάμεσα στις εντολές if και while: while, do-while: παράλειψη παρενθέσεων γύρω από τις συνθήκες for: παράλειψη του χαρακτήρα ; Σωμα συναρτησης: while(x<0) count +=x; ++x; printf(“%d\n”,x);

Κοινα Λαθη Συνθετοι τελεστες: a*=b+c; σημαίνει a = a*(b + c); όχι a = a * b + c; Χρήση ++, , και σύνθετης ανάθεσης (+= κτλ) σε σύνθετες εκφράσεις Χρήση του τελεστή != με τιμες τύπου float και double πρέπει να αποφεύγεται, π.χ. while (balance != 0.0){}

Αριθμος Λεξεων Γραψετε ενα προγραμμα που διαβαζει ενα κειμενο απο την εισοδο και υπολογιζει και τυπωνει τον αριθμο λεξεων.

Αριθμος Λεξεων Τι πρεπει να γινει: Διαβασμα ακολουθιας χαρακτηρων Μετρηση Γεγονοτος: Λεξης Τι ειναι λεξη:συνεχομενη σειρα χαρακτηρων Τα αλλα τι ειναι? ‘\n’, ‘\t’, ‘ ’ Μετασχηματισμος σε διαστημα ή χαρακτηρα Μετρουμε: μετακινηση απο ασπρο διαστημα σε λεξη (ή απο λεξη σε ασπρο διαστημα) Που ειμαστε προηγουμενως/τωρα:διαστημα ή λεξη-εννοια σημαίας (flag)

int main() { /* xρηση δυο σημαιων -πριν, τωρα (διαστημα η λεξη)*/ /* πριν = διαστημα --- αρχικοποιηση*/ /* διαβασε καθε χαρακτηρα απο εισοδο μεχρι ΕΟF καθε φορα επαναλαβε τα πιο κατω*/ /* που ειμαστε τωρα (λεξη ή διαστημα) */ /* εαν πριν σε διαστημα και τωρα σε λεξη τοτε μετρα λεξη*/ /*πριν παιρνει τιμη του τωρα */ return 0; }

/* convert stream returns WHITE_SPACE gia ‘\n’ ‘\t’ kai ‘ ’ gia oles tis alles periptwsis NON_WHITE_SPACE */ int main() { int c, nw; int where_before, where_now; /* simaies */ where_before = WHITE_SPACE; nw = 0; while((c=getchar()) != EOF){ where_now = convert_stream(c); if ( where_before == WHITE_SPACE && where_now == NON_WHITE_SPACE) nw = nw + 1; where_before = where_now; } printf(“The number of words in the input is %3d.\n”,nw); return 0;

break (προωρη εξοδος) while(count<n){ scanf(“%d”,&number); if (number== -1) break; ++count; } printf(“%d %d\n”, count, n, number);