OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 15:30

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 15 ] 
Autor Zpráva
 Předmět příspěvku: BASIC: učím dítě programovat
PříspěvekNapsal: 28.02.2015, 22:41 
Offline
Stydlín

Registrován: 18.12.2014, 23:43
Příspěvky: 9
Has thanked: 0 time
Been thanked: 0 time
Po letech jsem opět nakopl Didouše a chtěl bych naučit syna trošku programovat. Ostatně sám jsem právě na DIDAKTIKu začal s programováním a byl to dobrý základ pro pozdější PASCAL, DELPHI a C++

Ale už si moc nevybavuju některé fígly, jako např. Jak se testuje v ZXovém BASICu stisk klávesy a jak se vrací, která klávesa byla stisknuta? A dále si nevybavuju syntaxi, když chci dělat výpis na konkrétní souřadnice? Vím, že to bylo PRINT AT, ale jak se to psalo přesně?
Pak si např. vybavuju, že při nahrávání z kazety mi to u jedné hry vždy u obrázku hodilo TAPE LOADING ERROR, ale po zadání něčeho (?) do příkazového řádku se dalo spustit další nahrávání a hra se normálně dotáhla. Ale už nevím, co to bylo za příkaz. CONTINNUE nepomáhá :-(


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 01.03.2015, 00:29 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
Tak jo :-) Použíju to, co si pamatuji já.
Testování klávesy je IF INKEY$="a" THEN GOTO (GOSUB) 230
Jakmile zmáčkneš klávesu "a", tak to skočí na řádek 230. Musíš to mít ve smyčce. Jakmile napíšeš místo ="a" jen ="", tak je to defacto any key (stejně jako PAUSE 0)
Ježiš to AT - to bylo nějak se středníkem. Něco jako PRINT AT 15,23;"HNIJU TADY".
Po "TAPE LOADING ERROR nebylo nic. Musel jsi přetočit na začátek kazety a zkusit to znovu. Maximálně pokud byl loader schopný se znovu rozeběhnout po RUN, tak si nemusel načítat ten.

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 01.03.2015, 03:45 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
misticjoe píše:
Ježiš to AT - to bylo nějak se středníkem. Něco jako PRINT AT 15,23;"HNIJU TADY".
Ano, presne tak: PRINT AT riadok,stlpec;"Text"
misticjoe píše:
Po "TAPE LOADING ERROR nebylo nic. Musel jsi přetočit na začátek kazety a zkusit to znovu. Maximálně pokud byl loader schopný se znovu rozeběhnout po RUN, tak si nemusel načítat ten.
No pokial bol problem len s obrazkom, jeho nahravanie sa dalo bezstrestne preskocit. Treba si zapametat, kde presne nastal ten Tape loading error (pise to cislo basicoveho riadku a cislo prikazu na riadku) a potom treba pomocou GOTO skocit na nasledujuci prikaz. Pokial je nasledujuci prikaz este na tom istom riadku, da sa pouzit POKE 23664,X : CONTINUE kde X je cislo o 1 vecsie ako cislo prikazu v hlaseni Tape loading error. Toto POKE sposobi ze continue skoci na dalsi prikaz nasledujuci za prikazom ktory zlyhal.
Rosta_Kolmix píše:
Po letech jsem opět nakopl Didouše a chtěl bych naučit syna trošku programovat.
Inak, ked sa syn s basicom zoznami a bude chciet aj nieco viac, tak mozete poziet sem: http://busy.speccy.cz/tvorba/zazraky.htm


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 01.03.2015, 08:39 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
Návod na obsluhu Didaktiku Dama, vrátane popisu BASICu, je na stránkach ZX Magazínu.
http://zxm.speccy.cz/?x=knihy
http://zxm.speccy.cz/dok/lit/navod_DG.pdf

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 01.03.2015, 08:44 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Návod pro Didaktik M: http://z00m.speccy.cz/docs/didaktik_m.pdf

Úžasná knížečka pro Plusko: http://www.mrpear.net/file/f584b96a-294 ... ide.mp.pdf
Jsou v ní několikařádkové prográmky které moc hezky kreslí, to kluka prostě musí zaujmout :)

A neměly by chybět: http://mts.speccy.cz/doc/bity_do_bytu.pdf

P.S. http://bugemos.com/?q=node/383

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 03.03.2015, 16:13 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2487
Has thanked: 115 times
Been thanked: 424 times
Busy píše:
Komu vadia tokeny a ma dostatok trpezlivosti vyklepkavat kazdy prikaz po jednotlivych pismenkach, ma moznost pouzit 128 / +3 basic alebo (ak ma iba 48) napr. BetaBasic, kde sa da zvolit akym sposobom sa prikazy budu pisat - ci tokeny alebo po pismenkach.

Nebo ve Sparrowovi přepnout ROMku na tu banku, kde je OpenSE BASIC, tam se taky příkazy píšou po písmenech, dokonce s možností používání zkratek ("lo." místo "LOAD" a podobně)... :P

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 03.03.2015, 19:41 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2191 times
Been thanked: 894 times
Pro spectracky BetaBASIC se zminuji zkratky na str. 62 ceskeho manualu (http://sam.speccy.cz/csdocs.html)
Jen jsem onehda neprisel na to, v ktere verzi funguji nebo jak je rozchodit.

_________________
// na co myslím, když sedím u oldkompů: Blood Products from Genetic Vaccine Recipients


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 03.03.2015, 20:56 
Offline
Stydlín

Registrován: 18.12.2014, 23:43
Příspěvky: 9
Has thanked: 0 time
Been thanked: 0 time
Tak hlásím, že desetiletý synátor po dvou dnech učení dnes už bez potíží naprogramoval kalkulačku, kde si po zadání dvou čísel pomocí INKEYSu zvolí, zda chce sčítat, odčítat, dělit, nebo násobit a počítá mu to ;-)

Ale na základě jeho další touhy po poznání vyvstalo pár DALŠÍCH OTÁZEK PRO VÁS:
1) Jak se při ukládání programu na kazetu dělalo, aby se po nahrátí z kazety program rovnou spustil?
2) Za IF a THEN se dá napsat více podmíněných příkazů i na více řádků, nebo musí být vše za IFem jen odděleno dvojtečkami?
3) Jak se dělalo u PRINTu, aby se další zobrazovaný text psal ještě na tentýž řádek a ne na další?
4) Zrovnatak si pamatuju, že se dalo nějakým "lomítkem" zalamovat řádek přímo v textu pro vypsání za PRINTem
5) Jak se v INKEYSu testuje klávesa ENTER?

Tak zas máte o čem přemýšlet ;-)

Jinak na to, co se tu psalo (ohledně těch celých příkazů na klávesách), pro učení to považuju za dobrou věc - jednak se vyvarujeme překlepům při psaní příkazů, a pak taky při editaci delších řádků netrvá procházení tak dlouho ;-)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 03.03.2015, 21:35 
Offline
Site Admin
Uživatelský avatar

Registrován: 05.04.2013, 15:29
Příspěvky: 2394
Bydliště: Starý Vestec
Has thanked: 426 times
Been thanked: 446 times
1) SAVE "xxx" LINE X
2) resival jsem to pomoci goto nebo gosub
3) ;
4) to nevim
5) chr$ (13) tuším

_________________
Amiga Sinclair Didaktik Sam_Coupé Enterprise SAM440ep μA1 MacBook_Air Mac_Mini_MOS CPC Atari MSX Acorn C64 RetroPC

http://party.oldcomp.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 03.03.2015, 21:48 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
Možná by se slušelo k bodu 1 napsat, že v "LINE X" to "X" znamená číslo řádku, od kterého se má po nahrání program spustit.
2) Napíšeš třeba
15 IF kalkulacka=45 THEN GOSUB 120
20 PRINT "VYPSAL JSEM TEXT"
120 PRINT "Právě si vyhrál lízátko!"
121 PRINT "Výsledek na kalkulačce je: "; : PRINT kalkulacka : PRINT "GRATULUJI!"
122 RETURN

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 04.03.2015, 00:14 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
4) PRINT "Hello" ' "world!" ... slovo world sa vypise na dalsi riadok
5) IF CODE INKEY$=13 THEN .... alebo IF INKEY$=CHR$ 13 THEN ...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 04.03.2015, 00:16 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Rosta_Kolmix píše:
Tak hlásím, že desetiletý synátor po dvou dnech učení dnes už bez potíží naprogramoval kalkulačku, kde si po zadání dvou čísel pomocí INKEYSu zvolí, zda chce sčítat, odčítat, dělit, nebo násobit a počítá mu to ;-)
Gratulujem :) Btw. aj tato kalkulacka je naprogramovana v basicu (a nasledne kvoli rychlosti skompilovana HiSoftom): http://busy.speccy.cz/tvorba/kalk.htm


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 04.03.2015, 03:00 
Offline
Pan Generální
Uživatelský avatar

Registrován: 23.03.2014, 20:13
Příspěvky: 2773
Has thanked: 224 times
Been thanked: 601 times
Rosta_Kolmix píše:
Tak hlásím, že desetiletý synátor po dvou dnech učení dnes už bez potíží naprogramoval kalkulačku, kde si po zadání dvou čísel pomocí INKEYSu zvolí, zda chce sčítat, odčítat, dělit, nebo násobit a počítá mu to ;-)

Šikovný kluk, mohl bys mu ještě ukázat nejjednodušší spectráckou kalkulačku, která umí počítat i velmi složité výrazy s funkcemi a závorkami, dokonce včetně proměnných zadaných předem (ale s nimi se musí spustit pomocí GOTO 10, protože RUN je vymaže):
Kód:
10 INPUT t$
20 PRINT VAL t$

Jenom doufám že to pro něj nebude demotivující :lol:

Další krásná věc je zadávání barviček přímo do řetězce, po přechodu na PC jsem to těžce postrádal a vlastně postrádám dodnes. A až si s tím budete hrát, nezapoměň na to že existují i barvy 8 (transparentní) a 9 (kontrastní)!

BASIC zadrátovaný v klávesnici je sice zpočátku trochu nepříjemný, ale když si člověk zapamatuje často používané příkazy, hodně to zrychlí zadávání. Zvlášť na tak mizerných/levných klávesnicích jaké Sinclairy měly. Navíc to vývojářům ušetřilo hromadu práce a kódu které by spotřeboval parser, naopak díky tomu mohli nabídnout kontrolu syntaxe přímo v editačním řádku! Nebyli ani zdaleka první kdo něco podobného použil, třeba minipočítač Wang 2200 měl na vybranou ze dvou klávesnic, textovou pro psaní textů, a basicovou pro psaní programů. No a nebyli ani poslední, třeba i Philipsu VG5000 podobnou pomůcku dostal i M$ BASIC, i když tam se příkazy daly psát i po písmenkách: http://dcvg5k.free.fr/picture/vg5000.jpg (To PRT vpravo nahoře znamená PRINT.)

_________________
Plesnivý sýr z Tesca, zatuchlé kuřecí řízky z Albertu, oslizlé hovězí a myší trus z Lidlu.
Nákup potravinářské inspekce v ČR, říjen 2023.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 27.10.2015, 22:00 
Offline
Radil

Registrován: 18.10.2013, 15:30
Příspěvky: 263
Bydliště: Oakland, Slovakia
Has thanked: 25 times
Been thanked: 60 times
Rosta_Kolmix píše:
Ale na základě jeho další touhy po poznání vyvstalo pár DALŠÍCH OTÁZEK PRO VÁS:
1) Jak se při ukládání programu na kazetu dělalo, aby se po nahrátí z kazety program rovnou spustil?
2) Za IF a THEN se dá napsat více podmíněných příkazů i na více řádků, nebo musí být vše za IFem jen odděleno dvojtečkami?
3) Jak se dělalo u PRINTu, aby se další zobrazovaný text psal ještě na tentýž řádek a ne na další?
4) Zrovnatak si pamatuju, že se dalo nějakým "lomítkem" zalamovat řádek přímo v textu pro vypsání za PRINTem
5) Jak se v INKEYSu testuje klávesa ENTER?

1)
Kód:
SAVE "nazov_suboru" LINE cislo_riadku

2) Za IF sa da zadat niekolko podmienok s pouzitim operatorov AND, OR. Za THEN mozno zadat viac prikazov oddelenych dvojbodkou ktore budu vykonane ak su splnene podmienky v IF:
Kód:
10 LET a=10: LET a$="desat"
20 IF a=10 AND a$="desat" THEN PRINT a,h$: STOP: REM ak su splnene obidve podmienky vypise obsah premennych a zastavi program

10 LET a$=INKEY$
20 IF a$="K" OR a$="k" THEN PRINT "bola stlacena klavesa K": STOP: REM ak je splnena aspon jedna podmienka vypise sa text a program sa zastavi
30 GO TO 10

3)
Kód:
PRINT "Tento";"Text";"Je";"Spojeny";FLASH 1;" a tento blika"

4)
Kód:
PRINT "Text od zaciatku riadku"'"Dalsi text na novom riadku": REM apostrof (SymbShift+7) medzi uvodzovkami

Bonus: :)
Kód:
PRINT "Stlpec Vlavo","Stlpec Vpravo",1,2,1,2

5)
Kód:
IF INKEY$=CHR$ 13 THEN prikaz
IF CODE INKEY$=13 THEN prikaz

_________________
Didaktik Gama | ZX Spectrum 128 | ZX Diskface Quick A | BetaDisk 128C Interface | D40 & D80 | divIDE | Interface M/P | Multiface 128 (GOTDJ) | Gama Breaker | D80mini

"Kvalita a stabilita Windows XP se Microsoftu nevyplatila, stal se takovou temnou připomínkou toho, co se stane, když odvedete svou práci moc dobře."


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DIDAKTIKový BASIC
PříspěvekNapsal: 28.10.2015, 11:40 
Online
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
iwosh píše:
Rosta_Kolmix píše:
3) Jak se dělalo u PRINTu, aby se další zobrazovaný text psal ještě na tentýž řádek a ne na další?
3)
Kód:
PRINT "Tento";"Text";"Je";"Spojeny";FLASH 1;" a tento blika"
Predpokladam ze Rosta myslel viac samostatnych prikazov PRINT:
Kód:
10 PRINT "Hello ";
20 PRINT "world!"

faraon píše:
... mohl bys mu ještě ukázat nejjednodušší spectráckou kalkulačku, která umí počítat i velmi složité výrazy s funkcemi a závorkami, dokonce včetně proměnných zadaných předem (ale s nimi se musí spustit pomocí GOTO 10, protože RUN je vymaže):
Kód:
10 INPUT t$
20 PRINT VAL t$
Tip na este jednoduchsiu kalkulacku:
Kód:
INPUT a;#2;(a)
:lol:


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 15 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz