Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών 1η και 2η Ενότητα

Διαφάνειες 1ης και 2ης Ενότητας για την διδασκαλία του μαθήματος "Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών" της Β' τάξης των Γενικών Λυκείων.
by

John Kokkinidis

on 21 April 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών 1η και 2η Ενότητα

Εισαγωγή στις Αρχές της Επιστήμης των Υπολογιστών
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός

Ενότητα 1η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Βασικές Έννοιες
1.1 Επιστήμη των Υπολογιστών
1.2 Θεωρητική Επιστήμη των Υπολογιστών
1.3 Εφαρμοσμένη Επιστήμη των Υπολογιστών
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Επιστήμη των Υπολογιστών
Στόχοι του κεφαλαίου είναι οι μαθητές

- να περιγράφουν τους βασικούς τομείς της Επιστήμης των Υπολογιστών και

- να μπορούν να αναφερθούν στα πεδία τόσο της Θεωρητικής όσο και σε αυτά της Εφαρμοσμένης Επιστήμης των Υπολογιστών.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
1.1 Η Επιστήμη των Υπολογιστών
Η Επιστήμη των Υπολογιστών μελετά τα θεωρητικά θεμέλια και τη φύση των πληροφοριών, των αλγορίθμων και των υπολογισμών, καθώς και τις τεχνολογικές εφαρμογές τους σε αυτοματοποιημένα υπολογιστικά συστήματα, από τις σκοπιές σχεδίασης, ανάπτυξης, υλοποίησης, διερεύνησης και ανάλυσης.
Θεωρητική
Εφαρμοσμένη
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
1.2 Θεωρητική Επιστήμη των Υπολογιστών
Η Θεωρητική Επιστήμη των Υπολογιστών ερευνά κυρίως το σχεδιασμό των αλγορίθμων και των υπολογιστικών μεθόδων που χρησιμοποιούνται για την άντληση, την επεξεργασία, την ανάλυση και την αποθήκευση πληροφοριών.
Ανάλυση Αλγορίθμων
Θεωρία Υπολογισιμότητας
Θεωρία Πολυπλοκότητας
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
1.3 Εφαρμοσμένη Επιστήμη των Υπολογιστών
H Εφαρμοσμένη Επιστήμη των Υπολογιστών
μελετά τρόπους εφαρμογής της Θεωρίας των Υπολογιστών για την επίλυση προβλημάτων στον πραγματικό κόσμο.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
1.3 Εφαρμοσμένη Επιστήμη των Υπολογιστών
Βασικά επιστημονικά πεδία:
- Σχεδιασμός υλικού.
- Σχεδιασμός, ανάπτυξη και συντήρηση λογισμικού.
- Ο σχεδιασμός πληροφοριακών συστημάτων.
- Τεχνητή νοημοσύνη.
- Ο σχεδιασμός δικτύων υπολογιστών.
- Σχεδιασμός βάσεων δεδομένων και συστημάτων διαχείρισης βάσεων δεδομένων.
- Ασφάλεια υπολογιστών.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Θέματα Θεωρητικής Επιστήμης των Υπολογιστών
2.1 Πρόβλημα
2.2 Αλγόριθμοι
2.3 Προγραμματισμός
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Πρόβλημα
Στόχοι του κεφαλαίου αυτού είναι να μπορούν οι μαθητές:

- να περιγράφουν την έννοια του προβλήματος
- να κατατάσσουν ένα πρόβλημα στην κατηγορία που ανήκει
- να διακρίνουν την ύπαρξη υπολογιστικών και μη προβλημάτων
- να αναφέρουν τις φάσεις επίλυσης ενός υπολογιστικού προβλήματος.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.1 Η έννοια του προβλήματος
Τα προβλήματα δεν είναι απαραίτητα μαθηματικές καταστάσεις που απαιτούν αντιμετώπιση.
Με τον όρο Πρόβλημα προσδιορίζεται μια κατάσταση η οποία χρήζει αντιμετώπισης, απαιτεί λύση, η δε λύση της δεν είναι γνωστή, ούτε προφανής.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.1 Η έννοια του προβλήματος
Όλα τα προβλήματα δεν μπορούν να αντιμετωπιστούν με έναν ενιαίο και μοναδικό τρόπο.
Η διατύπωση ενός προβλήματος και η αντιμετώπισή του, αποτελούν ζητήματα που απαιτούν ικανότητες ορθολογικής, αναλυτικής και συνθετικής σκέψης, αλλά και σωστό χειρισμό της φυσικής γλώσσας.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.2 Κατηγορίες Προβλημάτων
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.2 Κατηγορίες Προβλημάτων
Επιλύσιμα είναι εκείνα τα προβλήματα για τα οποία η λύση έχει βρεθεί και έχει διατυπωθεί.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.2 Κατηγορίες Προβλημάτων
Μη επιλύσιμα χαρακτηρίζονται εκείνα τα προβλήματα για τα οποία έχει αποδειχτεί, ότι δεν επιδέχονται λύση.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.2 Κατηγορίες Προβλημάτων
Ανοικτά ονομάζονται τα προβλήματα για τα οποία η λύση τους δεν έχει ακόμα βρεθεί, ενώ ταυτόχρονα δεν έχει αποδειχτεί, ότι δεν επιδέχονται λύση.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.3 Υπολογιστικά Προβλήματα
Τα προβλήματα με βάση τη δυνατότητα επίλυσής τους μέσω του υπολογιστή, μπορούν να διακριθούν σε υπολογιστικά και μη υπολογιστικά.
Οποιοδήποτε πρόβλημα μπορεί να λυθεί και μέσω του υπολογιστή, χαρακτηρίζεται υπολογιστικό πρόβλημα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.3 Υπολογιστικά Προβλήματα
Για να λυθεί ένα πρόβλημα με τη βοήθεια του υπολογιστή, χρειάζεται να διατυπωθεί το αντίστοιχο υπολογιστικό πρόβλημα και στη συνέχεια να υλοποιηθεί η επίλυσή του μέσω του υπολογιστή.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.3 Υπολογιστικά Προβλήματα
Τα μη υπολογιστικά προβλήματα δεν μπορούν να λυθούν από έναν υπολογιστή ή από άλλα μηχανικά μέσα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Η προσπάθεια αντιμετώπισης και επίλυσης ενός προβλήματος προϋποθέτει αρχικά την πλήρη
κατανόηση
του προβλήματος.
Η
κατανόηση
ενός προβλήματος αποτελεί συνάρτηση δύο παραγόντων:
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Σωστή διατύπωσης εκ μέρους του δημιουργού του
Για να διατυπωθεί ένα πρόβλημα μπορεί να χρησιμοποιηθεί οποιοδήποτε μέσο με συνηθέστερα τον προφορικό ή το γραπτό λόγο. Ο λόγος πρέπει να χαρακτηρίζεται από σαφήνεια.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Σωστή ερμηνεία από τη μεριά εκείνου που καλείται να το αντιμετωπίσει.
Η άστοχη χρήση ορολογίας και η λανθασμένη σύνταξη, μπορούν να προκαλέσουν παρερμηνείες και παραπλανήσεις.
Ενότητα 2η
Ωστόσο, παρερμηνείες μπορούν να υπάρξουν ακόμα και σε περιπτώσεις όπου όλοι οι λεξικολογικοί και συντακτικοί κανόνες τηρούνται.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Η
ανάλυση-αφαίρεση
αποτελεί το δεύτερο βήμα στην διαδικασία επίλυσης ενός προβλήματος.
Η ανάλυση ενός προβλήματος μπορεί να πραγματοποιηθεί:

είτε φραστικά

είτε διαγραμματικά
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Φραστική ανάλυση
1. Προσδιορισμός αναγκών
1.1. Ταχύτερη εξυπηρέτηση πολιτών
1.2. Περιορισμός μετακινήσεων
2. Δράση
2.1. Ανάπτυξη ηλεκτρονικών υπηρεσιών εξυπηρέτησης
2.1.1. Ποιες υπηρεσίες θα είναι διαθέσιμες;
2.1.2. Με ποια διαδικασία θα γίνονται διαθέσιμες;
2.2. Ενημέρωση πολιτών
2.3. Ενημέρωση υπαλλήλων για να συνδράμουν το έργο
3. Εφαρμογή του σχεδίου.
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Για τη σωστή επίλυση ενός προβλήματος είναι σημαντικός ο επακριβής προσδιορισμός των δεδομένων που παρέχει το πρόβλημα και η λεπτομερειακή καταγραφή των ζητούμενων που αναμένονται σαν αποτελέσματα της επίλυσης του προβλήματος.
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Δεδομένο
είναι μια παράσταση γεγονότων, εννοιών ή εντολών σε τυποποιημένη μορφή που είναι κατάλληλη για επικοινωνία, ερμηνεία ή επεξεργασία από τον άνθρωπο ή από αυτόματα μέσα.
Zητούμενο
δηλώνεται οτιδήποτε προκύπτει ή τίθεται ως αντικείμενο έρευνας ή αναζήτησης.
Πληροφορία
είναι οποιοδήποτε γνωσιακό στοιχείο προέρχεται από επεξεργασία δεδομένων.
Επεξεργασία δεδομένων
είναι η συστηματική εκτέλεση πράξεων σε δεδομένα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Αφού ολοκληρωθεί η ανάλυση του προβλήματος ακολουθεί το στάδιο της
σύνθεσης
.
Κατά τη
σύνθεση
επιχειρείται η κατασκευή μιας νέας δομής, με την οργάνωση των επιμέρους στοιχείων του προβλήματος.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Στο στάδιο της
κατηγοριοποίησης,
το πρόβλημα κατατάσσεται σε κάποια κατηγορία, σε μία οικογένεια παρόμοιων προβλημάτων και έτσι διευκολύνεται η επίλυση, αφού παρέχεται η ευκαιρία να προσδιοριστεί το ζητούμενο ανάμεσα σε παρόμοια «αντικείμενα».
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Τέλος, με τη
γενίκευση
, μπορούν να μεταφερθούν τα αποτελέσματα σε άλλες παρεμφερείς καταστάσεις ή προβλήματα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.1.4 Διαδικασίες Επίλυσης (Υπολογιστικού) Προβλήματος
Κεφάλαιο 1ο
1.1 Επιστήμη των Υπολογιστών
Διαφάνειες 3-8

Κεφάλαιο 2ο
2.1.1 Πρόβλημα
Διαφάνειες 9-13
2.1.2 Κατηγορίες Προβλημάτων
Διαφάνειες 14-18
2.1.3 Υπολογιστικά Προβλήματα
Διαφάνειες 19-22
2.1.4 Διαδικασίες Επίλυσης Προβλήματος
Διαφάνεις 23-35

2.2.1 Αλγόριθμοι
Διαφάνειες 36-41
2.2.2 Χαρακτηριστικά Αλγορίθμου
Διαφάνειες 42-46
2.2.4 Βασικοί Τύποι Αλγορίθμων
Διαφάνειες 47-53
2.2.5 Αναπαράσταση Αλγορίθμου
Διαφάνειες 54-59
2.2.6 Δεδομένα και Αναπαράστασή τους
Διαφάνειες 60-78
2.2.7 Εντολές και Δομές Αλγορίθμου
Διαφάνειες 79-83
2.2.7.1

Εκχώρηση, Είσοδος και Έξοδος τιμών
Διαφάνειες 84-87
2.2.7.2

Δομή Ακολουθίας
Διαφάνειες 88-91
2.2.7.3

Δομή Επιλογής
Διαφάνειες 92-104
2.2.7.4 Δομή Επανάληψης
Διαφάνειες 105-114
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Διαφάνειες 115-125

2.3 Προγραμματισμός
Διαφάνειες 126-127
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Διαφάνειες 128-139
2.3.1.2 Προγραμματιστικά Υποδείγματα
Διαφάνειες 140-149
2.3.1.3 Δομημένος Προγραμματισμός
Διαφάνειες 150-155
2.3
.2 Σχεδίαση και Συγγραφή Κώδικα
Διαφάνειες 156-168

Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Αλγόριθμοι
Στόχοι του κεφαλαίου αυτού είναι να μπορούν οι μαθητές:

- να περιγράφουν την έννοια του αλγορίθμου και να διακρίνουν την ύπαρξη συγκεκριμένων χαρακτηριστικών που χρειάζεται να έχει ένας αλγόριθμος
- να αναγνωρίζουν βασικές έννοιες στην Ανάλυση Αλγορίθμων
- να αναγνωρίζουν τις διάφορες μορφές αναπαράστασης αλγορίθμου
- να αναφέρουν τους βασικούς τύπους και δομές δεδομένων
- να διακρίνουν τις βασικές εντολές και δομές που χρησιμοποιούνται σε έναν αλγόριθμο
- να προσδιορίζουν τον τρόπο λειτουργίας των δομών δεδομένων
- να εκπονούν απλούς αλγορίθμους
- να εντοπίζουν και να διορθώνουν τα λογικά λάθη ενός αλγορίθμου
- να εξηγούν την ανάγκη δημιουργίας της κατάλληλης τεκμηρίωσης.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.1 Ορισμός αλγορίθμου
Αλγόριθμος
είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.
Η έννοια του αλγορίθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.1 Ορισμός αλγορίθμου
Παράδειγμα 2.4.
Να βρεθεί ο Μέγιστος Κοινός Διαιρέτης (ΜΚΔ) δύο θετικών ακεραίων αριθμών x και y.
Ο αλγόριθμος περιγράφεται σε ομιλούμενη γλώσσα ως εξής: Θέσε στο z τον διαιρέτη. Αν z = 0, τότε ΜΚΔ είναι ο x. Αν z ≠ 0 τότε διαίρεσε το x με το y, και έστω z το υπόλοιπο και επανάλαβε τη διαίρεση με τους ακέραιους y και z αντί για x και y μέχρι το z να γίνει 0.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.1 Ορισμός αλγορίθμου
Ο αλγόριθμος αυτός μπορεί να εκφραστεί και με κωδικοποιημένο τρόπο ως εξής:

Αλγόριθμος
Ευκλείδης
Διάβασε
x, y
z ← y
Όσο
z <> 0
Επανάλαβε
z ← x
mod
y
x ← y
y ← z
Τέλος_Επανάληψης
Εμφάνισε
x
Τέλος
Ευκλείδης
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.1 Ορισμός αλγορίθμου
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.2 Χαρακτηριστικά αλγορίθμου
Καθοριστικότητα
: Κάθε εντολή ενός αλγορίθμου χρειάζεται να καθορίζεται χωρίς καμία αμφιβολία για τον τρόπο εκτέλεσής της.
Περατότητα
: Κάθε αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης των εντολών του.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.2 Χαρακτηριστικά αλγορίθμου
Χαρακτηριστικά ενός αλγορίθμου:

1. Καθοριστικότητα (Definiteness)
2. Περατότητα (Finiteness)
3. Αποτελεσματικότητα (Effectiveness)
4. Είσοδος (Input)
5. Έξοδος (Output)
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.2 Χαρακτηριστικά αλγορίθμου
Αποτελεσματικότητα
: Κάθε εντολή ενός αλγορίθμου χρειάζεται να είναι διατυπωμένη απλά και κατανοητά, ώστε να μπορεί να εκτελεστεί επακριβώς και σε πεπερασμένο μήκος χρόνου.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.2 Χαρακτηριστικά αλγορίθμου
Είσοδος
: Κάθε αλγόριθμος χρειάζεται να δέχεται ένα σύνολο μεταβλητών εισόδου (που μπορεί να είναι και το κενό σύνολο), οι οποίες αποτελούν τα δεδομένα του αλγορίθμου.
Έξοδος
: Κάθε αλγόριθμος χρειάζεται να δημιουργεί κάποιο αποτέλεσμα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.4 Βασικοί Τύποι Αλγορίθμων
Αλγόριθμοι
Σειριακοί
Παράλληλοι
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Σειριακοί
λέγονται οι αλγόριθμοι που χρησιμοποιούν μία κεντρική μονάδα επεξεργασίας και οι εντολές τους εκτελούνται σε σειρά η μία μετά την άλλη.
Παράδειγμα 2.5.
Έστω ότι υπάρχει ένας πίνακας που έχει ως περιεχόμενο τους αριθμούς:


Στόχος είναι να τοποθετηθούν οι αριθμοί σε αύξουσα σειρά από το μικρότερο στο μεγαλύτερο (αύξουσα ταξινόμηση).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Παράλληλοι χαρακτηρίζονται οι αλγόριθμοι που χρησιμοποιούν πολλαπλές κεντρικές μονάδες επεξεργασίας όπου ορισμένες ή μία σειρά από εντολές εκτελούνται παράλληλα (ταυτόχρονα).
ΚΜΕ 1
Μπλέ
ΚΜΕ 2
Πράσινο
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.4 Βασικοί Τύποι Αλγορίθμων
Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση παράλληλου υπολογισμού.

Οι αλγόριθμοι επιλύουν προβλήματα (απλά και σύνθετα).

Λίγα απλά προβλήματα μπορούν να επιλυθούν με διαδοχική εκτέλεση μερικών βημάτων

Τα περισσότερα προβλήματα απαιτούν την εκτέλεση ορισμένων συγκεκριμένων βημάτων πολλές φορές.
Αυτοί οι αλγόριθμοι αποκαλούνται
επαναληπτικοί
.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.4 Βασικοί Τύποι Αλγορίθμων
Παράδειγμα 2.6.
Να αναπτυχθεί αλγόριθμος ο οποίος θα διαβάζει τον αριθμό Ν και θα υπολογίζει και θα εμφανίζει το Ν παραγοντικό (Ν! = 1*2*3...*(Ν-1)*Ν).
ΑΛΓΟΡΙΘΜΟΣ
Υπολογισμός_Παραγοντικού

ΕΜΦΑΝΙΣΕ

'Δώσε αριθμό: '

ΔΙΑΒΑΣΕ
Ν
Παραγοντικό ← 1

ΓΙΑ
Ι
ΑΠΟ
1
ΜΕΧΡΙ
Ν
Παραγοντικό ← Παραγοντικό * Ι

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΕΜΦΑΝΙΣΕ

'Το παραγοντικό του '
, Ν,

ΕΜΦΑΝΙΣΕ

' είναι: '
, Παραγοντικό
ΤΕΛΟΣ
Υπολογισμός_Παραγοντικού
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.4 Βασικοί Τύποι Αλγορίθμων
Παράδειγμα 2.6.

Συνέχεια
. Όμως το Ν μπορεί να ορισθεί και με άλλο τρόπο, που αποκαλείται
αναδρομικός.
Ο όρος αναδρομικότητα εδώ εκφράζει, ότι για να βρεθεί η τιμή του Ν! πρέπει να βρεθεί η τιμή του (Ν - 1)!, η τιμή του οποίου χρειάζεται την τιμή του (Ν - 2)! κ.ο.κ.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.5 Αναπαράσταση αλγορίθμου
Η «ακριβής περιγραφή» ενός αλγορίθμου επιτυγχάνεται με τη χρήση κάποιας γλώσσας που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό, χωρίς ασάφειες και διφορούμενα.
Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:
Φυσική γλώσσα
Ψευδοκώδικα ή ψευδογλώσσα
Γλώσσα προγραμματισμού
Οπτικές γλώσσες προγραμματισμού
Κειμενικές γλώσσες προγραμματισμού
Μεθοδολογίες διαγραμματικής αναπαράστασης
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.5 Αναπαράσταση αλγορίθμου
Παράδειγμα 2.7.
Να αναπτυχθεί αλγόριθμος με φυσική γλώσσα, με διάγραμμα ροής και με ψευδογλώσσα, ο οποίος θα διαβάζει τις τιμές δύο μεταβλητών και θα αντιμεταθέτει το περιεχόμενό τους. Στη συνέχεια θα εμφανίζει ως αποτέλεσμα το περιεχόμενο των μεταβλητών μετά την αντιμετάθεση.
Απάντηση

Φυσική γλώσσα
: Αφού εισαχθούν οι τιμές δύο μεταβλητών α και β,να δώσετε το περιεχόμενο της μεταβλητής α και σε μία νέα μεταβλητή temp (προσωρινή). Στη συνέχεια, να δώσετε το περιεχόμενο της μεταβλητής β στη μεταβλητή α και τέλος να δώσετε το περιεχόμενο της μεταβλητής temp και στη μεταβλητή β.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.5 Αναπαράσταση αλγορίθμου
Παράδειγμα 2.7.
Συνέχεια...

Απάντηση
Ψευδογλώσσα
1.
Αλγόριθμος
Αντιμετάθεση
2.
Διάβασε
α, β
3. temp ← α
4. α ← β
5. β ← temp
6.
Εμφάνισε
α, β
7.
Τέλος
Αντιμετάθεση
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.5 Αναπαράσταση αλγορίθμου
Παράδειγμα 2.7.
Συνέχεια...

Απάντηση
Διάγραμμα Ροής Δεδομένων
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.5 Αναπαράσταση αλγορίθμου
Τα κυριότερα χρησιμοποιούμενα γεωμετρικά σχήματα - σύμβολα στα διαγράμματα ροής είναι τα ακόλουθα:
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Η θεωρία αλγορίθμων, μελετά τα δεδομένα κυρίως από τις σκοπιές του υλικού και των γλωσσών προγραμματισμού.
Όσον αφορά τις γλώσσες προγραμματισμού, κάθε γλώσσα μπορεί να υποστηρίζει τη χρήση διαφόρων τύπων δεδομένων.
Κάθε γλώσσα έχει συγκεκριμένους τύπους δεδομένων, ενώ μπορούν να δημιουργηθούν νέοι τύποι ορισμένοι από το χρήστη.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Το υλικό επιτρέπει την αποθήκευση των δεδομένων ενός προγράμματος στην κύρια μνήμη ή και στις περιφερειακές συσκευές ενός υπολογιστή με διάφορες μορφές.
Tο υλικό του υπολογιστή έχει επίδραση στο είδος των αλγορίθμων που θα χρησιμοποιηθούν.

Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Δομή δεδομένων
(data structure) είναι ένα σύνολο αποθηκευμένων δεδομένων, τα οποία είναι έτσι οργανωμένα, ώστε να υπόκεινται σε συγκεκριμένες απαιτούμενες επεξεργασίες.
Αλγόριθμοι
+
Δομές Δεδομένων
=
Προγράμματα
Νικλάους Βιρθ (Niklaus Wirth)
Κάθε δομή δεδομένων αποτελείται από ένα σύνολο στοιχείων ή κόμβων (πίνακας, η στοίβα, η ουρά, η λίστα, το δένδρο και ο γράφος).
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
O
πίνακας
(table) αποτελείται από ένα σύνολο ομοειδών απλών στοιχείων, καθένα από τα οποία καθορίζεται με τη βοήθεια ενός ή περισσοτέρων δεικτών.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Μία
στοίβα
(stack) είναι μια γραμμική διάταξη στοιχείων, στην οποία εισάγονται και εξάγονται στοιχεία μόνο από το ένα άκρο.
Ώθηση
(push)
Απώθηση
(pull ή pop)
Η φιλοσοφία εισαγωγής και εξαγωγής των
στοιχείων ονομάζεται
LIFO
(Last In, First Out).
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Μια
ουρά
(queue) αποτελεί μια γραμμική διάταξη στοιχείων, στην οποία εισάγονται νέα στοιχεία από ένα άκρο και εξάγονται υπάρχοντα στοιχεία από το άλλο άκρο.
Εξαγωγή
Εισαγωγή
Η λειτουργία της ουράς αποκαλείται
FIFO
(First In, First Out)
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Σε μια (συνδεσμική)
λίστα
(linked list) τα στοιχεία φαίνονται «λογικά» ότι είναι γραμμικά διατεταγμένα, χωρίς όμως αυτό να σημαίνει ότι βρίσκονται σε συνεχόμενες θέσεις της μνήμης του υπολογιστή.
Δείκτης
Δείκτης
Δείκτης
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Τo
δένδρο
(tree) είναι μη γραμμική δομή που αποτελείται από ένα σύνολο κόμβων, οι οποίοι συνδέονται με ακμές.
Ρίζα
Φύλλα
Φύλλα
Φύλλα
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Ο
γράφος
(graph) αποτελεί τη πιο γενική δομή δεδομένων μια και αποτελείται από κόμβους και ακμές χωρίς όμως κάποια ιεράρχηση.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Διάκριση Δομών Δεδομένων
Στατικές
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Οι στατικές δομές:
1) έχουν σταθερό μέγεθος και
2) μπορούν να κατακρατήσουν συγκεκριμένο πλήθος στοιχείων.
Δυναμικές
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Οι δυναμικές δομές:
1) δεν έχουν σταθερό μέγεθος και
2) το πλήθος των στοιχείων τους μπορεί να μεγαλώνει ή να μικραίνει καθώς στη δομή εισάγονται νέα δεδομένα ή διαγράφονται άλλα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Διάκριση Δομών Δεδομένων
Γραμμικές
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Στις γραμμικές δομές μπορεί να ορισθεί κάποια σχέση διάταξης για δύο οποιαδήποτε διαδοχικά στοιχεία τους.

Αυτό σημαίνει ότι κάποιο στοιχείο θα είναι πρώτο και κάποιο τελευταίο.

Οποιοδήποτε από τα υπόλοιπα θα έπεται από το προηγούμενό του και θα προηγείται από το επόμενό του.
Μη Γραμμικές
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Στις μη γραμμικές δομές δεν μπορεί να οριστεί μια σχέση διάταξης.

Τέτοιες δομές είναι τα δένδρα και οι γράφοι.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.6 Δεδομένα και αναπαράστασή τους
Διάκριση Δομών Δεδομένων
Είδος χρησιμοποιούμενης μνήμης (κύρια ή βοηθητική)
Οι δομές δεδομένων βοηθητικής μνήμης αποκαλούνται
αρχεία δεδομένων
(data files).

Ένα αρχείο απαρτίζεται από έναν αριθμό ομοειδών
εγγραφών
(records).

Κάθε εγγραφή διαθέτει ορισμένα
πεδία
(fields), που περιέχουν δεδομένα για μια
οντότητα
.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7 Εντολές και Δομές Αλγορίθμου
Βασικά εισαγωγικά στοιχεία της ψευδογλώσσας.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7 Εντολές και Δομές Αλγορίθμου
Κάθε αλγόριθμος διατυπωμένος σε ψευδογλώσσα ξεκινά με τη γραμμή
Αλγόριθμος
όνομα_αλγορίθμου

και τελειώνει με τη γραμμή
Τέλος
όνομα_αλγορίθμου
Οι εντολές είναι λέξεις (ρήματα σε προστακτική) ή συμβολισμοί που προσδιορίζουν μία σαφή ενέργεια, έχουν αυστηρά καθορισμένο νόημα στην ψευδογλώσσα και καλούνται δεσμευμένες λέξεις.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7 Εντολές και Δομές Αλγορίθμου
Σταθερές
Οι σταθερές στην ψευδογλώσσα μπορεί να είναι αριθμητικές, αλφαριθμητικές ή λογικές. Για το σχηματισμό μιας αριθμητικής σταθεράς χρησιμοποιούνται οι αριθμητικοί χαρακτήρες και πιθανά ένας από τους χαρακτήρες +, -, ,.

π.χ. 5, 100, -1, -20,
0,15, -17,6, 15,5, -100,0
"Κώστας", "Ελένη"
Αληθής, Ψευδής
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7 Εντολές και Δομές Αλγορίθμου
Μεταβλητές
Για το σχηματισμό του ονόματος μιας μεταβλητής χρησιμοποιείται οποιοσδήποτε αριθμός αλφαβητικών ή αριθμητικών χαρακτήρων και ο χαρακτήρας κάτω παύλα.

Ο πρώτος χαρακτήρας της μεταβλητής πρέπει να είναι αλφαβητικός και δεν μπορεί να χρησιμοποιηθεί δεσμευμένη λέξη ως όνομα μεταβλητής.
Πριν από την απόδοση κάποιας τιμής σε μια μεταβλητή η μεταβλητή έχει απροσδιόριστη τιμή.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.1 Εκχώρηση, Είσοδος και Έξοδος τιμών
Η γενική μορφή της εντολής εκχώρησης είναι:

Μεταβλητή ← Έκφραση

και η λειτουργία της είναι «εκτελούνται οι πράξεις στην έκφραση και η τιμή της εκχωρείται στη μεταβλητή».
Η εκχώρηση τιμών επιτυγχάνεται και με τις εντολές εισόδου.

Διάβασε
λίστα_μεταβλητών
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.1 Εκχώρηση, Είσοδος και Έξοδος τιμών
Η εντολή
Διάβασε
διαφέρει από την εντολή εκχώρησης, γιατί στη δεύτερη οι τιμές των μεταβλητών προσδιορίζονται κατά τη συγγραφή του αλγορίθμου, ενώ στην πρώτη κατά την εκτέλεση του αλγορίθμου.
Για την έξοδο τιμών χρησιμοποιηθούν οι εντολές:
Γράψε
Εμφάνισε
Εκτύπωσε

}
λίστα μεταβλητών ή σταθερών
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.1 Εκχώρηση, Είσοδος και Έξοδος τιμών
Τελεστές
Τελεστές είναι τα σύμβολα και οι λέξεις που χρησιμοποιούνται στις διάφορες πράξεις.
Αριθμητικοί
Οι αριθμητικοί τελεστές χρησιμοποιούνται για την εκτέλεση αριθμητικών πράξεων.
+, -, *, /,
mod
,
div
, ^
Σχεσιακοί
Οι σχεσιακοί τελεστές χρησιμοποιούνται για τη σύγκριση δύο τιμών.
<, >, =, <=, ≤, >=, ≥, <>, ≠,
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.1 Εκχώρηση, Είσοδος και Έξοδος τιμών
Τελεστές
συνέχεια
Λογικοί
Οι λογικοί τελεστές υλοποιούν τις λογικές πράξεις.
όχι
,
και
,
ή
Συναρτησιακοί τελεστές ή Συναρτήσεις
Μια συνάρτηση χρησιμοποιείται για να εκτελέσει μια προκαθορισμένη λειτουργία.
ΗΜ
(x),
ΣΥΝ
(x),
ΕΦ
(x),
Α_Τ
(x),
Ε
(x),
ΛΟΓ
(x),
ΛΝ
(x),
Τ_Ρ
(x),
Α_Μ
(x)
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.2 Δομή Ακολουθίας
Η
δομή ακολουθίας
χρησιμοποιείται για την αντιμετώπιση προβλημάτων στα οποία οι εντολές εκτελούνται η μία μετά την άλλη από πάνω προς τα κάτω.
Παράδειγμα 2.8.

Είσοδος και έξοδος αριθμών
Να διαβαστούν δύο αριθμοί και να υπολογιστεί και να εμφανιστεί το άθροισμά τους.
Αλγόριθμος
Άθροισμα
Διάβασε
α, β
Σ ← α + β
Εμφάνισε
Σ
Τέλος
Άθροισμα
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.2 Δομή Ακολουθίας
Παράδειγμα 2.9.

Υπολογισμός τελικής αξίας είδους
Να γραφεί αλγόριθμος, ο οποίος να διαβάζει την καθαρή αξία ενός είδους και το ποσοστό ΦΠΑ και να υπολογίζει και να εκτυπώνει την τελική αξία.
Αλγόριθμος
Υπολογισμός
Διάβασε
ΚΑ, ΠΦΠΑ
ΤΑ ← ΚΑ + ΚΑ * ΠΦΠΑ / 100
Εκτύπωσε
"Τελική Αξία:", ΤΑ
Τέλος
Υπολογισμός
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.2 Δομή Ακολουθίας
Εναλλακτική είσοδος και έξοδος τιμών παρέχεται με τη χρήση των εντολών
Δεδομένα
και
Αποτελέσματα
.
Αλγόριθμος
Άθροισμα_1
Διάβασε
α, β
Σ ← α + β
Εμφάνισε
Σ
Τέλος
Άθροισμα_1
Αλγόριθμος
Άθροισμα_2
Δεδομένα
// α, β //
Σ ← α + β
Αποτελέσματα
// Σ //
Τέλος
Άθροισμα_2
«Να γραφεί αλγόριθμος ο οποίος να διαβάζει...»
«Δίδεται ένας πίνακας Α. Να γραφεί αλγόριθμος...»
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Εκφράσεις
Μια έκφραση μπορεί να είναι μια σταθερά, μια μεταβλητή, μια συνάρτηση ή ένας συνδυασμός σταθερών, μεταβλητών, συναρτήσεων, τελεστών και παρενθέσεων.
Οι χρησιμοποιούμενοι τελεστές έχουν διαφορετική ιεραρχία.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Εκφράσεις
Η ιεραρχία των πράξεων είναι η ακόλουθη:
Α. Αριθμητικοί τελεστές

1. Δυνάμεις
2. Πολλαπλασιασμός,
Διαίρεση, DIV, MOD
3. Πρόσθεση, Αφαίρεση
Β. Σχεσιακοί τελεστές
Γ. Λογικοί τελεστές

1. όχι
2. και
3. ή
Αν οι πράξεις είναι ίδιας ιεραρχίας, τότε εκτελούνται από τα αριστερά προς τα δεξιά.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Αριθμητικές Εκφράσεις
Στην
ακέραια διαίρεση
οι τελεστέοι των τελεστών
div
και
mod
είναι υποχρεωτικά θετικοί ακέραιοι αριθμοί.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Λογικές Εκφράσεις
Οι σχεσιακοί τελεστές χρησιμοποιούνται για τη σύγκριση δύο τιμών. Το αποτέλεσμα μιας σύγκρισης μπορεί να είναι είτε Αληθής είτε Ψευδής.
Οι σχεσιακοί τελεστές μπορούν να χρησιμοποιηθούν και με αλφαριθμητικούς τελεστέους.
π.χ. "ΑΔΓ" > "ΑΒΚ"
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Με τη δομή επιλογής μπορεί να τροποποιηθεί η σειρά εκτέλεσης των εντολών ενός αλγορίθμου.

Ελέγχεται μια συνθήκη που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής) και ακολουθεί η απόφαση εκτέλεσης εντολών με βάση την τιμή αυτής της συνθήκης.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Εκφράσεις
Σε μια λογική έκφραση οι λογικές πράξεις εκτελούνται μετά τις αριθμητικές και συγκριτικές.
Η σχέση:
0 < x < 2k + 1
σε Ψευδογλώσσα:
x > 0
και
x < 2 * k + 1
Απλή εντολή επιλογής
Αν
Συνθήκη
τότε
Εντολές
Τέλος_αν
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Παράδειγμα 2.10.
Να διαβαστεί ένας αριθμός και να εμφανιστεί η απόλυτη τιμή του.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Σύνθετη εντολή επιλογής
Αν
Συνθήκη
τότε
Εντολές_1
αλλιώς
Εντολές_2
Τέλος_αν
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Παράδειγμα 2.11.
Να αναπτύξετε αλγόριθμο ο οποίος θα υπολογίζει και θα εμφανίζει το εμβαδόν ενός τριγώνου, με βάση τον τύπο του Ήρωνα.
Αλγόριθμος
Εμβαδό
Δεδομένα
// α, β, γ //
Αν
α + β > γ
και
β + γ > α
και
γ + α > β
τότε
τ ← (α + β + γ) / 2
Εμβ ← Τ_Ρ(τ * (τ - α) * (τ - β) * (τ - γ))
Εμφάνισε
Εμβ
αλλιώς
Εμφάνισε

"Δεν σχηματίζεται τρίγωνο"
Τέλος_αν
Τέλος
Εμβαδό
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Πολλαπλή Επιλογή
Αν

συνθήκη_1

τότε
εντολές_1
αλλιώς_αν

συνθήκη_2

τότε
εντολές_2
...
αλλιώς_αν

συνθήκη_ν

τότε
εντολές_ν
αλλιώς
εντολές_αλλιώς
Τέλος_αν
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Παράδειγμα 2.13.
Αριθμομηχανή
Αλγόριθμος
Αριθμομηχανή
Διάβασε α, πράξη, β
Αν
πράξη =
"+"

τότε
Εμφάνισε
α + β
αλλιώς_αν
πράξη =
"-"

τότε
Εμφάνισε
α - β
αλλιώς_αν
πράξη =
"*"

τότε
Εμφάνισε
α * β
αλλιώς_αν
πράξη =
"/"

τότε
Αν
β ≠ 0
τότε
Εμφάνισε
α / β
αλλιώς
Εμφάνισε

"Προσοχή, διαίρεση με το μηδέν"
Τέλος_αν
αλλιώς
Εμφάνισε

"Λάθος πράξη"
Τέλος_αν
Τέλος
Αριθμομηχανή
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.3 Δομή Επιλογής
Παράδειγμα 2.12.
Όζον
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Λίγοι αλγόριθμοι χρησιμοποιούν μόνο τις δομές ακολουθίας και επιλογής. Στα ρεαλιστικά προβλήματα χρειάζεται συνήθως μια σειρά εντολών να επαναληφθεί πολλές φορές.
Παράδειγμα 2.14.
Να εκπονηθεί αλγόριθμος ο οποίος με δεδομένο ένα θετικό ακέραιο αριθμό θα εμφανίζει τους ακέραιους αριθμούς από το 1 μέχρι και τον δεδομένο αριθμό Ν.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Παράδειγμα 2.14.
Συνέχεια...
Συχνά η μεταβλητή i αποκαλείται μετρητής
ΌΣΟ ... ΕΠΑΝΑΛΑΒΕ
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Οι εντολές εκτελούνται όσο η συνθήκη είναι αληθής.
Στην εντολή
Όσο
οι εμπεριεχόμενες εντολές μπορεί να μην εκτελεστούν ποτέ.
Οι εντολές που συγκροτούν μια εντολή επανάληψης αποκαλούνται
βρόχος
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Παράδειγμα 2.15.
Να γραφεί αλγόριθμος ο οποίος διαβάζει το όνομα ενός μαθητή, τους βαθμούς του σε τρία μαθήματα και υπολογίζει και τυπώνει το μέσο όρο του. Ο αλγόριθμος να σταματάει, όταν για όνομα μαθητή δοθεί το κενό (" ") εμφανίζοντας το πλήθος των μαθητών για τους οποίους υπολογίστηκε ο μέσος όρος.
Αρχικοποίηση
Μετρητή
Αρχικοποίηση μετρητή
συνθήκης ΌΣΟ
Είσοδος Δεδομένων
Εμφάνιση Μέσου Όρου
Προσθέτω έναν μαθητή στον μετρητή
Διαβάζω το όνομα του επόμενου μαθητή
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Παράδειγμα 2.16.
Σε ένα σουπερμάρκετ κάθε πελάτης δικαιούται μια δωροεπιταγή 6€ αν συμπληρώσει 200 πόντους. Να αναπτυχθεί αλγόριθμος ο οποίος θα διαβάζει τους πόντους που κερδίζει ένας συγκεκριμένος πελάτης σε κάθε επίσκεψη στο σουπερμάρκετ και θα εμφανίζει μετά από πόσες επισκέψεις παίρνει τη δωροεπιταγή και ποιος είναι ο μέσος όρος πόντων σε κάθε επίσκεψη.
Αρχικοποίηση
Μετρητή
Αρχικοποίηση μετρητή
συνθήκης ΌΣΟ
Είσοδος Δεδομένων
Υπολογισμός Συνολικών Πόντων
Αυξάνω τον μετρητή κατά ένα
Υπολογισμός Μέσου Όρου
Αρχικοποίηση
Αθροίσματος
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
Παράδειγμα 2.17.
Κατάλογος επιλογών.
Ο παραπάνω βρόχος επαναλαμβάνεται μέχρι να δοθεί 1, 2 ή 3. Με τον τρόπο αυτό προστατεύεται το πρόγραμμα εφαρμογής από τυχόν λανθασμένη εισαγωγή τιμών από τον χρήστη.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
ΕΠΑΝΑΛΑΒΕ ... ΜΕΧΡΙΣ_ΌΤΟΥ
Εκτελούνται οι εντολές μέχρις ότου η συνθήκη γίνει αληθής.
Οι εντολές του βρόχου εκτελούνται τουλάχιστον μία φορά.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
ΓΙΑ ... ΑΠΟ ... ΜΕΧΡΙ
Παράδειγμα 2.18.
Να εκπονηθεί αλγόριθμος ο οποίος θα διαβάζει 100 αριθμούς και θα υπολογίζει και θα εμφανίζει το άθροισμά τους.
Αρχικοποίηση
Αθροιστή
Το βήμα εξ' ορισμού είναι 1 και είναι προαιρετικό.
Η νέα τιμή της μεταβλητής Σ είναι η παλιά συν α
Η χρήση της εντολής
ΓΙΑ
γενικά προτιμάται όταν είναι γνωστό το πλήθος των επαναλήψεων.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.7.4 Δομή Επανάληψης
ΓΙΑ ... ΑΠΟ ... ΜΕΧΡΙ
ΕΠΑΝΑΛΑΒΕ ... ΜΕΧΡΙΣ_ΌΤΟΥ
ΌΣΟ ... ΕΠΑΝΑΛΑΒΕ
ΌΣΟ ... ΕΠΑΝΑΛΑΒΕ
ΌΣΟ ... ΕΠΑΝΑΛΑΒΕ
ΌΣΟ ... ΕΠΑΝΑΛΑΒΕ
Πρέπει:
τ1 <= τ2, αν β > 0
και
τ1 >= τ2, αν β < 0.
Αν τ1 > τ2 και β = 0 δεν θα εκτελεστούν οι εμπεριεχόμενες εντολές της Για,
ενώ αν τ1 <= τ2 και β = 0 η εντολή επανάληψης θα εκτελείται άπειρες φορές (ατέρμονας βρόχος).
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Οι βασικές λειτουργίες ή πράξεις επί των δομών δεδομένων είναι:
Αναζήτηση
(searching),
Εισαγωγή
(insertion),
Μεταβολή
ή
τροποποίηση
(modification),
Διαγραφή
(deletion) ή
ακύρωση,
Ταξινόμηση
(sorting),
Συγχώνευση
(merging),
Προσάρτηση
(append),
Αντιγραφή
(copying), κ.ά.
Στην πράξη σπάνια υπάρχουν όλες οι λειτουργίες σε μια δομή.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Η πιο συνηθισμένη και απλή δομή δεδομένων είναι ο πίνακας.
Ενότητα 2η
Αποτελούνται από ένα σύνολο ομοειδών απλών στοιχείων.
Το μέγεθος ενός πίνακα συνήθως είναι σταθερό και προκαθορισμένο.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.23.
Εισαγωγή στοιχείων σε πίνακα
Είσοδος δεδομένων αγνώστου πλήθους
Δείκτης
Ενεργοποίηση συνθήκης
Αυξάνουμε τον δείκτη κατά ένα
Αποθηκεύουμε το στοιχείο στον πίνακα στη θέση που δείχνει ο δείκτης
Διαβάζουμε το επόμενο στοιχείο
Αποθηκεύουμε τη διάσταση του πίνακα (πλήθος στοιχείων πίνακα)
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.23.
Εισαγωγή στοιχείων σε πίνακα
Είσοδος δεδομένων γνωστού πλήθους
Πριν από κάθε επεξεργασία πίνακα απαιτείται να εισαχθούν δεδομένα σε αυτόν.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.24.
Εκτύπωση πίνακα
Παράδειγμα 2.25.
Τροποποίηση στοιχείων πίνακα
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.26.
Άθροισμα στοιχείων πίνακα
Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν βαθμούς μαθητών. Να αναπτυχθεί αλγόριθμος, ο οποίος να υπολογίζει και να εμφανίζει το μέσο όρο βαθμολογίας των μαθητών.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.27.
Μέγιστο στοιχείο πίνακα
Δίδεται ο μονοδιάστατος πίνακας Β που περιέχει Ν βαθμούς μαθητών. Να αναπτυχθεί αλγόριθμος, ο οποίος να υπολογίζει και να εμφανίζει το μέσο όρο βαθμολογίας των μαθητών.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.28.
Επεξεργασία δισδιάστατου πίνακα
Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των μαθητών της Γ’ γυμνασίου ενός σχολείου και τους βαθμούς των μαθητών στη γυμναστική, σε καθένα από τα 3 τρίμηνα, να υπολογίζει και να επιστρέφει το μέσο όρο βαθμολογίας κάθε μαθητή και το συνολικό μέσο όρο.
Ο πίνακας Β έχει Ν γραμμές και 3 στήλες. Σε κάθε μία γραμμή υπάρχουν οι βαθμολογίες των τριών τριμήνων για κάθε ένα μαθητή.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.29.
Σειριακή αναζήτηση
Σε ένα μονοδιάστατο πίνακα είναι καταχωρημένα τα ονόματα των σχολείων που συμμετέχουν σε έναν διαγωνισμό επιχειρηματικότητας και έχουν κατασκευάσει ένα χώρο παρουσίασης του επιχειρηματικού τους σχεδίου (που εν συντομία θα λέγεται περίπτερο). Ο αριθμός του περιπτέρου κάθε σχολείου είναι η θέση του σχολείου στον πίνακα. Δηλαδή στο πρώτο κελί του πίνακα είναι το όνομα του σχολείου που έχει το περίπτερο με αριθμό 1, στο δεύτερο κελί του πίνακα είναι το όνομα του σχολείου που έχει το περίπτερο με αριθμό 2 κ.ο.κ. Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των σχολείων που συμμετέχουν στο διαγωνισμό με περίπτερο και τον πίνακα με τα ονόματα των σχολείων, να διαβάζει το όνομα ενός σχολείου και να ψάχνει στον πίνακα, αν υπάρχει αυτό το σχολείο. Ο αλγόριθμος θα επιστρέφει το αποτέλεσμα της αναζήτησης, δηλαδή αν υπάρχει ή όχι το αναζητούμενο σχολείο, και αν υπάρχει τη θέση του στον πίνακα, αλλιώς ως θέση την τιμή μηδέν.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.2.8 Βασικές Αλγοριθμικές Λειτουργίες σε Δομές Δεδομένων
Παράδειγμα 2.30.
Ταξινόμηση με επιλογή
Να αναπτυχθεί αλγόριθμος ο οποίος με δεδομένο το πλήθος των μαθητών της Γ’ γυμνασίου ενός σχολείου και τον τελικό βαθμό του κάθε μαθητή στο μάθημα «Πληροφορική», να ταξινομεί τον πίνακα των βαθμών σε αύξουσα τάξη, από το μικρότερο στο μεγαλύτερο βαθμό. Στη συνέχεια να επιστρέφει τον ταξινομημένο πίνακα.
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Προγραμματισμός
Στόχοι του κεφαλαίου αυτού είναι να μπορούν οι μαθητές:

- να δημιουργούν ευκρινές γνωσιακό και οργανωμένο νοητικό σχήμα που να περιλαμβάνει τα είδη και τεχνικές προγραμματισμού, με βάση την πρότερη εμπειρία τους.
- να συνδυάζουν αλγοριθμικές δομές και δεδομένα/δομές δεδομένων για να δημιουργούν κώδικα/πρόγραμμα.
- να διαπιστώνουν ότι οι σημερινές εφαρμογές είναι αρκετά πολύπλοκες και η δημιουργία τους ακολουθεί συγκεκριμένα μοντέλα ανάπτυξης εφαρμογών λογισμικού που εξελίσσονται σε συγκεκριμένες φάσεις.
Τα άτομα που γράφουν και συντάσσουν ένα πρόγραμμα ονομάζονται
προγραμματιστές
.
Η εργασία σύνταξης των προγραμμάτων σε κάποια γλώσσα προγραμματισμού ονομάζεται
προγραμματισμός
.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Πρόγραμμα
είναι το σύνολο των εντολών που χρειάζεται να δοθούν στον υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος για την επίλυση του προβλήματος.
Οι ενέργειες αυτές είναι:
αποθήκευση
,
ανάκτηση
,
στοιχειώδης

αριθμητικές

πράξεις
και
συγκρίσεις
.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Οι γλώσσες προγραμματισμού αναπτύχθηκαν με σκοπό την επικοινωνία του ανθρώπου (προγραμματιστή) με τη μηχανή (υπολογιστή).
Ο υπολογιστής κάνει στοιχειώδεις ενέργειες σε ακολουθίες των δύο ψηφίων 0 και 1 (
bits
)
με ασύλληπτη ταχύτητα.
Ακολουθίες δυαδικών ψηφίων 0 και 1
Ελάχιστοι μπορούν να κατανοήσουν και να υλοποιήσουν τέτοια προγράμματα.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Αρχικά τα προγράμματα γράφονταν σε
γλώσσα μηχανής.
(1
η γενιά
)
Συμβολικά ονόματα τα οποία αντιστοιχούν σε εντολές της γλώσσας μηχανής.
Το έργο της μετάφρασης των εντολών σε γλώσσα μηχανής το αναλαμβάνει ο
συμβολομεταφραστής
(
assembler
).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Στη συνέχεια αναπτύχθηκαν οι
συμβολικές γλώσσες.
(2
η γενιά
)
Η έλλειψη εντολών σύνθετων λειτουργιών στις παραπάνω γλώσσες οδηγεί σε μακροσκελή προγράμματα.
Είναι αδύνατο να μεταφερθούν
και να εκτελεστούν σε υπολογιστή διαφορετικής αρχιτεκτονικής.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Οι
συμβολικές γλώσσες
παραμένουν στενά συνδεδεμένες με την αρχιτεκτονική του κάθε υπολογιστή.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Οι παραπάνω ανεπάρκειες και η προσπάθεια για καλύτερη επικοινωνία ανθρώπου – μηχανής οδήγησαν στην εμφάνιση των γλωσσών
υψηλού επιπέδου.
(
3η γενιά
)
Σε σχέση με τις συμβολικές γλώσσες στις γλώσσες υψηλού επιπέδου:
είναι φυσικότερος και πιο ανθρώπινος ο τρόπος έκφρασης των προβλημάτων.
υπάρχει δυνατότητα μεταφοράς, «
μεταφερσιμότητα
» δηλαδή,
εκτέλεσης των προγραμμάτων σε οποιοδήποτε υπολογιστή.
είναι εύκολη η εκμάθηση, η διόρθωση των λαθών και η συντήρηση των προγραμμάτων.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Υψηλού Επιπέδου Γλώσσες Προγραμματισμού:
FORTRAN
, 1957 (ΙΒΜ), κατάλληλη για την επίλυση μαθηματικών και επιστημονικών προβλημάτων.
COBOL
, 1959, κατάλληλη για ανάπτυξη εμπορικών και γενικά διαχειριστικών εφαρμογών.
LISP
, 1958, προσανατολίζεται σε χειρισμό λιστών από σύμβολα. Χρησιμοποιείται στο χώρο της τεχνητής νοημοσύνης.
PROLOG
, 1972,χρησιμοποιεί μεθόδους λογικής για να αναπαραστήσει τη γνώση και να επιλύσει προβλήματα. Χρησιμοποιείται στο χώρο της τεχνητής νοημοσύνης.
BASIC
, 1964, αναπτύχθηκε για την εκπαίδευση αρχαρίων στον προγραμματισμό. Σχεδιάστηκε για να γράφονται σύντομα προγράμματα τα οποία εκτελούνται με τη βοήθεια διερμηνευτή.
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Υψηλού Επιπέδου Γλώσσες Προγραμματισμού (συνέχεια):
PASCAL
, 1970, γλώσσα γενικής χρήσης. Διέπεται από τις αρχές του δομημένου προγραμματισμού. Επηρέασε την ανάπτυξη άλλων γλωσσών όπως η ADA.
C
και
C++
, 1972 και 1983, δημιουργήθηκε στα τα εργαστήρια BELL και χρησιμοποιήθηκε για την ανάπτυξη του λειτουργικού συστήματος UNIX. Είναι γλώσσα με ισχυρά χαρακτηριστικά. Η C++ είναι γλώσσα αντικειμενοστρεφούς προγραμματισμού.
JAVA
, 1995, γλώσσα αντικειμενοστρεφής που αναπτύχθηκε από τη SUN με σκοπό την ανάπτυξη εφαρμογών για το διαδίκτυο.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Γλώσσες όπως η BASIC, η C++, η PASCAL που είναι μεν κειμενικές, εξελίχθηκαν σε Visual Basic,
Visual C++, Delphi, ώστε να διαθέτουν και οπτικό περιβάλλον προγραμματισμού.
Το
LabView
χρησιμοποιείται από επιστήμονες και μηχανικούς στο σχεδιασμό, τον έλεγχο και τη δοκιμή καταναλωτικών προϊόντων
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Αναπτύχθηκαν όμως και γλώσσες όπως η
SCRATCH

BYOB
και η
Google AppInvertor
που είναι αποκλειστικά οπτικές γλώσσες προγραμματισμού (VPL)
Γλώσσες όπως η
LOGO
και το
GameMaker
αναπτύχθηκαν για εκπαιδευτικούς σκοπούς
Η τάση αυτή οδήγησε στις γλώσσες τέταρτης γενιάς (
SQL
)
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού
Οι παραπάνω γενιές γλωσσών προγραμματισμού απευθύνονται μόνο σε προγραμματιστές
Σταδιακά πολλές γλώσσες εφοδιάστηκαν με εργαλεία προγραμματισμού που αποκρύπτουν πολλές λεπτομέρειες από τις τεχνικές υλοποίησης και με αυτά ο χρήστης μπορεί να επιλύει μόνος του μικρά προβλήματα εφαρμογών.
Ως «
Προγραμματιστικό Υπόδειγμα
» εννοείται ένα πρότυπο ανάπτυξης προγραμμάτων, δηλαδή μία καθορισμένη μεθοδολογία με βάση την οποία αναπτύσσονται η δομή και τα στοιχεία του προγράμματος.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.2 Προγραμματιστικά Υποδείγματα
Η ανάπτυξη ενός προγράμματος σε κάποια γλώσσα προγραμματισμού βασίζεται σε ένα πρότυπο ή μία καθορισμένη μεθοδολογία.
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.2 Προγραμματιστικά Υποδείγματα
Τα κυριότερα προγραμματιστικά υποδείγματα είναι:
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Προστακτικός Προγραμματισμός
Τα προγράμματα αναπτύσσονται με απλές εντολές σε προστακτική (Διάβασε, Εμφάνισε, Επανάλαβε) που ζητούν από τον υπολογιστή να εκτελέσει συγκεκριμένες ενέργειες και να ακολουθήσει βήματα με μία λογική σειρά για να επιλύσει το πρόβλημα που έχει δοθεί(FORTRAN, BASIC, PASCAL, C).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Δηλωτικός Προγραμματισμός
Σε αντίθεση με τον προστακτικό προγραμματισμό, το πρόβλημα επιλύεται δηλώνοντας απλώς τις επιθυμητές ιδιότητες του αποτελέσματος. Το πρόγραμμα περιέχει λογικές εκφράσεις, ενώ κατά την εκτέλεσή του γίνεται έλεγχος για το ποιες ακριβώς ικανοποιούνται (PROLOG και SQL).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Συναρτησιακός Προγραμματισμός
Το πρόβλημα επιλύεται με τη χρήση μαθηματικών συναρτήσεων. Οι συναρτήσεις παράγουν αποτελέσματα με βάση τα δεδομένα εισόδου τους (LISP).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Αντικειμενοστρεφής Προγραμματισμός
Βασίζεται στην έννοια του αντικειμένου. Τα αντικείμενα δημιουργούνται από τις κλάσεις. Μία κλάση ορίζει τα χαρακτηριστικά και τη συμπεριφορά ενός τύπου αντικειμένου (πρότυπο). Ένα αντικείμενο είναι μία δομή δεδομένων η οποία περιέχει τόσο τα δεδομένα (χαρακτηριστικά που την περιγράφουν) όσο και τις διαδικασίες (μεθόδους) που επενεργούν σε αυτά. Τα αντικείμενα μπορούν να αλληλεπιδρούν μεταξύ τους (C++ και JAVA).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Λογικός Προγραμματισμός
Τα προγράμματα είναι γραμμένα ως ένα σύνολο από προτάσεις σε μορφή λογικών εκφράσεων. Το συγκεκριμένο υπόδειγμα βασίζεται στα γεγονότα, στους κανόνες και στις ερωτήσεις και ακολουθείται κυρίως στο πεδίο της Τεχνητής Νοημοσύνης (PROLOG).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Παράλληλος Προγραμματισμός
Τα προγράμματα εκμεταλλεύονται την ύπαρξη υπολογιστών που διαθέτουν περισσότερους από έναν επεξεργαστές. Έτσι επιτυγχάνεται η αύξηση των υπολογιστικών επιδόσεων και η μείωση του χρόνου εκτέλεσης της εφαρμογής. Θα πρέπει όμως το πρόβλημα προς επίλυση να διαιρεθεί σε τμήματα που μπορούν να επιλυθούν παράλληλα (Occam).
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.2 Προγραμματιστικά Υποδείγματα
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
Ο δομημένος προγραμματισμός χρησιμοποιεί:

την ιεραρχική σχεδίαση για την ανάπτυξη του αλγορίθμου που επιλύει το πρόβλημα.
τον τμηματικό προγραμματισμό για τη σχεδίαση του προγράμματος και για τη δημιουργία των ενοτήτων του.
τρεις βασικές συνιστώσες για τη συγγραφή των επιμέρους ενοτήτων που καθιστούν άσκοπη τη χρήση της εντολής GOTO (Πήγαινε).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.3 Δομημένος Προγραμματισμός
Η
ιεραρχική σχεδίαση
ή ανάλυση «από πάνω προς τα κάτω» χρησιμοποιεί τη στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υποπροβλήματα.
Υποπρόγραμμα
είναι το τμήμα προγράμματος που επιτελεί ένα αυτόνομο έργο και έχει γραφεί χωριστά από το υπόλοιπο πρόγραμμα.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.3 Δομημένος Προγραμματισμός
Ο
τμηματικός προγραμματισμός
υλοποιεί την ιεραρχική σχεδίαση όπου κάθε υποπρόβλημα αποτελεί ανεξάρτητη ενότητα που ονομάζεται υποπρόγραμμα.
Όλες οι ενότητες του προγράμματος μπορούν να αναπτυχθούν μόνο με τρεις βασικές συνιστώσες: τη
δομή ακολουθίας
, τη
δομή επιλογής
και τη
δομή επανάληψης
ή συνδυασμό τους.
Πλεονεκτήματα δομημένου προγραμματισμού:
Ευκολότερη ανάπτυξη σύνθετων προγραμμάτων,
Μείωση των λαθών,
Δημιουργία πιο κατανοητών προγραμμάτων,
Ευκολότερη διόρθωση των προγραμμάτων.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.3 Δομημένος Προγραμματισμός
Παράδειγμα 2.32.
Να γραφεί πρόγραμμα το οποίο θα διαβάζει αριθμούς και θα υπολογίζει το μέσο όρο τους. Η διαδικασία εισαγωγής αριθμών θα σταματά αν διαβαστεί ο αριθμός 0, χωρίς να συνυπολογίζεται. Αν ο πρώτος αριθμός που θα διαβαστεί είναι το μηδέν, θα εκτυπώνει το μήνυμα «
Δεν δόθηκε άλλο στοιχείο εκτός του μηδενός
».
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.1 Αναφορά σε Γλώσσες Προγραμματισμού και «Προγραμματιστικά Υποδείγματα»
Ενότητα 2η
2.3.1.3 Δομημένος Προγραμματισμός
Για τη σύνταξη του
πηγαίου προγράμματος
χρησιμοποιείται ένα ειδικό πρόγραμμα το οποίο ονομάζεται
συντάκτης
(editor).
Στη συνέχεια το πηγαίο πρόγραμμα πρέπει να μεταφραστεί σε μορφή αναγνωρίσιμη και εκτελέσιμη από τον υπολογιστή δηλαδή σε εντολές γλώσσας μηχανής. Το έργο της μετάφρασης το αναλαμβάνουν δύο προγράμματα ο
μεταγλωττιστής
ή ο
διερμηνευτής
.
Τα
λογικά
λάθη δεν είναι δυνατό να ανιχνευθούν από τα μεταφραστικά προγράμματα.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.33.
Να αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέτει το περιεχόμενο δύο μεταβλητών στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL).
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Τα λάθη που εμφανίζονται κατά τη μετάφραση ονομάζονται
συντακτικά
.
Παράδειγμα 2.34.
Να αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέτει το περιεχόμενο δύο μεταβλητών στο προγραμματιστικό περιβάλλον FreePascal.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.35.
Nα αναπτυχθεί πρόγραμμα το οποίο θα αντιμεταθέτει το περιεχόμενο δύο μεταβλητών στο προγραμματιστικό περιβάλλον SCRATCH.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.36.
Εύρεση μέγιστου κοινού διαιρέτη δύο θετικών ακέραιων αριθμών με τον επαναληπτικό αλγόριθμο του Ευκλείδη σε γλώσσα SCRATCH.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.37.
Να γραφεί πρόγραμμα για την εύρεση του μέγιστου κοινού διαιρέτη δύο θετικών ακεραίων αριθμών με τον αναδρομικό αλγόριθμο του Ευκλείδη στη γλώσσα LOGO. Ο κώδικας να αναπτυχθεί ως διαδικασία στο περιβάλλον MicroWorlds Pro.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.40.
Σε ένα ραδιοφωνικό σταθμό το κόστος ενός διαφημιστικού μηνύματος σε σχέση με τα δευτερόλεπτα μετάδοσης, υπολογίζεται κλιμακωτά σύμφωνα με τον παρακάτω πίνακα.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.39.
Να γραφεί πρόγραμμα σε γλώσσα SCRATCH το οποίο θα αναζητά αν υπάρχει ένα όνομα σε μία λίστα και θα εμφανίζει κατάλληλο μήνυμα σχετικά με την εύρεσή του.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.38.
Να γραφεί πρόγραμμα που θα δέχεται δύο θετικούς ακέραιους αριθμούς και θα εμφανίζει το μέγιστο κοινό διαιρέτη και το ελάχιστο κοινό πολλαπλάσιο τους. Η υλοποίηση να γίνει στο περιβάλλον MicroWorlds Pro.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
A. Να αναπτύξετε πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο
i. να διαβάζει το πλήθος των διαφορετικών μηνυμάτων που πρόκειται να μεταδώσει ο σταθμός την επόμενη εβδομάδα
ii. να διαβάζει τη χρονική διάρκεια κάθε μηνύματος και να υπολογίζει καλώντας κατάλληλο υποπρόγραμμα το κόστος του
iii. να εμφανίζει με κατάλληλο μήνυμα τα συνολικά έσοδα του σταθμού καθώς και το ποσοστό (%) των μηνυμάτων με χρονική διάρκεια άνω των 30 δευτερολέπτων.
Β. Να γράψετε τον αλγόριθμο για τον υπολογισμό του κόστους του
κάθε μηνύματος.
Παράδειγμα 2.41.
Να γραφεί πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο να δέχεται έναν πίνακα που περιέχει τα ονόματα των μαθητών ενός τμήματος και έναν παράλληλο πίνακα με το βαθμό απολυτηρίου τους. Το πρόγραμμα να ταξινομεί τον πίνακα με τα ονόματα σε φθίνουσα σειρά με βάση τους βαθμούς. Τέλος να εμφανίζει το όνομα του κάθε μαθητή και δίπλα τον βαθμό του.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Παράδειγμα 2.42.
Να αναπτυχθεί πρόγραμμα στο προγραμματιστικό περιβάλλον Διερμηνευτής Ψευδογλώσσας (ViALGOL) το οποίο να διαβάζει τους βαθμούς των μαθητών ενός τμήματος και να εμφανίζει με κατάλληλα μηνύματα το μέσο όρο των βαθμών καθώς και πόσοι από αυτούς είναι μεγαλύτεροι από το μέσο όρο. Να γίνεται έλεγχος ότι οι βαθμοί που εισάγονται είναι ακέραιες τιμές μεταξύ του 0 και του 20. Μετά την εισαγωγή κάθε βαθμού το πρόγραμμα να ερωτά τον χρήστη αν θέλει να συνεχίσει την καταχώρηση εμφανίζοντας το μήνυμα «Θα συνεχίσετε; Πληκτρολογήστε Ν ή Ο» και ανάλογα με την απάντησή του (αποδεκτές τιμές μόνο τα γράμματα του ελληνικού αλφαβήτου «Ν», «ν», «Ο» και «ο»), να συνεχίζει την καταχώριση ή να εμφανίζει τα αποτελέσματα της επεξεργασίας.
Κοκκινίδης Ιωάννης
ΠΕ20 - Πληροφορικός
2.3.2 Σχεδίαση και Συγγραφή Κώδικα
Ενότητα 2η
Full transcript