Πληροφορική 2. Αλγόριθμοι

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

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

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

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

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

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

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

Γκύζη 14-Αθήνα Τηλ :

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

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

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

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Πρόβλημα 37 / σελίδα 207

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

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

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

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

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

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

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

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ 2011

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Τελικό επαναληπτικό διαγώνισμα Επιμέλεια: Δρεμούσης Παντελής

(1) Σ 0 (2) Κ 0 (3) Αρχή_Επανάληψης (4) ιάβασε Χ (5) Σ Σ+Χ (6) Αν Χ>0 τότε (7) Κ Κ+1 (8) Τέλος_Αν (9) Μέχρις_ότου Σ>1000 (10) Εμφάνισε Χ

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

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Δομές Δεδομένων & Αλγόριθμοι

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

ΑΠΑΝΤΗΣΕΙΣ. Επιµέλεια: Οµάδα Πληροφορικής της Ώθησης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΥ

Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

Προτεινόμενα Θέματα ΑΕΠΠ

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΑΠΡΙΛΙΟΣ 2019 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

Α3. Δίνεται το παρακάτω τμήμα αλγορίθμου: Δ Αληθής Για α από 1 μέχρι Ν Δ ΟΧΙ Δ Τέλος_επανάληψης Εμφάνισε Δ

Δομές Δεδομένων & Αλγόριθμοι

(1) Σ 0 (2) Κ 0 (3) Αρχή_Επανάληψης (4) ιάβασε Χ (5) Σ Σ+Χ (6) Αν Χ>0 τότε (7) Κ Κ+1 (8) Τέλος_Αν (9) Μέχρις_ότου Σ>1000 (10) Εμφάνισε Χ

Δομές Επανάληψης. Εισαγωγή στη C++

θέμα των Πανελλαδικών Εξετάσεων

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Α.1 Τι γνωρίζετε για τον διερμηνευτή, τον μεταγλωττιστή και ποιες οι διαφορές τους. 15 ΜΟΝΑΔΕΣ

ΕΚΠΑΙΔΕΥΤΗΡΙΑ ΝΕΑ ΠΑΙΔΕΙΑ

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

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

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

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

Δομές Επανάληψης. Όσο μέχρις ότου για. 22/11/08 Ανάπτυξη εφαρμογών 1

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

ΠΡΟΣ: Τηλέφωνο: Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

Δομές Δεδομένων. Τι είναι η δομή δεδομένων; Έστω η ακολουθία αριθμών: 8, 10,17,19,22,5,12 Λογικό Επίπεδο. Φυσικό Επίπεδο RAM. Ταξινομημένος.

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

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

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

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

Επαναληπτικό Διαγώνισμα

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Διαδικασίες και συναρτήσεις. 22 Νοε 2008 Ανάπτυξη εφαρμογών/ Υποπρογράμματα 1

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Γενικές εξετάσεις 2014 Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον Τεχνολογική Κατεύθυνση

Μάριος Αγγελίδης

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ. 1ο ΓΕΛ ΠΕΥΚΗΣ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ B' ΤΕΤΡΑΜΗΝΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

! ΘΕΜΑ A Α2. ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΛΥΚΕΙΟΥ. Ονοµατεπώνυµο:

ΘΕΜΑ Α. Μονάδες 10 Α2.

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

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

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Δ ΕΣΠΕΡΙΝΩΝ

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ

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

ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ Θέματα και Απαντήσεις

Transcript:

Πληροφορική 2 Αλγόριθμοι 1

2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται μια είσοδο, ακολουθεί η επεξεργασία της εισόδου και παράγει μια έξοδο. ΠΕΠΕΡΑΣΜΕΝΟ = ΌΧΙ ΑΠΕΙΡΟ

3 Παράδειγμα αλγορίθμου Θέλουμε να κατασκευάσουμε έναν αλγόριθμο για την εύρεση του μεγαλύτερου ακεραίου από μια λίστα θετικών ακεραίων. Ο αλγόριθμος θα πρέπει να μπορεί να βρίσκει τον μεγαλύτερο ακέραιο από μια λίστα ακεραίων οποιουδήποτε μεγέθους (5, 1.000, 10.000, 1.000.000 κ.λπ.) Ο αλγόριθμος πρέπει να είναι γενικός και να μην εξαρτάται από το πλήθος των ακεραίων. Ο αλγόριθμος δέχεται ως είσοδο μια λίστα από Ν ακεραίους. Βήμα 1. Ο αλγόριθμος ορίζει ένα στοιχείο δεδομένων με όνομα ΜΕΓΙΣΤΟΣ και του δίνει ως τιμή τον πρώτο ακέραιο της λίστας Βήμα 2. Αν ο επόμενος ακέραιος είναι μεγαλύτερος από την τιμή που υπάρχει στο ΜΕΓΙΣΤΟΣ όρισε τον ως νέα τιμή του ΜΕΓΙΣΤΟΣ Βήμα 3. Αν η λίστα των ακεραίων έχει και άλλα στοιχεία πήγαινε στο Βήμα 2 Βήμα 4. Παρουσίασε ως έξοδο την τιμή του ΜΕΓΙΣΤΟΣ

4 Αριθμητικό παράδειγμα ΛΙΣΤΑ ΤΙΜΩΝ {13, 6, 17, 14, 15} ΜΕΓΙΣΤΟΣ = 13 6 > ΜΕΓΙΣΤΟΣ ΌΧΙ 17 > ΜΕΓΙΣΤΟΣ ΝΑΙ ΜΕΓΙΣΤΟΣ = 17 14 > ΜΕΓΙΣΤΟΣ ΌΧΙ 15 > ΜΕΓΙΣΤΟΣ ΌΧΙ Συνεπώς ΜΕΓΙΣΤΟΣ = 17

5 Βασικές αλγοριθμικές δομές Δομή ακολουθίας (sequence) Οι εντολές εκτελούνται στην σειρά η μια μετά την άλλη. Για να εκτελεστεί μια εντολή θα πρέπει να έχει ολοκληρωθεί η εκτέλεση της προηγούμενης. Δομή απόφασης (selection) Αφορά περιπτώσεις που ελέγχεται μια συνθήκη. Αν το αποτέλεσμα του ελέγχου είναι η τιμή αληθής τότε εκτελείται μια ακολουθία εντολών ενώ αν είναι ψευδής εκτελείται μια διαφορετική ακολουθία εντολών. Δομή επανάληψης (repetition) Επιτρέπει την επανάληψη της ίδιας ακολουθίας εντολών.

6 Δομή ακολουθίας Οι εντολές εκτελούνται στην σειρά η μια μετά την άλλη Για να εκτελεστεί μια εντολή θα πρέπει να έχει ολοκληρωθεί η εκτέλεση της προηγούμενης Χρησιμοποιείται στην λύση απλών προβλημάτων Ενέργεια 1 Ενέργεια 2 Ενέργεια Ν

7 Δομή απόφασης Αφορά περιπτώσεις που ελέγχεται μια συνθήκη Αν το αποτέλεσμα του ελέγχου είναι η τιμή αληθής (true) τότε εκτελείται μια ακολουθία εντολών ενώ αν είναι ψευδής (false) εκτελείται μια διαφορετική ακολουθία εντολών Αν συνθήκη τότε Αλλιώς Τέλος_αν σειρά ενεργειών 1 σειρά ενεργειών 2 Συνθήκη είναι μια λογική έκφραση που μπορεί να είναι είτε αληθής είτε ψευδής (π.χ. ταχύτητα > 60)

8 Δομή επανάληψης Επιτρέπει την επανάληψη της ίδιας ακολουθίας εντολών Η δομή επανάληψης ονομάζεται και βρόχος επανάληψης (loop) Όσο συνθήκη επανάλαβε σειρά ενεργειών Τέλος_επανάληψης

9 Τρόποι αναπαράστασης αλγορίθμων Διάγραμμα Ροής (flowchart) Είναι μια σχηματική παράσταση ενός αλγορίθμου. Δεν περιέχει τις λεπτομέρειες του αλγορίθμου αλλά προσπαθεί να δώσει την γενική ιδέα του. Ψευδοκώδικας (pseudo code) Είναι μια αναπαράσταση ενός αλγορίθμου σε φυσική γλώσσα. Αν και δεν υπάρχει κάποιο πρότυπο για τον ψευδοκώδικα σε γενικές γραμμές θυμίζει την σύνταξη μιας πραγματικής γλώσσας προγραμματισμού όπως η PASCAL. Κωδικοποίηση (coding) Αφορά την αναπαράσταση ενός αλγορίθμου σε μια πραγματική γλώσσα προγραμματισμού όπως η C, η Java, η Basic κοκ τηρώντας όλους τους συντακτικούς κανόνες που επιβάλει η γλώσσα.

10 Παράδειγμα διαγράμματος ροής Παράδειγμα άθροισης μιας ακολουθίας αριθμών

11 Ψευδοκώδικας Μεταβλητή: Ποσότητα που η τιμή της μπορεί να μεταβάλλεται Εκχώρηση: Αναθέτει το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή X2+3 Εντολή εισόδου: Δέχεται μια τιμή από τον χρήστη Διάβασε x Εντολή εξόδου: Εμφανίζει ένα αποτέλεσμα στην μονάδα εξόδου (οθόνη, εκτυπωτής κ.α.) Εμφάνισε x

12 Παράδειγμα ψευδοκώδικα Αλγόριθμος Άθροισμα sum0 k1 Όσο k <= 10 επανάλαβε Διάβασε x sum sum + x k k + 1 Τέλος_επανάληψης Εμφάνισε sum Τέλος Άθροισμα Παράδειγμα άθροισης δέκα τιμών που εισάγονται από τον χρήστη

13 Παράδειγμα κωδικοποίησης σε γλώσσα C++ #include <iostream> #include <cstdlib> using namespace std; int main() { int sum, k, x; sum=0; k=1; while (k<=10) { cin >> x; sum = sum + x; k = k + 1; } cout << "RESULT" << sum; system("pause"); return 0; } Παράδειγμα άθροισης δέκα τιμών που εισάγονται από το χρήστη

14 Αντιμετάθεση μεταβλητών (swap) Λανθασμένη αντιμετάθεση Διάβασε α, β α β; β α; Εμφάνισε α, β Λάθος οι τιμές των α και β στο τέλος θα είναι ίδιες Έστω ότι ο χρήστης δίνει στο α την τιμή 5 και στο β την τιμή 10 α β 5 10 10 ------------------ Άρα οι τιμές και των 2 μεταβλητών όταν εκτελεστούν οι εντολές είναι 10

15 Αντιμετάθεση μεταβλητών (swap) Σωστή αντιμετάθεση με την χρήση βοηθητικής μεταβλητής Διάβασε α, β t α; α β; β t; Εμφάνισε α, β α 1 2 t 3 β

16 Παράδειγμα 1 (Δομή ακολουθίας) Αλγόριθμος που υπολογίζει το άθροισμα 2 ακεραίων Αλγόριθμος Θ1 Διάβασε α, β γα+β Εμφάνισε γ Τέλος Θ1

17 Παράδειγμα 2 (Δομή απόφασης) Αλγόριθμος που βρίσκει τη μεγαλύτερη ανάμεσα σε τιμές που δίνει ο χρήστης Αλγόριθμος Θ2 Διάβασε βαθμός Αν βαθμός >=5 τότε Εμφάνισε Προάγεται Αλλιώς Εμφάνισε Απορρίπτεται Τέλος_αν Τέλος Θ2

18 Παράδειγμα 3 (Δομή επανάληψης) Αλγόριθμος που βρίσκει τη μεγαλύτερη ανάμεσα σε τιμές που δίνει ο χρήστης Αλγόριθμος Θ3 Διάβασε x maxx Όσο x<>0 επανάλαβε Αν x>max τότε maxx Τέλος_αν Διάβασε x Τέλος_επανάληψης Εμφάνισε max Τέλος Θ3

19 Βασικοί αλγόριθμοι Άθροιση Γινόμενο Ελάχιστο και μέγιστο Ταξινόμηση Αναζήτηση

20 Ακολουθιακή αναζήτηση Αναζήτηση είναι η διαδικασία εντοπισμού της θέσης ενός στοιχείου σε μια λίστα στοιχείων Η ακολουθιακή αναζήτηση εφαρμόζεται όταν η λίστα είναι ταξινομημένη Εξετάζει όλα τα στοιχεία ένα προς ένα μέχρι να βρεθεί το στοιχείο που ψάχνουμε ή να φτάσουμε στο τέλος της λίστας Δεν είναι αποδοτικός τρόπος αναζήτησης

21 Δυαδική αναζήτηση Απαιτεί η λίστα να είναι ταξινομημένη Είναι αποδοτικός τρόπος αναζήτησης Ελέγχει το μεσαίο στοιχείο της ταξινομημένης λίστας Εντοπίζει αν ο στόχος είναι στο δεξί μισό ή στο αριστερό μισό Απορρίπτει το μισό στο οποίο δεν μπορεί να βρίσκεται ο στόχος Επαναλαμβάνει την διαδικασία για το τμήμα που μένει

22 Ταξινόμηση φυσαλίδας (bubble sort) Η λίστα διαιρείται σε 2 υπό-λίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Γίνονται συγκρίσεις διαδοχικών στοιχείων από το τέλος προς την αρχή και αντιμετάθεση στοιχείων αν δεν είναι στην σωστή σειρά Το μικρότερο στοιχείο της αταξινόμητης υπόλίστας αναδύεται προς τα αριστερά Είσοδος: 25,13,8,17,9 25,13,8,17,9 25,13,8,9,17 25,13,8,9,17 25,8,13,9,17 8, 25,13,9,17 8, 25,13,9,17 8, 25,9,13,17 8,9, 25,13,17 8,9, 25,13,17 8,9,13, 25,17 8,9,13,25,17

23 Ταξινόμηση με επιλογή (selection sort) Η λίστα διαιρείται σε 2 υπόλίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Θεωρούμε ότι οι δύο λίστες χωρίζονται από ένα φανταστικό τείχος Βρίσκουμε το μικρότερο στοιχείο της αταξινόμητης λίστας και το τοποθετούμε στην αρχή των αταξινόμητων δεδομένων. Το στοιχείο που αντικαθιστά παίρνει την θέση που είχε το μικρότερο στοιχείο. Επεκτείνουμε την ταξινομημένη λίστα κατά ένα στοιχείο προς τα δεξιά Είσοδος: 25,33,18,17,11,23 25,33,18,17,11,23 11,33,18,17,25,23 11, 33,18,17,25,23 11, 17,18,33,25,23 11,17, 18,33,25,23 11,17, 18,33,25,23 11,17,18, 33,25,23 11,17,18, 23,25,33 11,17,18,23, 25,33 11,17,18,23, 25,33 11,17,18,23,25, 33 11,17,18,23,25, 33 11,17,18,23,25,33

24 Ταξινόμηση με εισαγωγή Η λίστα διαιρείται σε 2 υπό-λίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Επιλέγεται το πρώτο στοιχείο της αταξινόμητης λίστας και τοποθετείται στην σωστή θέση στην ταξινομημένη λίστα μετακινώντας όσα στοιχεία χρειαστεί προς τα δεξιά Είσοδος: 25,13,8,17,9 25,13,8,17,9 Επιλογή του 25 25, 13,8,17,9 Επιλογή του 13 13,25, 8,17,9 Επιλογή του 8 8,13,25, 17,9 Επιλογή του 17 8,13,17,25, 9 Επιλογή του 9 8,13,17,25,9

25 Υποαλγόριθμοι Ένας αλγόριθμος μπορεί να χωριστεί σε μικρότερες μονάδες που ονομάζονται υποαλγόριθμοι Το ίδιο ισχύει και για τους υποαλγόριθμους Πλεονεκτήματα υποαλγορίθμων Ευκολότερη κατανόηση αλγορίθμου Συντομότερη ανάπτυξη αλγορίθμου

26 Δομημένος προγραμματισμός Ο δομημένος προγραμματισμός ορίζει ότι ένας αλγόριθμος θα πρέπει να χωρίζεται σε μικρότερες υπομονάδες που ονομάζονται υποπρογράμματα. Κάθε υποπρόγραμμα με την σειρά του διαιρείται σε μικρότερα υποπρογράμματα μέχρι τα υποπρογράμματα να γίνουν στοιχειώδη και συνεπώς εύκολα υλοποιήσιμα ΚΥΡΙΟ ΠΡΟΓΡΑ ΜΜΑ ΥΠΟΠΡΟΓΡΑΜΜΑ

27 Αναδρομή (recursion) Αναδρομή ονομάζεται η διαδικασία κατά την οποία ένας αλγόριθμος καλεί τον εαυτό του Οι αναδρομικοί αλγόριθμοι συνήθως λύνουν «κομψά» ένα πρόβλημα Παραγοντικό του n (συμβολίζεται n!) Αν το n=0 τότε είναι 1 Αν το n>0 τότε είναι n*(n-1)*(n-2)* *3*2*1 Υπολογισμός παραγοντικού του n αναδρομικά: Παραγοντικό του n Αν το n=0 τότε Αλλιώς Τέλος_αν επέστρεψε 1 πολλαπλασίασε το n με το παραγοντικό του n-1 π.χ. 5! = 5*4*3*2*1=120