DedSec Project

qbasic — συγκεντρωτικός οδηγός — DedSec Project

qbasic — συγκεντρωτικός οδηγός QBasic Τι προσφέρει η γλώσσα Η QBasic είναι ιστορική διάλεκτος BASIC με παραδοσιακές εντολές εισόδου/εξόδου και απλές διαδικασίες· δεν είναι VB.NET. Μικρό…

QBasic

Τι προσφέρει η γλώσσα

Η QBasic είναι ιστορική διάλεκτος BASIC με παραδοσιακές εντολές εισόδου/εξόδου και απλές διαδικασίες· δεν είναι VB.NET.

Μικρό παράδειγμα προς μελέτη

LET total = 0
FOR i = 1 TO 4
  total = total + i
NEXT i
PRINT total

Παρακολούθησε το άθροισμα σε κάθε επανάληψη i=1 έως 4 και επαλήθευσε το 10. Έπειτα άλλαξε το άνω όριο.

Τι να επαληθεύσεις

Κατάγραψε την πραγματική έκδοση εργαλείου, τις απαιτούμενες εξαρτήσεις και την έξοδο σε δοκιμαστικά δεδομένα για τη QBasic. Πρόβλεψε το αποτέλεσμα πριν το ελέγξεις και διατήρησε την αρχική και τη διορθωμένη εκδοχή ώστε να φαίνεται η αιτιώδης διαφορά. Μην αποκαλείς ένα απόσπασμα εκτελεσμένο αν δεν έχεις το κατάλληλο περιβάλλον.

Παγίδα ειδική για το θέμα

Παλιά προγράμματα QBasic μπορεί να απαιτούν λειτουργίες DOS για οθόνη, πληκτρολόγιο ή αρχεία.

Εργαστήριο εξάσκησης: QBasic

Μικρό πρόγραμμα κονσόλας

Το QBasic είναι ιστορικό BASIC dialect και δεν ταυτίζεται με τη σύγχρονη Visual Basic .NET. Σε προσωρινό πρόγραμμα γράψε:

CLS
FOR I = 1 TO 3
    PRINT I * I
NEXT I
END

Προβλέπονται τα τετράγωνα 1, 4, 9. Η FOR ... NEXT προχωρά με συμπεριλαμβανόμενο τελικό όριο όταν η τιμή βρίσκεται στη διαδρομή. Άλλαξε TO 3 σε TO 0 και πρόβλεψε πόσες φορές θα εκτελεστεί το σώμα με θετικό προεπιλεγμένο βήμα. Επαλήθευσε σε συμβατό interpreter ή emulator, καταγράφοντας πραγματική έκδοση.

Εξέτασε το βήμα

Πρόσθεσε STEP 2 και σύγκρινε την ακολουθία με την αρχική. Το τελευταίο στοιχείο εξαρτάται από αρχή, τέλος και πρόσημο βήματος. Δοκίμασε αντίστροφη επανάληψη με ρητό αρνητικό STEP, χωρίς να θεωρείς ότι η αναστροφή των ορίων αρκεί από μόνη της.

Μετατροπές και εύρος

Σε ανεξάρτητη έκδοση διάβασε τιμή με INPUT. Δοκίμασε μη αριθμητικό κείμενο και κατέγραψε την πραγματική συμπεριφορά του διερμηνευτή, όχι φανταστικά κοινά μηνύματα. Σύγκρινε απλό integer και μεγαλύτερο τύπο ακεραίου όπου υποστηρίζεται. Πολύ μεγάλα τετράγωνα μπορεί να υπερβούν το εύρος παρότι η επανάληψη είναι σωστή.

Αυτόνομη άσκηση

Υλοποίησε πίνακα πολλαπλασιασμού 1 έως 5 με εμφωλευμένες FOR και μέτρησε τις γραμμές. Έλεγξε ότι το άθροισμα 1 έως N συμφωνεί με N*(N+1)/2 για μικρά θετικά N. Παρακολούθησε πρώτη και τελευταία επανάληψη. Μην αντιγράφεις εντολές οθόνης ή αρχείων QBasic αυτούσιες σε άλλο runtime. Αναφορά: https://qb64.com/wiki/

QBasic — Διαδρομή ουσιαστικής εξάσκησης

Περιβάλλον

Στόχος είναι η σύνταξη Microsoft QBasic/QuickBASIC, όχι Visual Basic .NET. Θα ταξινομήσεις ποσότητα αποθήκης χωρίς να γράψεις σε αρχεία. Το αριθμητικό INPUT έχει συμπεριφορά επανάληψης σε λανθασμένο τύπο, αλλά ο έλεγχος επιτρεπτών τιμών παραμένει ευθύνη του προγράμματος.

Παράδειγμα (stock.bas)

CLS
DIM Qty AS INTEGER
INPUT "Quantity to inspect"; Qty
SELECT CASE Qty
    CASE IS < 0
        PRINT "REJECT: negative quantity"
    CASE 0
        PRINT "EMPTY"
    CASE 1 TO 5
        PRINT "LOW STOCK"
    CASE ELSE
        PRINT "STOCKED"
END SELECT

Με είσοδο 3 αναμένεται LOW STOCK, με 0 EMPTY, με -2 REJECT και με 9 STOCKED. Το SELECT CASE εκτελεί την πρώτη κατάλληλη διακλάδωση. Το CASE IS < 0 και το CASE 1 TO 5 έχουν διαφορετική σύνταξη. Πρόκειται για ταξινόμηση, όχι για μόνιμη αποθήκευση προϊόντων.

Ελεγχόμενα σφάλματα

  1. Αφαίρεσε το CASE ELSE και εισήγαγε 9. Παρατήρησε ότι δεν εμφανίζεται αποτέλεσμα και αξιολόγησε αν αυτό παραβιάζει τη διεπαφή.
  2. Αντάλλαξε τα όρια γράφοντας CASE 5 TO 1· το διάστημα δεν ταιριάζει στις συνηθισμένες τιμές.
  3. Δώσε γράμματα σε αριθμητικό INPUT και κατέγραψε τη συμπεριφορά του συγκεκριμένου interpreter.
  4. Για ελεύθερο κείμενο χρησιμοποίησε LINE INPUT και πρόσθεσε ελέγχους χαρακτήρων πριν τη μετατροπή· το VAL μπορεί να αγνοήσει μη έγκυρη συνέχεια.
  5. Φτιάξε μενού τριών επιλογών, με δοκιμές για έγκυρους αριθμούς και άγνωστη εντολή.

Κριτήριο ολοκλήρωσης

Κράτησε το .BAS, έκδοση interpreter, αποτελέσματα τεσσάρων εισόδων και εικόνα μιας αποτυχίας. Άλλες διάλεκτοι BASIC μπορεί να διαφέρουν. Αναφορά: https://qbasic.net/en/qb-manual/Statement/SELECT%20CASE.htm