11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Σχετικά έγγραφα
Πληροφορική 2. Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Πληροφορική ΙΙ Ενότητα 1

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Προγραµµατισµός Η/Υ. Μέρος2

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Εργαστηριακή Άσκηση 1

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

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

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Προγραµµατιστικές Τεχνικές

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

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

Προγραμματιστικές Τεχνικές

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

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

1 Ο Λύκειο Ρόδου. Β ΓΕΛ ΕισΑρχΕπ Η/Υ. Γεωργαλλίδης Δημήτρης

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Επαναληπτικές Διαδικασίες

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

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

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

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

ΛΥΚΕΙΟ ΠΑΛΟΥΡΙΩΤΙΣΣΑΣ ΣΧΟΛΙΚΟ ΕΤΟΣ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΜΑΙΟΥ-ΙΟΥΝΙΟΥ 2015 ΟΝΟΜΑ:... ΤΜΗΜΑ:... ΑΡ.:...

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΠΑΝΕΛΛΑ ΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΗΜΕΡΗΣΙΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ (ΟΜΑ Α Β ) ΚΑΙ ΜΑΘΗΜΑΤΩΝ ΕΙ ΙΚΟΤΗΤΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

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

for for for for( . */

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

Συναρτήσεις. Εισαγωγή

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

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

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

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Ταξινόμηση με συγχώνευση Merge Sort

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

4. Επιλογή και Επανάληψη

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

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

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

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001

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

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

Transcript:

ονάδα Δικτύων και Επικοινωνιών ΗΥ Τομέας Πληροφορικής, αθηματικών και Στατιστικής ΓΕΩΠΟΙΚΟ ΠΑΕΠΙΣΤΗΙΟ ΑΘΗΩ Εισαγωγή στην Επιστήμη των ΗΥ άθημα-4 url: http://openeclass.aua.gr (AOA0) Λογισμικό Υπολογιστή ENOTHTA 4.: Εισαγωγή στα Λειτουργικά Συστήματα (ΔΩ) ENOTHTA 4.: Ανάπτυξη Λογισμικού (ΔΩ) ENOTHTA 4.3: Γλώσσες Προγραμματισμού (ΔΩ) ENOTHTA 4.4: Αλγόριθμοι - Παραδείγματα (ΔΩ) ροντιστήριο () Θ. ΤΣΙΛΙΓΚΙΡΙΔΗΣ ΚΑΘΗΓΗΤΗΣ ΔΙΚΤΥΩ Η/Υ ΚΑΙ ΠΛΗΡΟΟΡΙΚΗΣ Καθ. Θ. Τσιλιγκιρίδης ονάδα Δικτύων και Επικοινωνιών ΗΥ Καθ. Θ. Τσιλιγκιρίδης ονάδα Δικτύων και Επικοινωνιών ΗΥ Διαδικαστικός Προγραμματικός: Αλγόριθμοι Αλγόριθμος Ορισμοί. Δομές αλγορίθμων. Διαγράμματα ροής. Ψευδοκώδικας. Κώδικας. Δομημένες ροές. Τμηματοποίηση υποαλγόριθμοι. Παραδείγματα Προβλήματα. Στόχοι Στο μάθημα αυτό: Θα κατανοήσουμε τι κάνει ένας αλγόριθμος Θα ορίσουμε και χρησιμοποιήσουμε δομές που αναπτύσσουν αλγόριθμους, όπως είναι η διαδοχή, η απόφαση και η επανάληψη Θα κατανοήσουμε τη χρήση τριών εργαλείων με τα οποία αντιπροσωπεύουμε τους αλγορίθμους, όπως είναι τα διαγράμματα ροής, οι ψευδοκώδικες και οι δομημένες ροές Κατανοήσουμε τη σημασία της τμηματοποίησης και των υπο-αλγορίθμων Εργαστούμε με κάποιους γνωστούς αλγόριθμους

Τι είναι αλγόριθμος Αλγόριθμος είναι ένας πεπερασμένος αριθμός βημάτων ο οποίος λύνει ένα πρόβλημα. Αλγόριθμος Λίστα Εισόδου ία βήμα-βήμα μέθοδος για την επίλυση ενός προβλήματος ή της πραγματοποίησης κάποιας εργασίας Περιγραφή των βημάτων ενός αλγορίθμου. Σε φυσική Γλώσσα. ε διάγραμμα ροής 3. ε ψευδοκώδικα 4. ε κώδικα Λίστα Εξόδου Διάγραμμα ροής Διάγραμμα ροής Τα χρησιμοποιούμε στην αρχή και το τέλος του προγράμματος Απόδοση τιμής Το χρησιμοποιούμε σε εντολές απόδοσης τιμής Υπολογισμός ε το ορθογώνιο αυτό αναπαριστούμε μία διεργασία του προγράμματος που είναι σύνθετη και θα οριστεί αργότερα / Το χρησιμοποιούμε για τις εντολές «διάβασε» και «τύπωσε» Συνθήκη Αληθής? Αν η συνθήκη είναι αληθής, θα εκτελεστούν οι ενέργειες στις οποίες οδηγεί το βέλος. Αν η συνθήκη είναι ψευδής, θα εκτελεστούν οι ενέργειες στις οποίες οδηγεί το βέλος. Τα βέλη δείχνουν τη ροή εκτέλεσης των εργασιών

Βασικές κατηγορίες εντολών 4 Εντολές απόδοσης τιμής 4 + 4 Εντολές Εισόδου/Εξόδου Εντολές απόδοσης τιμής Εντολές διακλάδωσης Εντολές επανάληψης 4 Ψ Ψ 4 0 4 Ψ Ψ+ 4 Ψ ΨΨ 4 +Ψ 4 Ψ 4 4 8 Παράδειγμα Ο φόρος ενός εργαζομένου είναι ίσος με το 0% του μισθού του. α γραφεί πρόγραμμα που δέχεται σαν είσοδο το μισθό ενός εργαζομένου, και εμφανίζει στην έξοδο το φόρο που πρέπει αυτός να πληρώσει. Ο αλγόριθμος σε φυσική γλώσσα Πολλαπλασιάζουμε τον αριθμό της εισόδου επί 0, αυτό που βρίσκουμε το διαιρούμε δια 00 και και τυπώνουμε στην έξοδο το αποτέλεσμα της διαίρεσης 3

Διάβασε Διάβασε 0% 0% Τύπωσε Τύπωσε 800 Διάβασε 800 Διάβασε 800 0% 0% Τύπωσε Τύπωσε 4

800 Διάβασε 800 800 Διάβασε 800 0% 80 0% 80 Τύπωσε Τύπωσε 80 800 Διάβασε 800 0% 80 Τύπωσε Διακλάδωση Συνθήκη Αληθής? Ενέργειες Ενέργειες 80 Αν η συνθήκη είναι αληθής, θα εκτελεστούν οι ενέργειες. Αν η συνθήκη είναι ψευδής θα εκτελεστούν οι ενέργειες

Ένα απλό πρόβλημα Έστω ότι ο φόρος ενός εργαζομένου προκύπτει ως εξής: Αν ο μισθός του είναι κάτω από 000, ο φόρος του είναι 0% του μισθού του. Αλλιώς, ο φόρος του είναι 0% του μισθού του. Γράψτε ένα πρόγραμμα που δέχεται σαν είσοδο το μισθό ενός εργαζομένου, και εμφανίζει στην έξοδο το φόρο που πρέπει αυτός να πληρώσει. Ο αλγόριθμος σε φυσική γλώσσα Αν ο μισθός της εισόδου είναι μικρότερος από 000, τον πολλαπλασιάζουμε επί 0, διαιρούμε το γινόμενο επί 00 και τυπώνουμε το αποτέλεσμα. Αλλιώς, πολλαπλασιάζουμε τον αριθμό της εισόδου επί 0, διαιρούμε το γινόμενο επί 00 και τυπώνουμε το αποτέλεσμα Διάγραμμα ροής Διάβασε Διάβασε <000 <000 0% 0% 0% 0% Τύπωσε Τύπωσε

Διάβασε Διάβασε <000 <000 0% 0% 0% 0% Τύπωσε Τύπωσε 800 Διάβασε 800 Διάβασε 800 <000 <000 0% 0% 0% 0% Τύπωσε Τύπωσε 7

800 Διάβασε 800 800 Διάβασε 800 <000 <000 0% 0% Τύπωσε 0% 0% Τύπωσε 800 Διάβασε 800 800 Διάβασε 800 <000 80 <000 80 0% 0% Τύπωσε 0% 0% Τύπωσε 8

800 Διάβασε 800 <000 80 0% 0% Τύπωσε 80 Ένα πιο δύσκολο πρόβλημα Έστω ότι ο φόρος ενός εργαζομένου προκύπτει ως εξής: Αν ο μισθός του είναι κάτω από 000, ο φόρος του είναι 0% του μισθού του. Αν ο μισθός είναι από 000 και πάνω και κάτω από 000, ο φόρος του είναι 0% του μισθού του. Αλλιώς, ο φόρος του είναι 30% του μισθού του. Γράψτε ένα πρόγραμμα που δέχεται σαν είσοδο το μισθό ενός εργαζομένου, και εμφανίζει στην έξοδο το φόρο που πρέπει αυτός να πληρώσει. Διάβασε Διάβασε <000 <000 0% <000 0% <000 0% 30% 0% 30% Τύπωσε Τύπωσε 9

00 Διάβασε 00 Διάβασε 00 <000 <000 0% <000 0% <000 0% 30% 0% 30% Τύπωσε Τύπωσε 00 Διάβασε 00 00 Διάβασε 00 <000 <000 0% <000 0% <000 0% 30% 0% 30% Τύπωσε Τύπωσε 0

00 Διάβασε 00 00 Διάβασε 00 <000 40 <000 40 0% <000 0% <000 0% 30% 0% 30% Τύπωσε 40 Τύπωσε 00 Διάβασε 00 Επανάληψη 0% <000 <000 0% 40 30% Για ν φορές επανέλαβε Εφόσον η συνθήκη είναι αληθής επανέλαβε Επανέλαβε όσο η συνθήκη να γίνει αληθής 40 Τύπωσε

Για ν φορές επανέλαβε Για ν φορές επανέλαβε Ενέργειες Σε αυτή τη μορφή επανάληψης, οι «ενέργειες» θα εκτελεστούν γνωστό αριθμό φορών, και για το συγκεκριμένο παράδειγμα ν φορές. Η μέτρηση των φορών γίνεται με τη βοήθεια μίας μεταβλητής, που παίρνει μία αρχική τιμή πριν εκτελεστούν για πρώτη φορά οι «ενέργειες» και η τιμή της αλλάζει κάθε φορά που τελειώνει η εκτέλεση των «ενεργειών». Για φορές επανέλαβε Ενέργειες Κ Όριο Κ Κ Κ Για φορές επανέλαβε Για φορές επανέλαβε Όριο Κ Όριο Κ Ενέργειες Ενέργειες

Κ Κ Για φορές επανέλαβε Για φορές επανέλαβε Όριο Κ Όριο Κ Ενέργειες Ενέργειες Κ Κ Για φορές επανέλαβε Για φορές επανέλαβε Όριο Κ Όριο Κ Ενέργειες Ενέργειες Ισχύει η σχέση Κ<=όριο Κ? 3

Κ Κ Για φορές επανέλαβε 3 Για φορές επανέλαβε Όριο Κ Όριο Κ Ενέργειες Ενέργειες Ισχύει η σχέση Κ<=όριο Κ? Κ Κ Για φορές επανέλαβε Για φορές επανέλαβε Όριο Κ Όριο Κ Ενέργειες Ενέργειες Ισχύει η σχέση Κ<=όριο Κ? 4

Παράδειγμα Αλγόριθμος εύρεσης έγιστου Παράδειγμα α γραφεί πρόγραμμα το οποίο δέχεται σαν είσοδο 0 αριθμούς. Το πρόγραμμα εμφανίζει στην έξοδο το μεγαλύτερο από τους αριθμούς που δόθηκαν 3 0 8 9 Αλγόριθμος 0 3 0 8 9 3 0 8 9 3 Α Α

3 0 8 9 3 0 8 9 3 3 Α Α 3 0 8 9 3 0 8 9 3 3 Α Α

3 0 8 9 3 0 8 9 3 0 3 0 Α Α 0 3 0 8 9 3 0 8 9 3 0 8 3 0 8 9 Α 0 Α 0 7

Αλγόριθμος σε φυσική γλώσσα Αποθηκεύουμε τον πρώτο αριθμό σα μέγιστο. Στη συνέχεια, συγκρίνουμε κάθε αριθμό που δίνεται, με το μέγιστο. Αν ο αριθμός είναι μεγαλύτερος από το μέγιστο, αποθηκεύουμε αυτόν στη θέση του μέγιστου. Α Διάβασε Α Για 4 φορές επανέλαβε Διάβασε >Α? Α Τύπωσε Α Διάβασε Διάβασε Α Α Α Α Για 4 φορές επανέλαβε Για 4 φορές επανέλαβε Διάβασε Διάβασε Α >Α? Α >Α? Τύπωσε Α Τύπωσε Α 8

Διάβασε Διάβασε Α Α Α Α Για 4 φορές επανέλαβε Διάβασε ετρητής Για 4 φορές επανέλαβε Διάβασε ετρητής Α >Α? 4? Α >Α? Τύπωσε Α Τύπωσε Α Διάβασε Διάβασε Α Α Α Α Για 4 φορές επανέλαβε Διάβασε ετρητής Για 4 φορές επανέλαβε Διάβασε ετρητής Α >Α? Α >Α? 4? Τύπωσε Α Τύπωσε Α 9

Διάβασε Α Α Διάβασε Α Α Για 4 φορές επανέλαβε Διάβασε ετρητής Για 4 φορές επανέλαβε Διάβασε ετρητής Α >Α? Α >Α? Τύπωσε Α Τύπωσε Α Διάβασε Α Α Διάβασε Α Α Για 4 φορές επανέλαβε Διάβασε ετρητής Για 4 φορές επανέλαβε Διάβασε ετρητής 3 Α >Α? Α >Α? 3 4? Τύπωσε Α Τύπωσε Α 0

3 Διάβασε Α 3 Α 3 Διάβασε Α 3 Α Για 4 φορές επανέλαβε Διάβασε ετρητής 3 Για 4 φορές επανέλαβε Διάβασε ετρητής 3 Α >Α? Α >Α? Τύπωσε Α Τύπωσε Α 3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε 3 Α ετρητής 4 3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε Α ετρητής 4 Α >Α? 4 4? Α >Α? Τύπωσε Α Τύπωσε Α

3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε Α ετρητής 4 3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε Α ετρητής Α >Α? Α >Α? 4? Τύπωσε Α Τύπωσε Α 3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε Α ετρητής 3 Διάβασε Α Για 4 φορές επανέλαβε Διάβασε Α ετρητής Α >Α? Α >Α? Τύπωσε Α Τύπωσε Α

Παράδειγμα Βάση = Εκθέτης = Γράψτε ένα πρόγραμμα που δέχεται σαν είσοδο δύο αριθμούς, έστω χ και ψ, και εμφανίζει στην έξοδο τον αριθμό χ ψ 4 8 3 Α Α Α 3

4 Α Α Α Α Α Α Α Α Α Α Α 3 Α

Α Α Α Α 3 Α ψ- Α ψ Α Α Α

Α 3 Α ψ- Διάβασε Α ψ Διάβασε Ψ Α Για Ψ φορές επανέλαβε Ψ Α Α Α Τύπωσε Α

Eφόσον η συνθήκη είναι αληθής επανέλαβε Συνθήκη αληθής? Εντολές Σε αυτή τη μορφή επανάληψης, οι εντολές θα εκτελεστούν άγνωστο αριθμό φορών. Οι εντολές θα εκτελούνται για όσο η συνθήκη είναι αληθής. Πρώτα εξετάζεται η συνθήκη και μετά, αν αυτή είναι αληθής, εκτελούνται οι εντολές. Δηλαδή οι εντολές μπορεί να μην εκτελεστούν και καμία φορά. Προσοχή: έσα στις εντολές, θα πρέπει να υπάρχει και μία εντολή που να «ανανεώνει» τη συνθήκη. Αλλιώς ησυνθήκηείναιπάνταηίδια, οπότε ή οι εντολές δε θα εκτελεστούν ποτέ (αν η συνθήκη είναι ψευδής), ή θα εκτελούνται για πάντα (αν η συνθήκη είναι αληθής). Παράδειγμα α γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα. Δίδονται θετικοί αριθμοί. Όταν δοθεί ένας αρνητικός αριθμός, το πρόγραμμα εμφανίζει στην έξοδο το άθροισμα όλων των αριθμών, χωρίς να λάβει υπόψη τον τελευταίο αρνητικό αριθμό (ο οποίος έπαιξε το ρόλο της εντολής τερματισμού) SU SU SUM SUM+ SUM SUM+ Τύπωσε SUM Τύπωσε SUM 7

SU 0 SU 0 SUM SUM+ SUM SUM+ Τύπωσε SUM Τύπωσε SUM SU 0 SU SUM SUM+ SUM SUM+ Τύπωσε SUM Τύπωσε SUM 8

SU SU SUM SUM+ SUM SUM+ Τύπωσε SUM Τύπωσε SUM SU 7 - - SU 7 SUM SUM+ SUM SUM+ Τύπωσε SUM Τύπωσε SUM 9

- - SU 7 - - SU 7 SUM SUM+ SUM SUM+ Τύπωσε SUM 7 Τύπωσε SUM - SUM - SU 7 SUM+ Παράδειγμα α γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα. Δίδονται θετικοί αριθμοί. Όταν δοθεί ένας αρνητικός αριθμός, το πρόγραμμα εμφανίζει στην έξοδο το μέσο όρο όλων των αριθμών, χωρίς να λάβει υπόψη τον τελευταίο αρνητικό αριθμό (ο οποίος έπαιξε το ρόλο της εντολής τερματισμού) 7 Τύπωσε SUM 30

0 + SUM SUM+ SU 0 + SUM SUM+ SU 0 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο Ο 0 + SUM SUM+ SUM/ SU 0 0 Ο Ο 0 + SUM SUM+ SUM/ SU 0 0 Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 3

Ο 0 + SUM SUM+ SUM/ SU 0 0 Ο Ο 0 + SUM SUM+ SUM/ SU 0 Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 0 SU + SUM SUM+ Ο Ο SUM/ 0 SU + SUM SUM+ Ο Ο SUM/ ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 3

0 SU + SUM SUM+ Ο Ο SUM/ 0 SU 7 + SUM SUM+ Ο Ο SUM/ ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 0 SU 7 + SUM SUM+ Ο Ο SUM/ - - 0 SU 7 + SUM SUM+ Ο Ο SUM/ ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 33

- - 0 SU 7 + SUM SUM+ Ο Ο SUM/ - - 0 SU 7 + SUM SUM+ Ο Ο SUM/ 3, ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο - - 0 SU 7 + SUM SUM+ Ο Ο SUM/ 3, 3, ΤΥΠΩΣΕ Ο - - 0 SU 7 + SUM SUM+ Ο Ο SUM/ 3, 3, ΤΥΠΩΣΕ Ο 34

Παράδειγμα 3 α γραφεί πρόγραμμα που να επιλύει το ακόλουθο πρόβλημα. Δίδονται θετικοί αριθμοί. Όταν δοθεί ένας αρνητικός αριθμός, το πρόγραμμα εμφανίζει στην έξοδο το μέσο όρο όλων των αριθμών που ήταν μεγαλύτεροι του. 0 + SUM SUM+ Β> SU Ο SUM/ Ο ΤΥΠΩΣΕ Ο 0 + SUM SUM+ Β> SU 0 0 + SUM SUM+ Β> SU 0 0 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 3

0 + SUM SUM+ Β> SU 0 0 0 + SUM SUM+ Β> SU 0 0 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 0 + SUM SUM+ Β> SU 0 0 0 + SUM SUM+ Β> SU 0 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 3

8 8 0 + SUM SUM+ Β> SU 0 + SUM SUM+ Β> SU Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 8 8 8 8 0 + SUM SUM+ Β> SU 0 + SUM SUM+ Β> SU Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 37

8 8 8 8 0 + SUM SUM+ Β> SU 4 0 + SUM SUM+ Β> SU 4 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 8 4 0 + SUM SUM+ Β> 4 SU 4 8 4 0 + SUM SUM+ Β> 4 SU 4 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 38

8 4 0 + SUM SUM+ Β> 4 SU 4 8 4 0 + SUM SUM+ Β> 4 SU 4 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 8 4-0 + SUM SUM+ Β> - SU 4 8 4-0 + SUM SUM+ Β> - SU 4 Ο SUM/ Ο Ο SUM/ Ο ΤΥΠΩΣΕ Ο ΤΥΠΩΣΕ Ο 39

8 4-0 + SUM SUM+ Β> - SU 4 8 4-0 + SUM SUM+ Β> - SU 4 Ο SUM/ ΤΥΠΩΣΕ Ο Ο 7 7 Ο SUM/ ΤΥΠΩΣΕ Ο Ο 7 8 4-7 0 + SUM SUM+ Β> Ο SUM/ ΤΥΠΩΣΕ Ο - SU 4 Ο 7 Επανέλαβε όσο η συνθήκη είναι αληθής Ενέργειες Συνθήκη Αληθής? Σε αυτή τη επανάληψης οι ενέργειες θα εκτελεστούν τουλάχιστον μία φορά, αφού εκτελούνται πριν εξεταστεί για πρώτη φορά η συνθήκη. 40

Εντολές απόδοσης τιμής Από το διάγραμμα ροής στον κώδικα Διάγραμμα ροής Κώδικας + = +; Διάγραμμα ροής Διακλάδωση Κώδικας Για φορές επανέλαβε Συνθήκη Αληθής? Ενέργειες Ενέργειες If (Συνθήκη) { Ενέργειες } Else { Για φορές επανέλαβε Ενέργειες For(i = ; i < = N; i++) { Ενέργειες } Ενέργειες } 4

Επανέλαβε εφόσον η συνθήκη είναι αληθής Επανέλαβε όσο η συνθήκη είναι αληθής Διάγραμμα ροής Ψευδοκώδικας do Συνθήκ η Αληθής? Ενέργειες while (Συνθήκη) { Ενέργειες } Ενέργειες Συνθήκ η Αληθής? { Ενέργειες } while (Συνθήκη); Κώδικας Το πρώτο πρόγραμμα #include<stdio.h> void main() { printf( hello world ); } Πρόσθεση αριθμών #include<stdio.h> void main() {float sum, a, a, a3, a4, a, av; a=.; a=.80; a3=.7; a4=.73; a=.3; sum=a+a+a3+a4+a; av=sum/.0; printf("%.f",av); return; } 4

Figure 8- Παράδειγμα 4 Βρες τον μεγαλύτερο ακέραιο μεταξύ πέντε ακεραίων Figure 8-3 Ορίζοντας ενέργειες στον αλγόριθμο FindLargest Figure 8-4 Επανεύρεση ΑλγόριθμοςFindLargest Figure 8- Γενίκευση του αλγορίθμου FindLargest Λίστα Εισαγωγής Θέσε Largest = 0 Επανέλαβε τα επόμενα βήματα n φορές Αν ο τρέχον αριθμός είναι μεγαλύτερος από τον Largest θέσε τον Largest ίσο με τον τρέχοντα αριθμό Largest 43

Figure 8- Τρείς απλές δομές Figure 8-7 Διαγράμματα ροής των απλών δομών Ψευδής Αληθής Αληθής Διαδοχή Ψευδής Απόφαση Επανάληψη Διαδοχή Απόφαση Επανάληψη Figure 8-8 Ψευδοκώδικες των απλών δομών Παράδειγμα Α α γραφεί αλγόριθμος σε ψευδοκώδικα που βρίσκει τον μέσο όρο δύο αριθμών Λύση Algorithm: Average of two Διαδοχή Επανάληψη AverageOfTwo Input: Δύο αριθμοί. Πρόσθεσε τους δύο αριθμούς. Διαίρεσε το αποτέλεσμα με το 3. Επέστρεψε το αποτέλεσμα στο βήμα End Απόφαση 44

Παράδειγμα Β α γραφεί αλγόριθμος αλλαγής αριθμητικού βαθμού σε βαθμό pass/no pass. Solution Algorithm: Βαθμός Pass/no pass Pass/NoPassGrade Input: One number. if (the number is greater than or equal to 70) then. Set the grade to pass else. Set the grade to nopass End if. Return the grade End Παράδειγμα Γ α γραφεί αλγόριθμος αλλαγής αριθμητικού βαθμού σε αλφαριθμητικό βαθμό. Solution Algorithm: Αλφαριθμητικός Βαθμός LetterGrade Input: One number. if (the number is between 90 and 00, inclusive) then. Set the grade to A End if. if (the number is between 80 and 89, inclusive) then. Set the grade to End if Continues on the next slide Παράδειγμα Γ Algorithm: Αλφαριθμητικός βαθμός 3. if (the number is between 70 and 79, inclusive) then 3. Set the grade to C End if 4. if (the number is between 0 and 9, inclusive) then 4. Set the grade to D End if. If (the number is less than 0) then. Set the grade to F End if. Return the grade End Παράδειγμα Δ Algorithm: Find largest: α βρεθεί ο μεγαλύτερος αριθμός ενός συνόλου αριθμών δεν γνωρίζουμε το πλήθος τους FindLargest Input: A list of positive integers. Set Largest to 0. while (more integers). if (the integer is greater than Largest) then.. Set largest to the value of the integer End if End while 3. Return Largest End 4

Παράδειγμα Ε Figure 8-9 Η έννοια του υπο-αλγορίθμου Algorithm: Βρες τον μεγαλύτερο από 000 αριθμούς FindLargest Input: 000 positive integers. Set Largest to 0. Set Counter to 0 3. while (Counter less than 000) 3. if (the integer is greater than Largest) then 3.. Set Largest to the value of the integer End if 3. Increment Counter End while 4. Return Largest End Παράδειγμα Στ FindLargest Input: Λίστα θετικών ακεραίων. Θέσε Largest to 0. while (more integers). FindLarger End while 3. Return Largest End Αλγόριθμος: Find largest Figure 8-0 Άθροιση Υπο-αλγόριθμος: Find larger FindLarger Input: Ο μεγαλύτερος και ο τρέχον ακέραιος. if (the integer is greater than Largest) then. Set Largest to the value of the integer End if End 4

Figure 8- Γινόμενο Figure 8- Ταξινόμηση επιλογής ταξινομημένα αταξινόμητα Figure 8-3: part I Παράδειγμα ταξινόμησης επιλογής Figure 8-3: part II Παράδειγμα Example ταξινόμησης of selection sort επιλογής αταξινόμητα ταξινομημένα αταξινόμητα αταξινόμητα ταξινομημένα αταξινόμητα ταξινομημένα 47

Figure 8- Ταξινόμηση φυσαλίδας (bubble sort) Figure 8-: part I Παράδειγμα της ταξινόμησηs φυσαλίδας Αρχική λίστα διαχωριστικό φυσαλίδα αταξινόμητα ετά το ο πέρασμα αταξινόμητα ταξινομημένα αταξινόμητα ετά το ο πέρασμα αταξινόμητα Παράδειγμα Example τηςof ταξινόμηση bubble sortφυσαλίδας Figure 8-: part II Figure 8-7 Ταξινόμηση εισαγωγής (Insertion sort) διαχωριστικό ετά το 3 ο πέρασμα ταξινομημένα αταξινόμητα ταξινομημένα Ταξινομημένα μετά το 4 ο πέρασμα ταξινομημένα αταξινόμητα 48

Figure 8-8: part I Παράδειγμα ταξινόμησης εισαγωγής Figure 8-8: part II Παράδειγμα Example ταξινόμησης of insertion εισαγωγής sort Αρχική λίστα αταξινόμητα ετά το ο πέρασμα αταξινόμητα ετά το ο πέρασμα ετά το 3 ο πέρασμα ταξινομημένα ετά το 4 ο πέρασμα ταξινομημένα ετά το ο πέρασμα ταξινομημένα αταξινόμητα ταξινομημένα Figure 8-9 Η έννοια της αναζήτησης Figure 8-0: Part I Παράδειγμα διαδοχικής ταξινόμησης Example of a sequential sort (sequential sort) Θέση Επιθυμητή Θέση (4) Επιθυμητή θέση Θέση Στόχος () Στόχος () Θέση 49

Figure 8-0: Part II Παράδειγμα διαδοχικής ταξινόμησης (sequential sort) Θέση Figure 8- Παράδειγμα δυαδικής αναζήτησης Θέση Figure 8- Επαναληπτικός Ορισμός του Παραγοντικού Figure 8-3 Αναδρομικός Ορισμός του Παραγοντικού 0

Figure 8-4 Tracing recursive solution to factorial problem Επαναληπτικό Παραγοντικό Algorithm : Iterative factorial Factorial Input: Θετικός ακέραιος num. Θέσε FactN ίσο με. Θέσε i ίσο με 3. Όσο (i είναι μικρότερο ή ίσο με num) 3. Θέσε FactN ίσο με FactN x I 3. Αύξησε i κατά όσο. Επέστρεψε FactN End Αναδρομικό Παραγοντικό Algorithm: Recursive factorial Factorial Input: Θετικός ακέραιος num. Αν (num είναι ίσος με 0) τότε. επέστρεψε else. επέστρεψε num x Factorial (num ) τέλος αν End