QBasic pomoć

poruka: 2
|
čitano: 1.625
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
QBasic pomoć

Zadatak ide ovako:
Upiši bilokakvu riječ i provjeri dali se ona jednako čita i unatrag.

Trenutno radimo naredbe:
LEN (A$)
LEFT$ (A$,N)

RIGHT$ (A$,N)

MID$ (A$,M,N) 

 
0 0 hvala 0
16 godina
offline
Re: QBasic pomoć

inputom učitaš string A$ (btw, inkey$ je kvalitetniji način zbog kontrole preko scancodea..)

unešeni string može biti duljine:

- 0 (nula) -ako je samo stisnut enter, problem ako ne predvidiš error handler.

- 1 (jedan) -jedno slovo, besmisleno, svako zadovoljava kriterij.

- 2-beskonačno ali duljina buffera, cca 80 - 256 minus signum itd. (input nije neograničen duljinom).

- tek duljina veća od 2 ima smisla pa teoretski beskonačno je obrađuje ali ako je neka 'pravilna' riječ tad je max npr prijestolonaslijednica tj nema razmaka jer bi to bila rečenica-više riječi, ali to su sve moguće programske greške već kod unosa koje treba predvidjeti i handlati, kao i unos posebnih znakova, brojeva (ako uspoređijemo samo slova).

 

- tako da se već prema len(A$) može granati program npr if ili CASEom.

Vrlo logično je za len=0 staviti exit-end.

Za len=1 može se izvršiti program, ali rezultat je uvjek isiti. Zapravo nas zanima veče od 1 pa do neke granice, recimo 30, samo da pojednostavimo program.

kao nepredviđena duljina npr len>30 može biti neka poruka i sl.

 

- dodatno pitanje, dali su mala i VELIKA slova jednaka? Po zadatku je krk=KRK=kRK=krK.. to može rješiti npr Ucase, odmah nakom inputa, A$=ucase(A$).

 

nekoliko načina kako unatrag očitati string, npr

- for x 1 to len(a$) .. -> lenA=Len(A$) : B$="" : for x= lenA to 1 step -1 : B$=B$ & mid$(a$,x,1) : next : if A$=B$ ...

 ili uvođenje dodatne varijable koja će okrenuti brojač bx=len-x samo treba paziti dali tad krenuti for-nextom od 0 do len-1 ili dodavati bx=bx+1 itd.

 

Opet, postoji kvaliteniji način npr do-loop koji može imati uvjet da se izvršava samo ako je len > 0 ili >1.. i sl. pa do beskonačno. Do-Loop može imati testiranje uvjeta na vrhu ili na dnu, kao i testiranje until/while.. to sve ovisi konkretnoj potrebi kako ćeš ga upotrijebiti.

Pripaziti na deklaraciju (dim) varijabli, jer bez DIM naredbe postoje ograničenja npr broj je max 64k pa teorestki može doći do overflowa, ali za konkretan primjer nije obavezno (ako ograničimo na realnih <30tak znakova).

 

-glavni dio zadatk je napisan u jednom redu, namjerno je nepregledan jer ga ti moraš napisati, ne prepisati.

C64/TurboModul-OpenSourceProject.org.cn.部分作品为网上收集整理,供开源爱好者学习使用
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice