Προγραμματισμός

Επίλυση προβλήματος με Η/Υ

Ανάλυση του προβλήματος

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

Ο αλγόριθμος του προβλήματος

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

Το λογικό διάγραμμα

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

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

Τι είναι πρόγραμμα

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

Γλώσσες προγραμματισμού

Ο υπολογιστής δεν καταλαβαίνει τη δική μας γλώσσα. Η γλώσσα την οποία καταλαβαίνει ονομάζεται γλώσσα μηχανής. Η γλώσσα μηχανής αποτελείται μόνο από δυαδικά ψηφία (0 και 1). Επειδή όμως, είναι πάρα πολύ δύσκολο να γράψουμε εντολές σε γλώσσα μηχανής, αναπτύχθηκαν οι λεγόμενες γλώσσες προγραμματισμού ή γλώσσες υψηλού επιπέδου, οι οποίες χρησιμοποιούν λέξεις ή συντομογραφίες λέξεων της Αγγλικής γλώσσας. Τέτοιες γλώσσες είναι η Pascal, η Basic, η C, η Cobol και πολλές άλλες. Στη συνέχεια, ένα ειδικό μεταφραστικό πρόγραμμα αναλαμβάνει να μεταφράσει το πρόγραμμα που γράψαμε σε κάποια γλώσσα προγραμματισμού, σε γλώσσα μηχανής, η οποία είναι κατανοητή από τον υπολογιστή. Αν το μεταφραστικό πρόγραμμα, βρει κάποιο συντακτικό λάθος στις εντολές μας, θα εμφανίσει σχετικό μήνυμα. Αν για παράδειγμα, γράψαμε λάθος μία αγγλική λέξη που είναι εντολή της γλώσσας (πχ. begun αντί για begin), το μεταφραστικό πρόγραμμα θα εντοπίσει το λάθος και θα μας ζητήσει να το διορθώσουμε. Υπάρχει όμως περίπτωση, το πρόγραμμά μας να έχει λογικά λάθη. Αν για παράδειγμα, θέλαμε να προσθέσουμε δύο αριθμούς και κατά λάθος χρησιμοποιήσαμε το σύμβολο της αφαίρεσης αντί της πρόσθεσης, το μεταφραστικό πρόγραμμα δεν μπορεί να εντοπίσει αυτό το λάθος. Σ' αυτή την περίπτωση, οι αριθμοί θα αφαιρεθούν αντί να προστεθούν και το αποτέλεσμα θα είναι λάθος, ενώ το πρόγραμμα θα είναι συντακτικά σωστό. Τα λογικά λάθη είναι πολλές φορές δύσκολο να εντοπιστούν (γιατί πρέπει να τα εντοπίσουμε εμείς), ενώ τα συντακτικά λάθη (πχ. λάθος ορθογραφία ή σύνταξη εντολών) εντοπίζονται αμέσως από το μεταφραστικό πρόγραμμα.

Τα μεταφραστικά προγράμματα: Compilers και Interpreters

Μερικές γλώσσες προγραμματισμού, όπως η GW BASIC, μετατρέπουν και εκτελούν τις εντολές του προγράμματός μας μία-μία. Δηλαδή, μεταφράζουν μια εντολή σε γλώσσα μηχανής, την εκτελούν (δηλαδή κάνει ο υπολογιστής ότι του λέει η συγκεκριμένη εντολή) και μετά συνεχίζουν με την επόμενη εντολή (τη μεταφράζουν και την εκτελούν) κ.ο.κ. Αυτά τα προγράμματα που μεταφράζουν και εκτελούν μία εντολή κάθε φορά, ονομάζονται διερμηνείς (interpreters). ΄Όπως ακριβώς ένας διερμηνέας, δεν μεταφράζει όλα τα λεγόμενα κάποιου από μια γλώσσα σε μια άλλη, αλλά φράση-φράση.

Κάποιες άλλες γλώσσες προγραμματισμού, όπως η PASCAL ή η VISUAL BASIC, μετατρέπουν όλες μαζί τις εντολές σε γλώσσα μηχανής, και αφού τελειώσουν τη μετάφραση, εκτελούν το πρόγραμμα. Τα προγράμματα, που πρώτα μεταφράζουν και στη συνέχεια εκτελούν τις εντολές ενός προγράμματος, ονομάζονται μεταφραστές (compilers). Το πρόγραμμα που γράφουμε εμείς με τη βοήθεια της γλώσσας προγραμματισμού που διαλέξαμε, ονομάζεται πηγαίο πρόγραμμα. Το πρόγραμμα (σε γλώσσα μηχανής) που προκύπτει από τη μετάφραση που έκανε ο compiler, ονομάζεται αντικείμενο πρόγραμμα και είναι άμεσα κατανοητό από τον υπολογιστή.

Παράδειγμα

Πρόβλημα: Δίνονται δύο αριθμοί. Να υπολογιστεί και να εμφανιστεί στην οθόνη το άθροισμά τους.

Ανάλυση: Αρχικά πρέπει να δώσουμε στον υπολογιστή τους δύο αριθμούς, έστω Α και Β. (Τα δεδομένα αλλά και τα αποτελέσματα ενός προβλήματος, πρέπει να έχουν ένα όνομα). Στη συνέχεια πρέπει να υπολογίζεται το άθροισμα των αριθμών (έστω ονομάζουμε το άθροισμα SUM). Τέλος πρέπει να εμφανίζεται στην οθόνη το άθροισμα αυτό.

Αλγόριθμος

Βήμα 1ο: Δίνουμε τον πρώτο αριθμό Α

Βήμα 2ο: Δίνουμε το δεύτερο αριθμό Β.

Βήμα 3ο: Υπολογίζουμε το άθροισμά τους SUM

Βήμα 4ο: Εμφανίζουμε στην οθόνη το άθροισμα SUM

Βήμα 5ο: ΤΕΛΟΣ

Λογικό διάγραμμα

Πρόγραμμα (πχ. σε γλώσσα PASCAL)

program prosthesi;

var a,b,sum : real;

begin

readln(a);

readln(b);

sum:=a+b;

writeln(sum);

end.