« Ogólny spis treści »
« Indeks »
« Wstecz »
Różnice między wersjami |
Różnice w porównaniu z BASICA |
Konwersja programów BASICA |
Nieobsługiwane słowa kluczowe
Różnice między wersjami dialektów Basic
BASICA/GW-BASIC QBasic
--------------- ----------
Właściwości języka
Numerowanie linii Wymagane Opcjonalne
Blok IF/THEN/ELSE/END IF Nie Tak
Bloki procedur (SUB and FUNCTION) Nie Tak
Typy użytkownika (rekordy) Nie Tak
SELECT CASE Nie Tak
DO WHILE/UNTIL, LOOP WHILE/UNTIL Nie Tak
LONG (32-bit) integers
(Długie liczby całkowite) Nie Tak
Liczby formatu IEEE Nie Tak
Stałe Nie Tak
Łańcuchy o stałej długosci Nie Tak
Obsługa karty VGA Nie Tak
Obsługa Hercules/Olivetti Nie Tak
Rekursja Nie Tak
Obsługa zapisu na taśmę Tak Nie
Pamięć na kod i dane 64K 160K
Debugging
Praca krokowa Nie Tak
Praca krokowa z procedurami Nie Tak
Trace animation Nie Tak
Breakpoints Nie Tak
Edit and continue Nie Tak
Edycja
Natychmiastowe sprawdzanie składni Nie Tak
Diagnostyczne komunikaty o błędach Nie Tak
Natychmiastowa pomoc przy błędach Nie Tak
Wielokrotne okna Nie Tak
Obsługa myszą Nie Tak
Interfejs z menu Nie Tak
Kompatybilnośc z WordStar'em Nie Tak
Organizacja kodu Linearna Modularna
'Document mode' do edycji tekstów Nie Tak
Szukaj/Znajdź/Zamień Nie Tak
Odsyłacze 'on-line' Nie ma Pełne
Zobacz także: Różnice w porównaniu z BASICA
Nieobsługiwane słowa kluczowe
Różnice w porównaniu z BASICA
Następujące słowa kluczowe działają inaczej w QBasic niż w BASICA:
BSAVE, BLOAD QBasic nie obsługuje magnetofonu kasetowego przez BSAVE
i BLOAD, i adresy pamięci mogą być odmienne.
CALL ABSOLUTE Programy asemblerowe wywoływane z BASICA ktore mają
argument łańcuchowy, muszą być skorygowane dla QBasic,
ponieważ deskryptory łańcuchów w QBasic mają 4 bajty
długości. Te 4 bajty to młodszy bit i starszy bit długości
łańcucha, a następnie młodszy i starszy bit adresu
łańcucha.
CHAIN QBasic nie pozwala na określenie numeru linii w CHAIN
i nie obsługuje opcji ALL, MERGE, i DELETE z BASICA.
COMMON, DECLARE QBasic nie pozwala na wstawienie poleceń wykonywalnych
przed poleceniami COMMON i DECLARE.
DEFtype Jeśli BASICA napotka zmienną bez jawnie określonego typu
(wskazanego przez !, #, &, $, or %), używa typu domyślnego
ustawionego przez najświeższe polecenie DEFtype.
Np. typ zmiennej IFLAG zmienia się z Integer na Single
Precision (całkowita --> pojedynczej precyzji)
w nastepującym fragmencie kodu BASICA:
10 DEFINT I
20 PRINT IFLAG
30 DEFSNG I
40 GOTO 20
W QBasic typ zmiennej nie może zmieniać się po jej
pojawieniu się w programie.
DIM Wszystkie tablice w BASICA są dynamiczne, ponieważ BASICA
zawsze alokuje obszar przechowywania tablic podczas pracy
programu. W QBasic DIM może deklarować zarówno tablice
statyczne jak i dynamiczne.
DRAW, PLAY Polecenia DRAW i PLAY w BASICA, które używają zmiennych
albo innych łańcuchów sterujących wewnątrz łańcuchów
sterujących, muszą być zmodyfikowane dla QBasic.
Zastosuj funkcję VARPTR$, która zwraca łańcuchową
reprezentację adresu zmiennej:
Polecenie BASICA Odpowiednik w QBasic
------------------ -------------------------------
DRAW "Xcmdstring$" DRAW "X" + VARPTR$ (cmdstring$)
DRAW "TA = angle" DRAW "TA =" + VARPTR$(angle)
EOF Kiedy odczytujesz plik z programu BASICA, EOF(0) zwraca
"Prawda" przy końcu czytanego pliku. W QBasic EOF(0)
zwraca "Prawda", kiedy następny rekord jest czytany
spoza końca pliku. Np. następujący program działa
w BASICA, lecz generuje komunikat o błędzie "Input past
end of file" w QBasic:
5 WHILE NOT EOF(0)
10 LINE INPUT ; A$
15 WEND
FIELD Gdy plik o dostępie swobodnym jest zamykany w BASICA przez
polecenie CLOSE lub RESET, zmienne pola zwracają ostatnią
wartość przypisaną im przez polecenie GET. W QBasic
wszystkie zmienne pola są resetowane do łańcuchów
o zerowej długości.
Zobacz także: Konwersja programów BASICA
Nieobsługiwane słowa kluczowe
Różnice między wersjami
Konwersja programów BASICA
Pamiętaj o następujących punktach, gdy konwertujesz program z BASICA na QB:
- Zapisuj programy BASICA w formacie ASCII (SAVE"nazwapliku",A). QBasic
nie potrafi odczytać programów zapisanych w formacie binarnym BASICA.
- Używaj opcję polecenia /MBF przy starcie QBasica. Opcja ta pozwala
QBasic'owi czytać i zapisywać pliki danych BASICA.
- Zamień polecenia CALL na CALL ABSOLUTE. Polecenie CALL w BASICA
jest równoważne CALL ABSOLUTE w QBasic.
Dodatkowo, możesz użyć program REMLINE.BAS do usunięcia niepotrzebnych
numerów linii z konwertowanego programu. QBasic nie wymaga numerowanych
linii i usunięcie ich może polepszyć czytelność programu.
Zobacz także: Różnice w porównaniu z BASICA
Nieobsługiwane słowa kluczowe
Różnice między wersjami
Słowa kluczowe nie obsługiwane przez QBasic
Następujące słowa kluczowe QuickBASICa nie są obsługiwane prze QBasic:
ALIAS EVENT LOCAL SETMEM
BYVAL $INCLUDE SADD SIGNAL
CDECL Int86 Interrupt UEVENT
COMMAND$ Int86X InterruptX
Następujące słowa kluczowe GWBASIC/BASICA nie są obsługiwane prze QBasic:
AUTO EDIT MERGE RENUM
CONT LIST MOTOR SAVE
DEF USR LLIST NEW USR
DELETE LOAD
Zobacz także: Konwersja programów BASICA
Różnice w porównaniu z BASICA
Różnice między wersjami