INPUT LINE

Elevenítsük fel amit illik tudni a Spectrum 48 BASIC-jéről, BASIC programozásáról...
Avatar
Bali
Site Admin
Hozzászólások: 1904
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

INPUT LINE

Hozzászólás Szerző: Bali » 2014.05.07. 18:10

Az INPUT utasításnál nem találkoztunk még az ún. sorbeolvasással (LINE), amely egy stringváltozó beolvasásának egy másik módja. Ha a beolvasandó stringváltozó elé a LINE kulcsszót írjuk, a számítógép nem írja ki az idézőjeleket, ahogy ezt általában a stringváltozóknál teszi (de úgy viselkedik, mintha ezek ott lennének). Például:

INPUT LINE a$

Ha ezután beolvasandó adatként mondjuk beírjuk a következő stringet: macska

az a$ felveszi a macska értéket. Mivel idézőjelek itt nem jelennek meg, ezek nem is törölhetők, és így beolvasási adatként nem írható be másfajta stringkifejezés. Ne feledjük: a LINE numerikus változóknál nem használható.
Az INPUT LINE művelet alkalmazásánál a STOP-mechanizmus nem működik, ezért ha ilyenkor meg akarjuk állítani a program futását, a lefelé billentyűt (CAPS SHIFT és 6) kell használnunk. Az üzenet ebben az esetben is "H" lesz.
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Pgyuri
Speccyalista
Hozzászólások: 485
Csatlakozott: 2012.01.06. 13:34

Re: INPUT LINE

Hozzászólás Szerző: Pgyuri » 2014.05.07. 22:02

Üdv,

A "nem találkoztunk még" kicsit erős túlzás......miért ne találkoztunk volna vele? Még a Spectrum könyv is írja, ráadásul ezzel lehetett kicsit bolond-biztosabb bekérést írni. Azt már csak a jó isten (mármint a ROM programírója) tudja megmondani, miért pont a Shift-6-ra tette a kilépési lehetőséget, ami így értelmetlenné is tette az egészet felhasználói oldalt tekintve.

Helyesebb lett volna az INPUT-ról, mint utasításról írnod, mert a LINE csak paramétere. Szintaktikailag ezernyi része van, csak épp az egész egy rakás ...... trutyi :)

Sok muris oldala is van, lásd például:

5 LET B=5
10 INPUT A

esetén helyből beírhatod, hogy B, mégse száll el a programod, van B egy változó és van is értéke. Aztán beírhatod, hogy RND, mire random számot küldesz be, mivel bármilyen függvényt kiértékel, akár bonyolult SIN, COS és egyéb függvényeket.

10 INPUT A$

Ugyanígy egy marhaság a törölhető idézőjelei miatt, ráadásul teljesen zűrös a felhasználó számára, mit is csinál. De akkor meg minek kellett ilyenre csinálni ?

10 INPUT LINE A$

Lásd előbb, de a kilépési lehetőség miatt olyan semmire-se-jó.

Aztán a legvidámabbra senki se gondolna:

10 INPUT ;

Na ez a legjobb, de senki se tudott róla, annyira rejtett. Mire lenne jó ? Megoldja a világ legbonyolultabb problémáját Spectrumon, a szöveg felfelé scrollozása esetén megjelenő scroll? kérdés kikapcsolását. Mennyi helyen ajánlgatták a POKE 23659,255 megoldást, mint egyetlen járható útját ennek a kiküböszölésére, pedig csak elég lett volna elhelyezni egy üres INPUT-ot a kiírások közé. Biztos nem tervezett dolog volt, de mindenesetre meglepően mulatságos.

Van egy komplett TV-BASIC "tanfolyamom" ezekről készítve a 2 vagy 3 évvel ezelőtti rendezvényre, de programsűrűség miatt nem volt rá szükség. Vagy nem feszegetjük tovább a BASIC dolgait és akkor lehet majd csodálkozni egyszer vagy szépen kilövöldözzük az egész műsort :)

Pgyuri

Avatar
Bali
Site Admin
Hozzászólások: 1904
Csatlakozott: 2012.01.06. 13:34
Tartózkodási hely: Budapest III.
Kapcsolat:

Re: INPUT LINE

Hozzászólás Szerző: Bali » 2014.05.07. 22:10

"nem találkoztunk még" kicsit erős túlzás
Kopiztam a manualból. :)
-= Bali =-
(c) 1983-2017 Evil-Soft

Avatar
Zozosoft
Speccyalista
Hozzászólások: 726
Csatlakozott: 2012.01.06. 14:03
Kapcsolat:

Re: INPUT LINE

Hozzászólás Szerző: Zozosoft » 2014.05.07. 22:21

Pgyuri írta: esetén helyből beírhatod, hogy B, mégse száll el a programod, van B egy változó és van is értéke. Aztán beírhatod, hogy RND, mire random számot küldesz be, mivel bármilyen függvényt kiértékel, akár bonyolult SIN, COS és egyéb függvényeket.
Na ez az amikor lehet elmélkedni azon, hogy ez most bug vagy feature :D

Válasz küldése

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég