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)
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)
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.