Followers

IRO & OGE Dj KAS

Τετάρτη, 18 Μαρτίου 2009

Η Γλώσσα Προγραμματισμού Basic Απλά και Σύντομα


Η Γλώσσα Προγραμματισμού Basic Απλά και Σύντομα


Γενικά για τη Basic
Η γλώσσα προγραμματισμού Basic είναι μια γλώσσα ειδικά φτιαγμένη για όσους είναι αρχάριοι στον προγραμματισμό, όπως δηλώνουν και τα αρχικά του ονόματός της :
Beginners' All-purpose Symbolic Instruction Code, δηλ. Συμβολικός Κώδικας Οδηγιών Γενικής Χρήσης για Αρχάριους.
Για να φορτώσουμε τη γλώσσα Basic γράφουμε από την προτροπή του DOS :
A:\>GWBASIC
και μετά αφού φορτωθεί η γλώσσα και βγει το σύμβολο ΟΚ στην οθόνη, μπορούμε να αρχίσουμε να γράφουμε το πρόγραμμά μας.
Τα προγράμματα της Basic χρησιμοποιούν μπροστά απ' όλες τις εντολές τους έναν ακέραιο αριθμό. Όταν τρέξει το πρόγραμμα, τότε εκτελούνται όλες οι εντολές με την αριθμητική σειρά που έχουν από την πρώτη μέχρι την τελευταία. Μέσα στο πρόγραμμα μπορεί να υπάρχουν, όμως, και εντολές ελέγχου, που κατευθύνουν τη ροή του προγράμματος σ’ άλλες εντολές εκτός αριθμητικής σειράς.
Οι αριθμοί των εντολών του προγράμματος είναι ακέραιες τιμές, αλλά συνήθως χρησιμοποιούμε τα πολλαπλάσια του 10, δηλ. 10, 20, 30 κοκ για να μπορούμε αργότερα να προσθέσουμε και άλλες τιμές ενδιάμεσα, αν χρειαστεί βέβαια.
Η Basic χρησιμοποιεί μια λίστα από εντολές, όπως οι Rem, Input, Print, Cls, End, Goto κ.ά. που η καθεμία κάνει και από μια διαφορετική δουλειά. Πρέπει να γράφουμε μόνο με αγγλικούς χαρακτήρες και τα ελληνικά επιτρέπονται μόνο όταν χρησιμοποιούμε εισαγωγικά για μηνύματα, π.χ. "Δώσε το Ύψος : " ή και στην εντολή Rem :
5 Rem Πρόγραμμα Υπολογισμού Εμβαδού Τετραγώνου
Ένα παράδειγμα προγράμματος σε Basic είναι το εξής :
5 Rem Πρόγραμμα Υπολογισμού Εμβαδού Τριγώνου
10 Cls
20 Input "Δώσε τη Βάση : ",B
30 Input "Δώσε το Ύψος : ",Y
40 E = B * Y / 2
50 Print "Το εμβαδόν είναι : ";E
60 End
List
Run
Οι εντολές List και Run δεν έχουν αριθμό εντολής, γιατί δεν είναι μέρη του προγράμματος, αλλά είναι εντολές του συστήματος. Για να επιστρέψουμε από τη γλώσσα Basic στο Dos, γράφουμε : System.

Η Εντολή Load
Είναι μια εντολή που δεν δέχεται αριθμό και φορτώνει ένα πρόγραμμα από το δίσκο στη μνήμη RAM για να μπορέσουμε να το διορθώσουμε ή να το τρέξουμε.
Η σύνταξή της είναι ως εξής :
Load "program1"

Η Εντολή Save
Είναι μια εντολή που δεν δέχεται αριθμό και αποθηκεύει ένα πρόγραμμα από τη μνήμη RAM στο δίσκο για να μπορέσουμε να το διορθώσουμε ή να το τρέξουμε αργότερα.
Η σύνταξή της είναι ως εξής :
Save "program1"

Η Εντολή Run
Με την εντολή αυτή, που δεν δέχεται αριθμό, μπορούμε να εκτελέσουμε (τρέξουμε) ένα πρόγραμμα, αφού πρώτα το έχουμε φορτώσει στη μνήμη RAM. Γράφουμε RUN ή μπορούμε να πατήσουμε και το πλήκτρο F2.

Η Εντολή List
Με την εντολή αυτή, που δεν δέχεται αριθμό, μπορούμε να δούμε στην οθόνη όλη τη λίστα του προγράμματός μας, αφού πρώτα το έχουμε φορτώσει στη μνήμη RAM. Γράφουμε LIST ή μπορούμε να πατήσουμε και το πλήκτρο F1.

Οι Μεταβλητές της Basic
Για να μπορέσουμε να δουλέψουμε με τη Basic, πρέπει να χρησιμοποιούμε μεταβλητές, όπως γίνεται μ' όλες τις γλώσσες προγραμματισμού, οι οποίες χρησιμοποιούν στην ονομασία τους έναν συνδυασμό από αγγλικά γράμματα ή και αριθμούς, πάντα όμως το πρώτο σύμβολο είναι γράμμα.
Οι μεταβλητές της Basic είναι περιοχές στη μνήμη RAM και είναι δύο ειδών : αριθμητικές και αλφαριθμητικές.
Οι αριθμητικές μεταβλητές δέχονται μόνο αριθμητικές τιμές και μ’ αυτές μπορούμε να κάνουμε πράξεις.
Π.χ. a, b, a1, b23, ypsos, basi κ.ά.
Οι αλφαριθμητικές μεταβλητές δέχονται γράμματα ή και αριθμούς, αλλά δεν μπορούμε μ' αυτές να κάνουμε πράξεις. Έχουν πάντα στο τέλος της ονομασίας τους το σύμβολο του δολαρίου ($).
Π.χ. name$, onoma$, address$ κ.ά.
Παραδείγματα :

Αποδεκτές Μεταβλητές Μη Αποδεκτές Μεταβλητές
a
a1
name$ 1a (αρχίζει από αριθμό)
-b (αρχίζει από -)
$c (αρχίζει από $)

Η Εντολή Cls
Με την εντολή αυτή καθαρίζει η οθόνη και ο δρομέας πηγαίνει στην πάνω αριστερή γωνία της. Μπορεί να μπει σε οποιοδήποτε μέρος του προγράμματος, συνήθως όμως την βάζουμε σαν πρώτη εκτελέσιμη εντολή στο πρόγραμμα, μετά από την εντολή Rem :
5 Rem Η Εντολή Cls
10 Cls

Η Εντολή End
Με την εντολή αυτή τελειώνει το πρόγραμμά μας και μηδενίζονται όλες οι μεταβλητές του. Πρέπει να προσέχουμε πού θα την βάλουμε στο πρόγραμμά μας και συνήθως είναι η τελευταία εντολή του προγράμματος.
...
100 End

Η Εντολή Input
Με την εντολή αυτή μπορούμε να εισάγουμε τιμές στις μεταβλητές της Basic από το πληκτρολόγιο. Μπορούμε να γράψουμε και ένα μήνυμα μέσα σε εισαγωγικά "..." για να διευκρινίσουμε τι είδους μεταβλητή είναι και τι τιμή πρέπει να δώσουμε.
Η σύνταξη της εντολής είναι ως εξής :
20 Input "Δώσε το ύψος του τριγώνου : ",Υ

Η Εντολή Print
Με την εντολή αυτή μπορούμε να τυπώσουμε στην οθόνη ή στον εκτυπωτή τις τιμές των μεταβλητών της Basic. Μπορούμε να γράψουμε και ένα μήνυμα μέσα σε εισαγωγικά "..." για να διευκρινίσουμε ποια τιμή είναι αυτή που τυπώνεται.
Η σύνταξη της εντολής είναι ως εξής :
20 Print "Το εμβαδόν του τριγώνου είναι : ";Ε


Η Εντολή Rem
Είναι μια μη-εκτελέσιμη εντολή, δηλ. μόλις τη συναντήσει η Basic μέσα στο πρόγραμμα, την αγνοεί παντελώς και πηγαίνει στην επόμενη εντολή του προγράμματος. Είναι, όμως, πολύ χρήσιμη για να μπορέσουμε να γράψουμε σχόλια και στοιχεία για το πρόγραμμά μας, έτσι ώστε να μπορεί να καταλάβει κάποιος τρίτος τι κάνει το πρόγραμμα.
Η εντολή αυτή είναι καλό να μπαίνει στην αρχή του προγράμματος, πριν ακόμα από τις πρώτες εκτελέσιμες εντολές, για να δηλώνει τον σκοπό του προγράμματος, αλλά μπορεί να μπει οπουδήποτε νομίζουμε εμείς μέσα στο πρόγραμμα. Στην εντολή αυτή μπορούμε να γράψουμε και με ελληνικούς χαρακτήρες.
5 Rem Πρόγραμμα Υπολογισμού Εμβαδού και Περιμέτρου Τετραγώνου
...
35 Rem Εδώ γίνεται ο υπολογισμός του Εμβαδού
...
55 Rem Εδώ γίνεται ο υπολογισμός της Περιμέτρου
...

Η Εντολή Αντικατάστασης
Η εντολή αυτή καταχωρεί τιμές σε μεταβλητές και έχει δύο τμήματα. Στο αριστερό τμήμα υπάρχει πάντα μια και μόνο μια μεταβλητή, ενώ στο δεξιό τμήμα μπορεί να υπάρχει μια σταθερή τιμή, μια μεταβλητή ή και μια πολύπλοκη αριθμητική παράσταση.
Η τιμή της παράστασης υπολογίζεται από τη Basic και μετά καταχωρείται στη μεταβλητή στο αριστερό μέρος. Ό,τι τιμή είχε από πριν η μεταβλητή αυτή χάνεται. Για την καταχώρηση των τιμών χρησιμοποιείται το σύμβολο ίσον (=).
Παραδείγματα :
αρχικές τιμές : a = 1, b = 2, c = 10
c = 3 c <- 3 (το c γίνεται 3)
c = a c <- a (το c γίνεται 1)
c = (a + b) * 5 c <- (a + b ) * 5 (το c γίνεται 15)
c = c + 1 c <- c + 1 (αυξάνει το c κατά 1, δηλ. γίνεται 16)

Οι Προτεραιότητες στις Αριθμητικές Πράξεις
Η Basic για να κάνει τις αριθμητικές πράξεις χρησιμοποιεί τα εξής σύμβολα :
+ πρόσθεση
- αφαίρεση
* πολλαπλασιασμός
/ διαίρεση
^ ύψωση σε δύναμη
Οι αριθμητικές πράξεις στη Basic δεν έχουν όλες την ίδια προτεραιότητα. Πιο συγκεκριμένα, όταν το πρόγραμμα συναντήσει μια αριθμητική παράσταση, τότε εκτελεί πρώτα τις πράξεις που είναι μέσα στις παρενθέσεις, μετά τις δυνάμεις, μετά τους πολλαπλασιασμούς ή τις διαιρέσεις και τέλος τις προσθέσεις ή τις αφαιρέσεις.
Από τις πράξεις που έχουν ίδια προτεραιότητα, δηλ. (πολλαπλασιασμοί και διαιρέσεις) και (προσθέσεις και αφαιρέσεις), εκτελούνται πρώτα οι πράξεις που είναι στα αριστερά.
Παραδείγματα :
αρχικές τιμές : a = 1, b = 2, c = 10
c = a + b * 2 c = 5
c = (a + b) * 2 c = 6
c = a * b / 2 * 5 c = 5
c = (a * b) / ( 2 * 5) c = 0.2

Εντολές Ελέγχου Χωρίς Συνθήκη
Στα μέχρι τώρα προγράμματα που κάναμε, η ροή του προγράμματος πήγαινε από την πρώτη μέχρι την τελευταία εντολή και όλες οι εντολές εκτελούνταν από μία και μόνο φορά. Υπάρχουν όμως περιπτώσεις που θέλουμε κάποιες εντολές του προγράμματός μας να μην εκτελεστούν καθόλου ή και να εκτελεστούν πολλές φορές.
Η αλλαγή στη ροή του προγράμματος μπορεί να γίνει με τον έλεγχο κάποιας συνθήκης, δηλ. ελέγχοντας την τιμή κάποιας μεταβλητής.
Η σημαντικότερη από τις εντολές ελέγχου χωρίς συνθήκη είναι η εντολή Goto, η οποία και κατευθύνει τη ροή του προγράμματος σε κάποια άλλη εντολή, χωρίς να ελέγχει τίποτα.
Παράδειγμα :
5 Rem Η Εντολή Goto
10 Cls
20 Input "Δώσε ένα όνομα : ",name$
30 Goto 10
40 End
Στο παραπάνω πρόγραμμα η εντολή 5 θα εκτελεστεί μια φορά, η εντολή 40 δεν θα εκτελεστεί ποτέ και οι εντολές 10, 20 και 30 θα εκτελούνται συνέχεια μέχρι να διακόψουμε το πρόγραμμα ή να κλείσουμε τον υπολογιστή.

Εντολές Ελέγχου Υπό Συνθήκη
Η Εντολή if
Η εντολή αυτή ανήκει στις εντολές ελέγχου υπό συνθήκη. Με την εντολή αυτή μπορούμε να αλλάξουμε τη ροή ενός προγράμματος αφού ελέγξουμε πρώτα αν κάποια συνθήκη ικανοποιείται ή όχι.
Η γενική σύνταξη της εντολής είναι η εξής :
if <συνθήκη> then <εντολή1> else <εντολή2>
όπου η <συνθήκη> είναι συνήθως μια σύγκριση για ισότητα ή ανισότητα μεταξύ αριθμών ή και ονομάτων και αν η συνθήκη είναι αληθής, τότε εκτελείται η <εντολή1>, αλλιώς εκτελείται η <εντολή2>.
Η εντολή else ακολουθεί πάντα μια εντολή if και δεν μπορεί να σταθεί μόνη της. Η εντολή if όμως δεν είναι πάντα απαραίτητο να ακολουθείται από μια εντολή else.
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει δύο αριθμούς Α και Β και να βρίσκει ποιος είναι ο μεγαλύτερος.
5 Rem Εύρεση μεγαλύτερου αριθμού
10 Cls
20 Input "Δώσε τον αριθμό Α : ",A
30 Input "Δώσε τον αριθμό B : ",B
40 If A>B then print "Μεγαλύτερος είναι ο Α"
50 If Β>Α then print "Μεγαλύτερος είναι ο Β"
60 If A=Β then print "Οι δύο αριθμοί είναι ίσοι"
70 End
με χρήση της εντολής else, οι εντολές 40, 50 και 60 θα μπορούσαν να γραφούν ως εξής :
40 If A>B then print "Μεγαλύτερος είναι ο Α" else
If Β>Α then print "Μεγαλύτερος είναι ο Β" else
print "Οι δύο αριθμοί είναι ίσοι"
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει έναν αριθμό Α και να βγάζει το μήνυμα αν ο αριθμός είναι θετικός, αρνητικός ή μηδέν.
5 Rem Αριθμός θετικός, αρνητικός ή μηδέν
10 Cls
20 Input "Δώσε τον αριθμό Α : ",A
30 If A>0 then print "Ο αριθμός είναι θετικός"
40 If Α<0>
50 If A=0 then print "Ο αριθμός είναι ίσος με μηδέν"
60 End
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει τον βαθμό Β ενός μαθητή σε ένα μάθημα και να βγάζει το μήνυμα αν πέρασε ή όχι το μάθημα.
5 Rem Βαθμός μαθητή
10 Cls
20 Input "Δώσε τον βαθμό Β : ",Β
30 If Β>=10 then print "Πέρασες το μάθημα"
40 If Β<10>
50 End
με χρήση της εντολής else οι εντολές 30 και 40 μπορούν να γραφούν ως εξής :
30 If Β>=10 then print "Πέρασες το μάθημα" else
print "Δεν πέρασες το μάθημα"

Οι Λογικοί Τελεστές
Οι λογικοί τελεστές είναι ειδικά σύμβολα με τα οποία μπορούμε να κάνουμε διάφορες συγκρίσεις μεταξύ αριθμών.
Οι λογικοί τελεστές που χρησιμοποιεί η Basic για να συγκρίνει αριθμούς ή και γράμματα είναι οι εξής :
Σύμβολο Νόημα
= ίσο
> μεγαλύτερο
< μικρότερο
>= μεγαλύτερο ή ίσο
<= μικρότερο ή ίσο
<> διάφορο
Ακόμα χρησιμοποιούνται και οι εξής λογικοί τελεστές για να κάνουμε διάφορους συνδυασμούς :
Σύμβολο Νόημα
AND λογική σύζευξη
OR λογική διάζευξη
NOT λογική άρνηση
Η χρήση των τελεστών αυτών θα φανεί καλύτερα με παραδείγματα :
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει τις τρεις πλευρές Α1, Α2 και Α3 ενός τριγώνου και να βγάζει το μήνυμα αν το τρίγωνο είναι ισόπλευρο ή όχι.
5 Rem Ισόπλευρο τρίγωνο
10 Cls
20 Input "Δώσε την 1η πλευρά : ",Α1
30 Input "Δώσε την 2η πλευρά : ",Α2
40 Input "Δώσε την 3η πλευρά : ",Α3
50 If (Α1=A2) AND (A2=A3) then print "Το τρίγωνο είναι ισόπλευρο" else
print "Το τρίγωνο δεν είναι ισόπλευρο"
60 End
Για να είναι αληθής η εντολή 50, που περιέχει τον τελεστή AND, πρέπει να είναι αληθείς και οι δύο προτάσεις που αυτή συνδέει.
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει τις τρείς πλευρές Α1, Α2 και Α3 ενός τριγώνου και να βγάζει το μήνυμα αν το τρίγωνο είναι ισοσκελές ή όχι.
5 Rem Ισοσκελές τρίγωνο
10 Cls
20 Input "Δώσε την 1η πλευρά : ",Α1
30 Input "Δώσε την 2η πλευρά : ",Α2
40 Input "Δώσε την 3η πλευρά : ",Α3
50 If (Α1=A2) OR (A2=A3) OR (A1=A3) then
print "Το τρίγωνο είναι ισοσκελές" else
print "Το τρίγωνο δεν είναι ισοσκελές"
60 End
Για να είναι αληθής η εντολή 50, που περιέχει τον τελεστή OR, πρέπει να είναι αληθείς τουλάχιστον μια από τις τρεις ισότητες που αυτή περιέχει.
Παράδειγμα :
Να γίνει πρόγραμμα σε γλώσσα Basic που να διαβάζει δύο αριθμούς Α και Β και να βγάζει το μήνυμα αν αυτοί οι αριθμοί είναι ίσοι με χρήση του τελεστή ΝΟΤ.
5 Rem Τελεστής ΝΟΤ
10 Cls
20 Input "Δώσε τον 1ο αριθμό : ",Α
30 Input "Δώσε τον 2ο αριθμό : ",Β
40 If ΝΟΤ (Α=Β) then print "Οι αριθμοί δεν είναι ίσοι" else
print "Οι αριθμοί είναι ίσοι"
50 End
Ο τελεστής ΝΟΤ ελέγχει το αντίθετο της πρότασης (Α=Β), δηλ. η εντολή 40 είναι αληθής όταν το Α είναι διάφορο του Β

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου