Τι είναι οι αλγόριθμοι;
Ο αλγόριθμος είναι η κομψή και αυστηρή περιγραφή της λύσης ενός προβλήματος. Ως "πρόβλημα" θεωρούμε κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση που μας απασχολεί και πρέπει να αντιμετωπιστεί. Κάθε πρόβλημα έχει κάποια δεδομένα και κάποια ζητούμενα. "Λύση" είναι η διαδικασία που από τα δεδομένα φτάνουμε στα ζητούμενα.
Αλγόριθμος είναι μια πεπερασμένη ακολουθία ενεργειών (κάπου σταματάει, δεν είναι άπειρη), αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο που περιγράφουν τη διαδικασία εκτέλεσης μιας εργασίας ή τον τρόπο επίλυσης ενός προβλήματος.
Παραδείγματα
- Η μαθηματική επίλυση ενός προβλήματος γεωμετρίας.
- Μια συνταγή μαγειρικής
- Οι οδηγίες συναρμολόγησης μιας συσκευής ή ενός επίπλου ή ενός παιχνιδιού
- Η λύση ενός γρίφου.
- Τα βήματα που αποτελούν έναν αλγόριθμο ονομάζονται εντολές (ενός προγράμματος) ή οδηγίες (πώς να συναρμολογήσεις κάτι).
Χαρακτηριστικά ενός αλγορίθμου
Ένας αλγόριθμος πρέπει να ικανοποιεί τις εξής προϋποθέσεις:
• Πρέπει να είμαστε σίγουροι ότι κάποτε θα τελειώσει
• Πρέπει να είναι γραμμένος με απλά λόγια και να οδηγεί στη λύση όσο το δυνατόν συντομότερα
• Δεν πρέπει να περιέχει ασάφειες
• Πρέπει να έχουν προβλεφθεί από πριν πιθανά προβλήματα για ειδικές περιπτώσεις (π.χ. απαγορεύεται η διαίρεση με το μηδέν, ή η τετραγωνική ρίζα και ο λογάριθμος αρνητικού αριθμού)
Υλοποίηση του αλγορίθμου: Γλώσσες προγραμματισμού
Ο υπολογιστής μπορεί να καταλάβει μόνο μια ακολουθία χαρακτήρων 0 και 1 (γλώσσα μηχανής). Όμως η γλώσσα αυτή είναι πολύ δύσκολο να γίνει κατανοητή από τον άνθρωπο. Για το λόγο αυτό έχουν αναπτυχθεί γλώσσες προγραμματισμού που είναι πολύ πιο φιλικές για τον προγραμματιστή αφού μοιάζουν με τη φυσική μας γλώσσα (συνήθως την αγγλική).
Οι γλώσσες προγραμματισμού έχουν κάθε μία το δικό της αλφάβητο, το δικό της λεξιλόγιο και το δικό της συντακτικό . Αλλά λίγο πολύ όλες μοιάζουν μεταξύ τους. Το σημαντικότερο είναι ο αλγόριθμος. Μετά η δουλειά που μένει για τον προγραμματιστή είναι η πληκτρολόγηση των εντολών). Οι εντολές του αλγορίθμου λοιπόν γράφονται στη γλώσσα προγραμματισμού. Στη συνέχεια μεταγλωτίζονται μία φορά από ειδικό πρόγραμμα (τον μεταγλωτιστή) το οποίο δημιουργεί το εκτελέσιμο αρχείο που περιέχει τις εντολές που δώσαμε γραμμένες πλέον σε γλώσσα μηχανής ώστε ο να μπορεί ο υπολογιστής να τις εκτελέσει.
Δεν πρέπει να ξεχνάμε ότι ο υπολογιστής θα εκτελέσει βήμα-βήμα πιστά οποιεσδήποτε εντολές του δώσουμε. Αν λοιπόν το αποτέλεσμα μετά την εκτέλεση ενός προγράμματος δεν είναι το αναμενόμενο, τότε αυτό θα οφείλεται σε λογικό λάθος του αλγορίθμου που έχουμε σχεδιάσει και όχι σε λάθος εκτέλεσης του υπολογιστή, αφού οι υπολογιστές δεν έχουν τη δυνατότητα να αποφασίζουν για να κάνουν το δικό τους. Γι΄αυτό μη θυμώνετε μαζί τους άδικα! Στην περίπτωση αυτή πρέπει να ελέγξουμε μία-μία τις εντολές στο πρόγραμμα μας για να διαπιστώσουμε αν δίνουμε τις σωστές εντολές με τη σωστή σειρά. Το πλεονέκτημα των υπολογιστών είναι η ταχύτητα των υπολογισμών. Το γεγονός ότι λύνουν έξυπνα προβλήματα όμως οφείλεται στο ότι κάποιος άνθρωπος σχεδίασε έναν έξυπνο αλγόριθμο.
Λειτουργικό σύστημα (OS)
Το λογισμικό (software) του υπολογιστή αποτελείται από τα απαραίτητα προγράμματα που δίνουν τις κατάλληλες εντολές, για να εργάζεται το υλικό μέρος (hardware). Συνίσταται δε από το Λειτουργικό Σύστημα (βασικές οδηγίες για τη λειτουργία του Η/Υ καθώς και για την επικοινωνία του με τον άνθρωπο) και το Λογισμικό Εφαρμογών (Πακέτα εφαρμογών, Γλώσσες Προγραμματισμού, Εκπαιδευτικό Λογισμικό, προγράμματα – εργαλεία κ.α.). Το λειτουργικό σύστημα είναι το πλέον σημαντικό. Τα υπόλοιπα λογισμικά απλά συμπληρώνουν το λειτουργικό σύστημα συμπληρώνοντας το με ακόμα περισσότερα εργαλεία.