Μάθημα : Β' ΤΑΞΗ - Εισαγωγή στην επιστήμη των Η/Υ

Κωδικός : T267181

T267181 - ΧΙΟΝΑΣ ΠΑΠΑΔΟΠΟΥΛΟΣ

Ενότητες μαθήματος

3. Αλγόριθμοι

Η έννοια του αλγορίθμου είναι θεμελιώδης για την επιστήμη της Πληροφορικής.

Αλγόριθμος Ορισμός: Αλγόριθμος είναι η ακριβής περιγραφή μιας σειράς βημάτων που απαιτούνται για την επίλυση ενός προβλήματος.

Ο αλγόριθμος αποτελεί τη βάση για τη δημιουργία ενός προγράμματος που θα εκτελεστεί από έναν ηλεκτρονικό υπολογιστή. Η έννοιά του
είναι γενικότερη από εκείνη του προγράμματος και δε συνδέεται αποκλειστικά με την Πληροφορική

Στην επίλυση προβλημάτων μέσω αλγορίθμων, υπάρχουντρεις (3) διαφορετικοί διακριτοί ρόλοι:

Ο λύτης, αυτός που καλείται να αντιμετωπίσει το πρόβλημα σχεδιάζοντας τον αλγόριθμο.

Ο εκτελεστής, αυτός που εφαρμόζει πιστά τις εντολές του αλγορίθμου που έφτιαξε ο λύτης.

Ο χρήστης, αυτός που ενεργοποιεί τον αλγόριθμο, καλώντας τον εκτελεστή να λύσει, όποτε θέλει, το πρόβλημα.

Χαρακτηριστικά αλγορίθμου

O αλγόριθμος αποτελείται από μια σειρά εντολών που, αν εφαρμοσθούν πιστά, οδηγούν στην επίλυση ενός προβλήματος. Είναι, όμως, οποιαδήποτε σειρά από εντολές ένας αλγόριθμος; Η απάντηση είναι όχι. Οι εντολές ενός αλγορίθμου, αλλά και ο αλγόριθμος ως ολότητα, θα πρέπει να ικανοποιούν κάποια κριτήρια:
Είσοδος: είναι τα στοιχεία που χρειάζεται ο αλγόριθμος για να εκτελεσθεί.
Έξοδος: είναι τα στοιχεία που παράγει ο αλγόριθμος, τα αποτελέσματά του.
Καθοριστικότητα: κάθε εντολή θα πρέπει να καθορίζει με απόλυτη σαφήνεια και ακρίβεια τον τρόπο εκτέλεσής της σε κάθε δυνατή περίπτωση.
Περατότητα: εκτελώντας τα βήματα του αλγορίθμου, θα πρέπει να φθάνουμε σε πέρας (τέλος) σε κάθε δυνατή περίπτωση.
Αποτελεσματικότητα: κάθε εντολή θα πρέπει να είναι διατυπωμένη με απλό τρόπο, ώστε να μπορεί να εκτελεσθεί.

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

Βασικοί τύποι αλγορίθμων
Αλγόριθμοι σειριακής και παράλληλης επεξεργασίας Οι εντολές ενός αλγορίθμου γράφονται η μια κάτω από την άλλη και εκτελούνται ακολουθιακά. Σε κάποιους αλγόριθμους, τμήματα εντολών μπορούν να εκτελεσθούν ταυτόχρονα. Ας θεωρήσουμε έναν αλγόριθμο που αποτελείται από 5 τμήματα, Α έως Ε. Στην Εικόνα 3-4 (α), βλέπουμε την εκτέλεση των τμημάτων του αλγορίθμου με σειριακή επεξεργασία. Αν τα τμήματα Β, Γ, Δ δεν εξαρτώνται το ένα από το άλλο, τότε μπορούν να εκτελεσθούν ταυτόχρονα, μειώνοντας δραστικά το χρόνο εκτέλεσης. Στην Εικόνα 3-4 (β), βλέπουμε την εκτέλεση των τμημάτων του αλγορίθμου με παράλληλη επεξεργασία.

Αλγόριθμος σειριακής επεξεργασίας είναι ένας αλγόριθμος του οποίου τα βήματα εκτελούνται ακολουθιακά το ένα μετά το άλλο, από έναν επεξεργαστή.

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

Επαναληπτικοί αλγόριθμοι
Ένα από τα μεγάλα πλεονεκτήματα της χρήσης των υπολογιστών για την επίλυση προβλημάτων είναι η δυνατότητα επανάληψης μιας διαδικασίας πολλές φορές. Μια επαναληπτική διαδικασία λέγεται βρόχος. Ένας βρόχος που δεν σταματά ποτέ λέγεται ατέρμων.

Αναδρομικοί αλγόριθμοι
Η αναδρομή είναι μια ιδιαίτερη μέθοδος. Αναδρομικός είναι ο αλγόριθμος που καλεί άμεσα ή έμμεσα τον εαυτό του μία ή περισσότερες φορές, επιλύοντας κάθε φορά ένα πρόβλημα της ίδιας φύσης με το αρχικό, αλλά μικρότερου μεγέθους.

Αναπαράσταση αλγορίθμου
Η αναπαράσταση ενός αλγορίθμου μπορεί να γίνει με διάφορους τρόπους, όπως η φυσική γλώσσα, το διάγραμμα ροής, οι γλώσσες περιγραφής αλγορίθμων και οι γλώσσες προγραμματισμού.

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

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

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

Οι γλώσσες προγραμματισμού αποτελούν τις γλώσσες επικοινωνίας του ανθρώπου με τον υπολογιστή. Έχουν σύνολο κωδικοποιημένων εντολών με αυστηρούς κανόνες σύνταξης. Με τη χρήση τους, ο άνθρωπος δίνει εντολές στον υπολογιστή και αυτός τις εκτελεί.

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

 

ΠΑΡΑΔΕΙΓΜΑΤΑ

http://users.sch.gr/vraa8/run/algo1-1.php

 

 

 

Ασκήσεις