Το πρόγραμμα που περιγράφτηκε αμέσως προηγούμενα δεν είναι γραμμένο σε κάποια γλώσσα προγραμματισμού. Οι γλώσσες αυτές έχουν πολύ αυστηρό συντακτικό το οποίο είναι αναγκαστικά περιοριστικό στο προγραμματιστή ακριβώς για να είναι ερμηνεύσιμο από μια μηχανή.
Για παράδειγμα, στη γλώσσα προγραμματισμού BASIC1.1, μια από τις απλούστερες ίσως γλώσσες, το παραπάνω πρόγραμμα μπορεί να γραφεί ως εξής:
10 print "Give a: " 20 input a 30 print "Give b: " 40 input b 50 x = 0 60 if a<b then goto 100 70 x = x + 1 80 a = a - b 90 goto 60 100 print "The quotient a/b is "; xΗ γλώσσα BASIC, στη μορφή αυτή που φαίνεται στο πιο πάνω πρόγραμμα συναντάται πλέον σπάνια. Υπάρχουν πιο εξελιγμένες μορφές της γλώσσας που χρησιμοποιούνται σήμερα.
Παρ' όλα αυτά, στο παραπάνω πρόγραμμα, όπου υπολογίζεται το πηλίκο της διαίρεσης του ακεραίου a διαιρούμενου από τον ακέραιο b (θετικοί ακέραιοι κι οι δυο), εμφανίζονται τα βασικότερα στοιχεία ενός προγράμματος και θα το χρησιμοποιήσουμε ως το βασικό παράδειγμα για την εισαγωγή τους.
Η γλώσσα BASIC, λόγω της απλότητάς της, είναι μάλλον προσφορότερη για την εισαγωγή αυτών των βασικών εννοιών από τη γλώσσα C στην οποία θα μεταπηδήσουμε σύντομα. Προχωρούμε λοιπόν τώρα να δούμε πώς δουλεύει το παραπάνω πρόγραμμα και καθ' οδόν θα δούμε ποια είναι τα βασικά στοιχεία ενός προγράμματος γενικά.
Ας κάνουμε όμως πρώτα μια περιγραφή της στρατηγικής που χρησιμοποιείται στον αλγόριθμο που υλοποιείται στο παραπάνω πρόγραμμα BASIC. Πώς δηλ. υπολογίζεται το πηλίκο της διαίρεσης a/b;
Το πηλίκο k της διαίρεσης του a διά του b είναι ο μέγιστος ακέραιος τέτοιος ώστε k . ba. Ο τρόπος που έχουμε επιλέξει εδώ για να υπολογίσουμε το k είναι το να αρχίσουμε να προσθέτουμε το b στον εαυτό του μέχρι αυτό το άθροισμα να ξεπεράσει το a. Το πλήθος των φορών που προσθέσαμε πριν ξεπεραστεί το a είναι το πηλίκο k.
a, b, x
,
που και οι τρεις είναι τύπου ακέραιου.
Οι δύο μεταβλητές a
και b
χρησιμοποιούνται κατ' αρχήν ως μεταβλητές εισόδου:
εκεί κρατάει το πρόγραμμα, στην αρχή τουλάχιστον, τους δύο ακεραίους των οποίων
το πηλίκο θέλουμε να υπολογίσουμε. Αντιθέτως η μεταβλητή x
είναι μεταβλητή που χρησιμοποιείται και για να κρατήσει μερικά ενδιάμεσα
αποτελέσματα, αλλά είναι και η μεταβλητή που στο τέλος των
βασικών υπολογισμών κρατάει το επιθυμητό αποτέλεσμα.
x
ίση με 0,
η 70 αυξάνει την τιμή της ίδιας μεταβλητής κατά 1
και η 80 αφαιρεί από τη μεταβλητή a
την τιμή
της μεταβλητής b
.
Η χρήση του συμβόλου = που μοιάζει κατ' αρχήν αντιφατική
σε σχέση με όσα έχει κανείς συνηθίσει από την αλγεβρική
του χρήση, πρέπει στη γλώσσα BASIC (όπως και στη γλώσσα
C) να ερμηνεύεται ως εξής: αριστερά του = υπάρχει πάντα
μια μεταβλητή και δεξιά του υπάρχει πάντα μια παράσταση.
Το πρόγραμμα πρώτα κάνει όσους υπολογισμούς χρειάζεται
για να υπολογίσει την τιμή της παράστασης (ενδεχομένως
χρησιμοποιώντας και την μεταβλητή που υπάρχει αριστερά
του =, και το αποτέλεσμα αυτό εκχωρεί στη
μεταβλητή που βρίσκεται αριστερά.
a<b
) και μια εντολή (goto 100
) που εκτελείται
μόνο αν ισχύει τη συγκεκριμένη εκείνη χρονική στιγμή
εκτέλεσης του προγράμματος η συνθήκη.
goto
<line number> που εμφανίζεται στις γραμμές 60 και 90
είναι μια εντολή που δεν κάνει τίποτε άλλο από το να μεταφέρει
τον έλεγχο ροής του προγράμματος σε μια συγκεκριμένη γραμμή.
Αμέσως μετά τη γραμμή 90, για παράδειγμα, εκτελείται η γραμμή 60
και ποτέ η 100.
Ας δώσουμε τώρα ένα παράδειγμα της ροής του προγράμματος όταν το πρόγραμμα τρέξει με a ίσο με 13, και b ίσο με 10 (εδώ εννοούμε ότι ο χρήστης πληκτρολογεί τους αριθμούς 13 και 10 στο πληκτρολόγιο και με αυτή τη σειρά). Η ροή λοιπόν του προγράμματος σε αριθμούς γραμμών είναι η εξής:
The quotient a/b is 1
).