« 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:

  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