Privacy Policy Cookie Policy Terms and Conditions BASIC - Βικιπαίδεια

BASIC

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Το περιβάλλον του μεταγλωττιστή Qbasic 4.5
Μεγέθυνση
Το περιβάλλον του μεταγλωττιστή Qbasic 4.5

Η BASIC είναι η πιο διαδεδoμένη γλώσσα στο χώρο των μικροϋπολογιστών. Το όνομά της προέρχεται απο τα αρχικά των λέξεων Beginner's All Purpose Symbolic Instruction Code (Συμβολικός Κώδικας Εντολών Κάθε Χρήσης για Αρχάριους).

Πίνακας περιεχομένων

[Επεξεργασία] Ιστορία

Η γλώσσα άρχισε να αναπτύσεται στο Dartmouth το 1963 για εκπαιδευτικούς σκοπούς. Το συντακτικό της επηρεάστηκε από την FORTRAN, μια γλώσσα επιστημονικών εφαρμογών.

Υπάρχουν περισσότεροι διάλεκτοι της BASIC απ' ότι για οποιαδήποτε άλλη γλώσσα. Η ευρεία διάδοση της γλώσσας οφείλεται κατά κύριο λόγο στο ότι ήταν το μόνο διαθέσιμο λογισμικό για συγγραφή προγραμμάτων για πολύ μεγάλο χρονικό διάστημα (από τον πρώτο μικροϋπολογιστή του 1975, τον Altair 8800 μέχρι και τα μέσα της δεκαετίας του 1980), και επίσης στην ευκολία σύνταξής της. Ο οικιακός προγραμματισμός από ερασιτέχνες (τους λεγόμενους «σκαπανείς») άνθισε εξαιτίας αυτής της γλώσσας. Ακόμα και σήμερα η γλώσσα BASIC προτιμάται έναντι άλλων για την εισαγωγή στον προγραμματισμό.

Ένα πρόγραμμα γραμμένο στη γλώσσα BASIC πρέπει να μετατραπεί σε γλώσσα μηχανής για να μπορέσει να εκτελεστεί από τον Η/Υ. Όπως συμβαίνει και με τις άλλες γλώσσες προγραμματισμού, την εργασία αυτή την διεκπεραιώνει ένας μεταγλωττιστής ή ένας διερμηνευτής. Αρχικά οι διερμηνευτές ήταν πολύ δημοφιλείς για την γλώσσα BASIC, αφού ο χρήστης μπορούσε να διακόψει όποτε ήθελε την εκτέλεση του προγράμματος του και να κάνει αλλαγές σε αυτό. Με την εισαγωγή όμως την έννοιας του Δομημένου Προγραμματισμού, καθώς και αντικειμενοστραφών εκδόσεων της γλώσσας, οι διερμηνευτές αντικαταστάθηκαν από τους μεταγλωτιστές.

Ως διάλεκτος για την παρακάτω παρουσίαση θα χρησιμοποιηθεί η GW-BASIC.

[Επεξεργασία] Σύνταξη

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

[Επεξεργασία] Ένα απλό πρόγραμμα

Το παρακάτω πρόγραμμα σε BASIC εμφανίζει στην οθόνη του Η/Υ το μήνυμα «Hello, world!», χρησιμοποιώντας μόνο 2 γραμμές κώδικα:

10 PRINT "Hello, world!"
20 END

ενώ ένα πρόγραμμα σε PASCAL, μια άλλη δημοφιλή γλώσσα, θα χρειαζόταν 4 γραμμές κώδικα

program Hello;
begin
   writeln('Hello, world!');
end.

[Επεξεργασία] Ετικέτες

Βασική έννοια στη γλώσσα BASIC είναι οι ετικέτες (labels). Αυτές είναι αριθμοί που τοποθετούνται στην αρχή κάθε γραμμής και ορίζουν τη σειρά με την οποία θα εκτελούνται οι εντολές, π.χ η γραμμή με αριθμό 35 εκτελείται πριν από την γραμμή με αριθμό 218. Καθώς γράφονται νέες γραμμές, είθισται οι ετικέτες να αριθμούνται ανά 10. Αυτό είναι χρήσιμο στην εισαγωγή γραμμών που ξέχασε ο προγραμματιστής, ώστε να μην αλλάζει κάθε φορά τις προηγούμενες και επόμενες ετικέτες. Όταν περιγράφεται μια εντολή BASIC, εννοείται ότι προηγείται πάντα μια ετικέτα.

[Επεξεργασία] Μεταβλητές/Εντολές εκχώρησης

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

Η εκχώρηση τιμών γίνεται τυπικά με την εντολή LET, π.χ:

10 LET i = 1
20 LET A$ = "Καλοκαίρι"

Σε νεότερες εκδόσεις της γλώσσας, η εντολή LET μπορεί να παραληφθεί. Η εκχώρηση τότε γίνεται μόνο με την έκφραση της ισότητας.

[Επεξεργασία] Εντολές εισόδου/εξόδου

Η κύρια εντολή εξόδου (στην οθόνη) είναι η PRINT. Η ακριβής σύνταξή της είναι η εξής:

PRINT "κείμενο1", "κείμενο2", ..., "κείμενοΝ", μεταβλητή1, μεταβλητή2, ..., μεταβλητήΝ

Το κείμενο δηλαδή περικλείεται σε εισαγωγικά και διαχωρίζεται με κόμμα από τις μεταβλητές ή από άλλο κομμάτι κειμένου. Τα εισαγωγικά και το κείμενο εντός τους ορίζουν μια συμβολοσειρά.

Η κύρια εντολή εισόδου στην BASIC είναι η INPUT. H σύνταξή της είναι:

INPUT μεταβλητή1, μεταβλητή2, ..., μεταβλητήΝ

Όταν ο Η/Υ εκτελεί μια εντολή INPUT, θέτει σε αναμονή την εκτέλεση του προγράμματος και περιμένει είσοδο δεδομένων από τον χρήστη. Ο χρήστης πρέπει να δώσει ίσο ή μεγαλύτερο αριθμό τιμών, χωρισμένων με κόμμα, και να πατήσει το πλήκτρο ENTER.

Σε μοντέρνες εκδόσεις της BASIC, όπως η Q-BASIC, είναι δυνατόν οι εντολές PRINT και INPUT να συνενωθούν, ώστε να σχηματίσουν μια συντομότερη δομή εισόδου/εξόδου:

INPUT "κείμενο_προς_τον_χρήστη", μεταβλητή1, μεταβλητή2, ..., μεταβλητήΝ

[Επεξεργασία] Δομές επιλογής

Οι δομές επιλογής υλοποιούνται στην BASIC με την ακολουθία IF...THEN...ELSEIF...ELSE...ENDIF. Για παράδειγμα, το επόμενο πρόγραμμα αποφασίζει αν ένας αριθμός που δίνεται από τον χρήστη είναι θετικός, μηδέν ή αρνητικός, και εμφανίζει το κατάλληλο μήνυμα:

10 PRINT "Δώσε έναν αριθμό"
20 INPUT a
30 IF a<0 THEN
40 PRINT "Ο αριθμός είναι αρνητικός."
50 ELSEIF a=0 THEN
60 PRINT "Ο αριθμός είναι το μηδέν."
70 ELSE
80 PRINT "Ο αριθμός είναι θετικός."
90 ENDIF
100 END

[Επεξεργασία] Δομές επανάληψης

Οι δομές επανάληψης υλοποιούνται στην BASIC μέσω δύο βρόγχοεντολών: FOR...TO...NEXT και WHILE...WEND.

[Επεξεργασία] Συγκεκριμένος αριθμός επαναλήψεων

Όταν ένα σύνολο εντολών πρέπει να επαναληφθεί ορισμένες φορές, χρησιμοποιείται η δομή FOR...TO...NEXT. Παράδειγμα αποτελεί το παρακάτω πρόγραμμα, το οποίο τυπώνει τους αριθμούς από το 1 εώς το 10:

10 FOR i=1 TO 10
20 PRINT i
30 NEXT i
40 END

[Επεξεργασία] Απροσδιόριστος αριθμός επαναλήψεων

Όταν ο αριθμός επαναλήψεων ενός συνόλου εντολών εξαρτάται από διαφορετικές συνθήκες εισόδου για κάθε εκτέλεση του προγράμματος, χρησιμοποιείται η δομή WHILE...WEND. Στο παρακάτω παράδειγμα, τυπώνονται τα πολλαπλάσια του δέκα μέχρι ο χρήστης να δώσει την κατάλληλη τιμή (αρνητικό αριθμό), η οποία και σταματά την εκτέλεση του βρόγχου:

10 i=1
20 WHILE n>=0
30 PRINT i*10
40 i=i+1
50 INPUT n
60 WEND
70 END

[Επεξεργασία] Εξωτερικοί σύνδεσμοι

  • Qbasic.com - Περιλαμβάνει αρχεία, εισαγωγή στην γλώσσα, χρήσιμους συνδέσμους και μια ενότητα για αρχαρίους.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu