RETRO KUTAK – tehnologija prošlih decenija

Male škole programiranja na Commodore 64 u BASIC-u

Druga lekcija „Male škole programiranja na Commodore 64“ donosi pregled važnih BASIC komandi, vrste grešaka, unos podataka i praktične primere koji pomažu da razumete osnove programiranja na legendarnom C64.

Dobrodošli na drugi čas „Male škole programiranja na Commodore 64 u BASIC-u“. Danas nastavljamo gde smo stali, zaranjajući dublje u svet BASIC komandi. Upoznaćemo se sa ključnim konceptima kao što su petlje i uslovi, naučićemo kako da primamo unos od korisnika i kako da se izborimo sa neizbežnim greškama. Idemo korak po korak.

Za početak: Vrste grešaka kod programiranja

Prilikom programiranja mogu se javiti dve osnovne vrste grešaka: sintaksičke i logičke.

  • Sintaksičke greške (Syntax Errors): Ovo su greške u „gramatici“ jezika. Dešavaju se kada pogrešno unesete naziv naredbe (npr. PRONT umesto PRINT). Računar ih odmah prepozna i prijavljuje porukom ?SYNTAX ERROR. Ovde spadaju i greške tipa podataka, na primer, kada pokušate da u numeričku promenljivu upišete tekst (?REDO FROM START).
  • Logičke greške (Logic Errors): Ove greške su mnogo „podmuklije“. Vaš program radi, ne prijavljuje grešku, ali jednostavno ne daje tačan rezultat. Na primer, hteli ste da saberete dva broja, a greškom ste ih pomnožili. Računar ne zna vašu nameru, pa ovakve greške zahtevaju detaljno pregledanje koda.

Važni saveti i trikovi za C64

Napomena: Dužina programske linije

C64 BASIC editor dozvoljava unos u maksimalno dva reda na ekranu za jednu programsku liniju (ukupno 80 karaktera). Ako vaša linija postane duža i pređe u treći red, računar će prihvatiti samo prva dva reda. Ostatak će ignorisati ili prijaviti grešku. Zato, ako imate dugačke naredbe, razbijte ih u više programskih linija.

Mali savet: Dva seta karaktera

C64 ima dva seta karaktera: prvi (podrazumevani) sa velikim slovima i grafičkim simbolima, i drugi sa malim i velikim slovima. Između njih prelazite pritiskom na Commodore + Shift. Za programiranje ostanite u prvom setu (velika slova).

Listanje kataloga na disketi

Da biste videli šta se nalazi na disketi, koristite sledeću komandu (ovo briše trenutni program iz memorije!):

LOAD "$",8
LIST

Upoznajmo nove komande

: (Dvotačka) – Više naredbi u jednoj liniji

Dvotačka vam omogućava da „spojite“ više naredbi u jednu programsku liniju.

10 PRINT "C64 JE ODLICAN ": PRINT "RACUNAR"

π (Pi) i ↑ (Stepenovanje)

  • π (Pi): Konstanta ~3.14159. Dobija se sa SHIFT + STRELICA LEVO.
  • ↑ (Stepenovanje): Operator za stepenovanje (npr. 2 na treći). Dobija se pritiskom na STRELICA LEVO.

REM – Unos komentara

Naredba REM (Remark) služi za ostavljanje komentara koje računar ignoriše.

10 PRINT "C64" : REM OVO JE KOMENTAR

Ostale korisne komande

  • END: Momentalno zaustavlja izvršavanje programa.
  • LET: Služi za dodelu vrednosti (npr. LET A=10), ali je na C64 opciona i obično se piše samo A=10.
  • CLR: Briše sadržaj svih promenljivih (resetuje ih na nulu ili prazan tekst).

Interakcija i Kontrola Ekrana

Brisanje ekrana u programu

Da biste obrisali ekran unutar programa, koristite komandu PRINT sa specijalnim karakterom (inverzno srce), koji dobijate pritiskom na SHIFT + CLR/HOME dok ste unutar navodnika.

10 PRINT "(SHIFT+CLR/HOME)"

INPUT – Unos podataka od korisnika

Naredba INPUT zaustavlja program i traži od korisnika da unese podatak.

10 INPUT "KAKO SE ZOVES"; IME$
20 PRINT "ZDRAVO, "; IME$

Kontrola Toka Programa

FOR-NEXT Petlje

Petlje omogućavaju ponavljanje dela koda određeni broj puta.

10 FOR I = 1 TO 5
20 PRINT "OVO JE LINIJA BROJ"; I
30 NEXT I

IF-THEN (Odlučivanje) i GOTO (Skok)

IF proverava uslov. Ako je tačan, izvršava se komanda posle THEN. GOTO bezuslovno skače na zadatu liniju.

Veliki Primer: „Igra Pogađanja Gradova“

Iskombinujmo sve naučeno u jednu igru:

10 PRINT "(SHIFT+CLR/HOME)" : REM BRISE EKRAN
20 CLR
30 PRINT "--- IGRA POGADJANJA GRADOVA ---"
40 INPUT "IGRAC 1, UNESI TAJAN GRAD"; GRAD$
50 PRINT "(SHIFT+CLR/HOME)" : REM SAKRIJ UNOS
60 PRINT "IGRAC 2 IMA 5 POKUSAJA."
70 FOR I = 1 TO 5
80 INPUT "TVOJ POKUSAJ"; POG$
90 IF POG$ = GRAD$ THEN GOTO 200
100 PRINT "NETACNO!"
110 NEXT I
120 PRINT "IZGUBIO SI. GRAD JE BIO: "; GRAD$
130 END
200 PRINT "BRAVO! POGODIO SI!"

❓ Pitanja i odgovori (FAQ)

Šta znači poruka ?SYNTAX ERROR?

Ovo je najčešća greška i znači da računar ne razume komandu koju ste uneli. Proverite da li ste pravilno napisali naziv naredbe (npr. PRINT umesto PRONT) i da li su svi znaci navoda zatvoreni.

Kako da prekinem program koji se zaglavio u petlji?

Ako program radi beskonačno i ne reaguje, pritisnite taster RUN/STOP na tastaturi (ili odgovarajući taster u emulatoru, često ESC) da biste ga nasilno prekinuli.

Da li moram da pišem komandu LET?

Ne. Iako je LET deo BASIC standarda, na Commodore 64 ona je opciona. Umesto LET A=10, možete (i trebalo bi) pisati samo A=10 radi uštede memorije i bržeg kucanja.

Šta se dešava ako linija koda pređe dva reda na ekranu?

C64 prihvata samo prva dva reda (80 karaktera) kao jednu programsku liniju. Sve što pređe u treći red biće ignorisano ili će izazvati grešku. Dugačke naredbe razbijte u više linija.

Kako INPUT komanda zna da li unosim broj ili tekst?

Zavisi od promenljive koju koristite. Ako napišete INPUT A, računar očekuje broj. Ako napišete INPUT A$ (sa znakom dolara), računar očekuje tekst.


Toliko za danas. Pokušajte da modifikujete igru pogađanja – možda da se pogađa broj? Programiranje je rešavanje problema, korak po korak. Vidimo se na sledećoj lekciji!

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *