MS-DOS/QBasic
Uwaga!
|
QBasic to interpreter dialektu QuickBasic języka BASIC. Dzięki niemu możemy pisać bardzo proste programy dla komputera z systemem MS-DOS. Jest to język głównie edukacyjny - nie ma dostępu do komend komputera, nie można programów skompilować (uruchamiać bez interpretera). Drugim od zainstalowania dostępnym sposobem programowania są pliki wsadowe. Tutaj znajdziesz podstawy tego języka.
By uruchomić program, wystarczy wpisać komendę: qbasic
Okno programu wygląda identycznie, jak w edytorze tekstowym. W tym module zabraknie opisu poruszania się po tym edytorze; zobacz artykuł o nim.
A teraz przejdźmy do przyspieszonego kursu programowania.
Hello World!
[edytuj]Czyli standard każdego kursu programowania. Uruchom QBasic i wpisz kod:
CLS
PRINT "Hello World!"
END
Następnie kliknij F5. Na ekranie zobaczysz napis Hello World!.
Czas na opis komend:
CLS
- czyści ekran.PRINT
- wyświetla tekst podany w argumentach.END
- kończy program.
Zmienne
[edytuj]Dane przechowujemy w tzw. zmiennych. Nazwa każdej zmiennej kończy się znakiem dolara (jeżeli zawiera ciąg znaków), np. ciag$ lub procenta (jeżeli zawiera liczbę), np. liczba%. Czas na przykład:
CLS
INPUT "Jak masz na imie"; imie$
INPUT "Ile masz lat"; wiek$
PRINT
PRINT "A więc nazywasz się "; imie$; " i masz "; wiek$ " lat."
END
Kolejna komenda:
INPUT
- prosi o podanie tekstu przez użytkownika. Znak zachęty (pytajnik dodawany automatycznie) to argument pierwszy, a drugi to zmienna do której zapisujemy wejście. Argumenty rozdzielamy średnikami.
Instrukcje warunkowe i arytmetyczne
[edytuj]Instrukcje warunkowe to jedna z ważniejszych części języków. Pozwalają one na sprawdzanie warunków i wykonywanie czynności w zależności, czy te warunki są prawdziwe czy też nie. Arytmetyczne pozwalają z kolei na dodawanie, mnożenie, itd. Kolejny przykład:
CLS
INPUT "Podaj pierwsza liczbe"; liczba1%
INPUT "Podaj druga liczbe"; liczba2%
INPUT "Podaj znak"; znak$
PRINT
IF (znak$="+") THEN 'dodawanie
PRINT liczba1%+liczba2%
ELSEIF (znak$="-") THEN 'odejmowanie
PRINT liczba1%-liczba2%
ELSEIF (znak$="*") THEN 'mnożenie
PRINT liczba1%*liczba2%
ELSEIF (znak$="/") THEN 'dzielenie
PRINT liczba1%/liczba2%
ELSE
PRINT "Podano bledny znak."
END IF
END
Wyżej widzisz kod prostego kalkulatora. Oto opis komend:
IF (..) THEN (..) END IF
- dosłownie jeżeli (..) wykonaj.ELSEIF (..) THEN
- w instrukcji warunkowej możemy porównywać więcej niż jeden warunek. Jeżeli pierwszy był fałszywy porównywane są kolejne podane za komendąELSEIF
.ELSE
- jeżeli żaden warunek nie był prawdziwy wykonywany jest blok po słowieELSE
. W tym wypadku nie potrzebne jest słowoTHEN
.END IF
- kończy instrukcję warunkową.+ - * /
- odpowiednio dodawanie, odejmowanie, mnożenie i dzielenie.'
- tzw. komentarz. Słowa za nim nie będą brane pod uwagę przez interpreter. Przydatny przy większych programach, aby się nie pogubić.
Pętle
[edytuj]Kolejny punkt każdego języka programowania. Omówimy sobie dwie pętle - WHILE .. WEND
powodującą wykonywanie jakiejś czynności póki warunek jest prawdziwy oraz FOR .. NEXT
powodującą wykonywanie jakiejś czynności określoną ilość razy.
WHILE .. WEND
i etykiety
[edytuj]Tutaj dodamy sobie do naszego kalkulatora funkcję ciągłego liczenia - wyjście z programu nastąpi dopiero po podaniu jako znaku q (jak quit). Kod:
CLS
WHILE (1 = 1)
INPUT "Podaj znak (q aby wyjść)"; znak$
IF (znak$ = "q") THEN GOTO wyjscie
INPUT "Podaj pierwsza liczbe"; liczba1%
INPUT "Podaj druga liczbe"; liczba2%
PRINT
IF (znak$="+") THEN 'dodawanie
PRINT liczba1%+liczba2%
ELSEIF (znak$="-") THEN 'odejmowanie
PRINT liczba1%-liczba2%
ELSEIF (znak$="*") THEN 'mnożenie
PRINT liczba1%*liczba2%
ELSEIF (znak$="/") THEN 'dzielenie
PRINT liczba1%/liczba2%
ELSE
PRINT "Podano bledny znak."
END IF
WEND
wyjscie:
END
I oto rozbudowaliśmy kalkulator o pętlę while. Dzielą się one na skończone i nieskończone. Ta jest nieskończona - będzie powtarzana dopóki, dopóty jeden równa się jeden. Pytanie o znak przeniesione zostało na początek. Oprócz tego dodano etykietę wyjscie
. Etykiety służą do "skakania" po kodzie - instrukcja GOTO
przenosi nas do odpowiedniej etykiety, w tym wypadku poza pętlę - program się kończy.
Uwaga!
|
FOR .. NEXT
[edytuj]Tą pętlę omówimy sobie pokrótce. Służy ona do wielokrotnego powtarzania jakiejś czynności. Na przykład:
CLS
FOR I = 1 TO 10
PRINT "Witaj po raz "; I; "!"
NEXT I
END
Powyższy kod spowoduje dziesięciokrotne wyświetlenie tekstu Witaj po raz numer. Nazywanie pętli I jest tradycją programistyczną, ale możesz ją nazwać jak chcesz. NEXT I powoduje powrót do początku pętli I i zwiększenie jej o jeden. Gdy I osiągnie dziesięć pętla się kończy.
Debugowanie
[edytuj]Debugowanie pozwala na wykonywanie programu linijka po linijce aby wyszukiwać błędy. Aby je wykonywać klikamy F8. Aby oznaczać linijki powodujące błąd klikamy F9. Za pomocą F5 wychodzimy z debuggera.
Zakończenie
[edytuj]Po więcej informacji i programów napisanych w tym języku zapraszam na stronę http://www.qbasic.com/ (anglojęzyczna).
Jeżeli chcesz wypróbować QBasic na innych systemach ściągnij dodatek olddos. W systemie Windows uruchom go, a następnie uruchom plik qbasic, który zostanie rozpakowany. Jeżeli chcesz zainstalować go na innym systemie niż Windows zastosuj któryś ze sposobów emulacji (najlepiej DOSBox).
Wszystkie kody źródłowe wykorzystane w tym module dostępne są na licencji MIT (Expat).