Aby program mohol zmysluplne pracovať, musíme ho „nakŕmiť“ informáciami, tieto informácie si program uloží do pamäti a potom s nimi pracuje. Pomenovaná časť pamäte sa nazýva premenná. Continue reading
Informatika
Slovníček termínov z informatiky
Ak tu nie je termín, ktorý som použil na hodinách informatiky alebo v niektorom článku, napíšte do komentára návrh na jeho doplnenie. Continue reading
Hra Logik v Pythone
Pravidlá hry Logik:
- Hráč 1 si myslí štvorciferné číslo bez opakovania číslic
- Hráč 2 toto číslo háda tak, že povie štvorciferné číslo, bez opakovania číslic a hráč 1 odpovie koľko číslic je na správnom mieste a koľko číslíc do čísla patrí, ale nie sú na svojom mieste. Číslice na správnom mieste sú označené počtom A, číslice na nesprávnom mieste počtom B.
Ako vyrobiť provizórnu náhradu kľúča
V nasledujúcom videu je návod, ako možno vyrobiť náhradu kľúča s využitím mobilu, počítača, tlačiarne, vrhchnáka z plechovky a nožníc na železo. Continue reading
Tabuľka ASCII
Informácie v počítači sú kódované podľa dohodnutých pravidiel. Najrozšírenejším kódovaním je kódovanie ASCII. Každý znak má pridelené nejaké číslo, napríklad A – 65, B – 66 až Z – 90.
Pôvodne malo kódovanie ASCII iba 128 znakovo od nula po 127, bolo to 7 bitové kódovanie, v súčasnosti je to 8 bitové kódovanie, takže možno zakódovať 256 znakov.
Ak sme v zahraničí, v internetovej kaviarni pravdepodobne nebude slovenská klávesnica. Znaky ako á, é, ô, ä … získame tak, že použijeme nasledujúcu tabuľku. Ak stlačíme a držíme stlačený kláves ALT a napíšeme číslice z tejto tabuľky a ALT pustíme, získame príslušný znak: Continue reading
Kompresor obrázkov
Online komprimovanie obrázkov
Ak chcete zverejniť fotografie na www stránke, väčšinou stačí výrazne menšie rozlíšenie než má originálna fotografia a možno tiež použiť komprimovanie originálneho obrázku. Ak sú na stránke menšie obrázky, načíta sa výrazne rýchlejšie, zároveň na danom hostingu máte predplatený nejaký priestor a ak tam budete dávať zbytočne objemné súbory, tak si tento priestor veľmi rýchlo vyčerpáte. Zmenšenie rozlíšenia sa nijako neprejaví na kvalite obrázka, pokiaľ ho nebudete potrebovať zobraziť v pôvodnom rozlíšení. Dvojnásobné zmenšenie lineárnych rozmerov zmenší súbor štvornásobne, ak k tomu pridáte ešte komprimáciu, ktorá sa môže pohybovať okolo 70%, pôvodnú veľkosť súboru možno zmenšiť približne 12 násobne. Komprimácia obrázka môže jeho kvalitu znížiť, komprimačné algoritmy pre obrázky sú navrhnuté tak, aby napriek tomu, že ide o stratovú komprimáciu, ľudské oko nepostrehlo, že sa obrázok líši od originálu. Ak je zmena kvality zjavná, treba zmenšiť kompresný pomer.
Na tejto adrese nájdete jeden z online kompresorov obrázkov:
Pokiaľ potrebujete komprimovať obrázky pravidelne, je vhodnejšie mať na počítači nainštalovaný niektorý z programov, ktoré komprimáciu majú implementovanú.
Tic-Tac-Toe v Baltíku
Väčšina z vás sa na počítačoch najradšej hrá. Aj ja sa na počítačoch a mobiloch zvyknem hrať, ale najväčšou zábavou pre mňa je niečo naprogramovať. Kedysi som sa naučil programovať hlavne tým, že som programoval rôzne počítačové hry. Prvý počítač som si kúpil v roku 1985, bol to osembitový japonský počítač Sord, mal 8 kilobajtov pamäte a programy sa doň nahrávali pomocou kazetového magnetofónu. Do ôsmich KB sa toho veľa nezmestilo, preto som sa snažil programovať efektívne s čo najmenšími pamäťovými nárokmi a programujem tak doteraz. Vtedajšie počítače boli mnohotisíckrát pomalšie, ako dnešné, takže, ak hra mala byť hrateľná, bolo potrebné optimalizovať aj rýchlosť programu. Programovacím jazykom bol Basic a kritické časti som programoval v asemblery.
Na tento počítač takmer žiadne hry neexistovali a tak, keď som na iných počítačoch videl nejakú hru, naprogramoval som ju aj na mojom počítači.
Začneme jednoduchou logickou hrou Tic-Tac-Toe. Hrá sa na hracom pláne 3×3. Do plánu hráči striedavo zapisujú svoje symboly – krížik a krúžok. Kto uloží svoje symboly tak, že sú vedľa seba, pod sebou alebo po diagonále tri, vyhral. Ak sú všetky políčka obsadené a nik nemá tri rovnaké symboly v rade, hra skončila remízou. Na obrázku vpravo vyhral hráč, ktorý kreslil krúžky. Continue reading
Projekt Sudoku
1. etapa
Na prvej hodine ste takmer všetci zvládli nakresliť hrací plán Sudoku (obrázok vpravo). Mnohí postupovali extenzívne, niektorí zvládli aj efektívnosť riešenia. Počet použitých príkazov sa pohyboval od 21 do 93 (mne sa to podarilo na 18 príkazov, svoje riešenie sprístupním, keď všetky triedy dokončia prvú etapu a sprístupním tiež najefektívnejšie riešenia žiakov a jedno či viac riešení, ktoré budú niečim originálne. Continue reading
Súťaž v programovaní Imagine
Vašou úlohou je naprogramovať prázdny hrací plán hry Sudoku na čo najmenší počet príkazov. Riešenie musí byť vytvorením procedúry, ktorá tento hrací plán nakreslí a nemožno použiť už predkreslený obrázok.
Vzor, ako by mal hrací plán vyzerať:
Do počtu príkazov nepočítame viem názov_procedúry a koniec a číselné parametre či už vo forme čísla alebo premennej.
Celkové poradie
- Čajka 9. A 18
- Petróc 7.A 21
- Micheĺ 9.A 22
- Varinský 7.A 29
- Richnavský 31
Poradie podľa jednotlivých tried
9.A
- Čajka 18
- Micheľ 22
- Richnavský 31
- Krajňáková 39
- Sabovčíková a Genčiová 91
- Kalina 98
7. A
- Petróc 21
- Varinský 29
- Melicherová 31
- Gbúrová 32
- Lukáč, Orosz 75
- Bucher 85
7. B
- Sremaňák 40 (Patrikove riešenie zverejním, ako jediný použil parameter, ktorý určuje, aký veľký bude hrací plán)
- Jakubčák 56
- Šašala – veľa 🙂
Učiteľ TM 17. Pôvodne som mal 21, keď Petróc dosiahol rovnaký počet, ešte som to zredukoval.
Genetické algoritmy
Čo je sudoku, takmer všetci vedia, väčšina nevie, čo je genetický algoritmus alebo genetické programovanie.
Genetický algoritmus je nedeterministická metóda riešenia problému, vychádzajúca z princípov Darwinovej evolučnej teórie.
Každé riešenie úlohy (aj “zlé”) sa nazýva chromozóm, je tvorené binárnym reťazcom danej dĺžky, ktorá je rovnaká pre všetky chromozómy populácie. Populácia je konečná množina chomozómov. Základná populácia resp. nultá generácia populácie je začiatočný stav riešenia. Vývoj k optimálnemu riešeniu prebieha prirodzeným vývojom populácií. Nultá generácia je vygenerovaná náhodne, vygenerované chromozómy, musia byť riešením problému.
Proces reprodukcie:
- Výber chromozómov na kríženie či mutáciu (pseudonáhodný výber podľa pravdepodobnosti úmernej jeho fitness)
- Kríženie chromozómov (výmena podreťazcov, kde môže prebiehať kríženie jednobodovo, či viacbodovo)
- Mutácia, náhodne zmutujú niektoré gény, mutuje sa s malou pravdepodobnosťou, aby zostala zachovaná genetická informácia
Náhodnosť sa zaisťuje pomocou generovania pseudonáhodných čísel.
Continue reading
Dátové typy v Pythone
Každý programovací jazyk obsahuje nejaké dátové typy. Programovací jazyk Python má tieto základné dátové typy: integer, float, str. Continue reading
Modul Math jazyka Python
Základný modul jazyka Python obsahuje iba základné matematické operácie. Ak potrebujeme v programe použiť zložitejšie operácie a funkcie, buď ich musíme naprogramovať alebo importovať modul, ktorý matematické funkcie obsahuje. Takýmto modulom je napríklad modul , ktorý je súčasťou štandardnej distribúcie. Príkazy modulu sprístupníme príkazom
. Ak potrebujeme pracovať s väčšou prenosťou, musíme si doinštalovať špeciálny matematický modul, napríklad
. Continue reading
Python 1. Shell a matematické operácie
Programovacie jazyky, s ktorými ste doteraz pracovali (Imagine, Baltík, Scratch …), sú prispôsobené detskému používateľovi. V Baltíku a v Scratchi ste príkazy zadávali pomocou grafických ikon, v Imagine sa síce zadávali príkazy v tvare textu, ale s takou syntaxou, ktorá sa v iných programovacích jazykoch nepoužíva a navyše namiesto anglických príkazov ste používali slovenské príkazy. Z hľadiska rýchleho pochopenia čo ten ktorý príkaz robí, je to efektívne, ale z dlhodobého hľadiska, keď si budete chcieť osvojiť niektorý zo všeobecne používaných programovacích jazykov, budete sa musieť anglické ekvivalenty príkazov tak či tak naučiť. Programovací jazyk Python je navrhnutý tak, že používa podobnú syntax a podobné názvy príkazov, ako iné programovacie jazyky, takže, ak sa ho naučíte, nemal by pre vás byť v budúcnosti problém prejsť na iný programovací jazyk a je to zároveň profesionálny programovací jazyk, ktorý používa napríklad firma Google. Continue reading
Metóda Monte Carlo
Náhoda hrá vo vede významnú úlohu. Mnohé dôležité objavy boli objavené na základe náhodných okolností. Niektoré sú možno iba mytologizáciou skutočnosti napríklad objav Archimedovho zákona a údajný beh nahého Archimeda Syrakúzami vykrikujúceho Heuréka! alebo Pád jablka na hlavu Newtona. Mnohé iné sa určite stali napríklad Flemingov objav penicilínu. Vo všetkých týchto prípadoch však popri náhode bolo dôležité, že príslušný vedec mal adekvátne vedomosti a tvorivú myseľ a tak hoci predtým tisíckam ľudí padli jablká či hrušky na hlavu, až Newton si dal veci do súvisu a prišiel na to, že rovnaká sila udržiava planéty okolo Slnka a Mesiac okolo Zeme, aká pôsobí na padajúce jablko, stovky vedcov mali neumyté misky a iba ich umyli, pričom si nevšimli žiadnu anomáliu až Fleming aj pri umývaní misiek premýšľal. Keď môže byť náhoda alebo omyl čas od času príčinou pokroku, stojí za úvahu, či neskúmať niektoré prírodné javy pomocou využitia náhody. Continue reading
Kurča a kocúr
V projekte Kurča a kocúr bude vašou úlohou naprogramovať počítačovú hru, v ktorej sa po pyramíde pohybujú kurča a kocúr. Kocúr je ovládaný počítačom a raz za čas sa náhodne pohne s väčšou pravdepodobnosťou smerom ku kurčaťu. Kurča ovláda hráč a jeho úlohou je prefarbiť všetky vrchné štvorce. Keď skočí na neprefarbený štvorec, prefarbí ho, ak skočí na prefarbený, tak v závislosti od úrovne hry sa buď nestane nič, alebo sa prefarbí na pôvodnú farbu alebo … Continue reading
Pomocníci (šachovnica)
Keď som vám dal úlohu nakresliť šachovnicu, tak sa vám tá úloha zdala byť náročná, pretože ste ju realizovali mechanicky. Vyčarovali ste biele pole, pohli ste sa, vyčarovali ste čierne pole, pohli ste sa, keď ste došli na koniec riadku, otočili ste sa na sever, pohli ste sa, otočili ste sa na západ a znova ste začali kresliť políčka šachovnice. Vaše programy mali 140 až 170 prvkov.
Efektívne programovanie spočíva v tom, že sa programátor nad problémom zamyslí a všetko čo sa opakuje zovšeobecní. Continue reading
Logické operácie
V článku Podmienené príkazy som spomenul, že podmienené príkazy testujú, či je alebo nie je splnená nejaká podmienka. Ak je výraz v podmienke pravdivý, tak podmienka splnená je, ak je nepravvidvý, podmienka splnená nie je. Continue reading
Imagine. Podmienené príkazy. Ovládanie pomocou klávesnice
Aby program mohol vykonávať rôzne akcie v závislosti od pokynov používateľa, alebo vstupných hodnôt ,sú potrebné podmienené príkazy. V Imagine na testovanie podmienok slúžia nasledujúce príkazy: Continue reading
Projekt Had
- Had verzia 0.50 – ovládanie myšou
- Had verzia 0.51 – ovládanie klávesnicou
- Had verzia 0.52 – ovládanie klávesnicou a múdry had, ktorý chodí samostatne
- Had verzia 0.53 – opravené na základe pripomienok žiakov, rýchlejšia odozva pri ovládaní, odstránené kozmetické chyby
Upravte program podľa vlastných predstáv. Continue reading
Parametrizácia procedúr (šachovnica)
Tak ako jednoduché stroje už v staroveku ľuďom uľahčovali fyzickú prácu, počítače môžu uľahčiť netvorivú mechanickú duševnú prácu a čoskoro budú schopné vykonávať aj niektoré úkony tvorivej práce. Ak vám zadám úlohu: Nakreslite v Imagine štvorec so stranou 100, mechanickým postupom napíšete napríklad nasledujúcu postupnosť príkazov:
do 100
vpravo 90
do 100
vpravo 90
do 100
vpravo 90
do 100
vpravo 90
Poznámka: do je skratka príkazu dopredu.
Zoznamy v Imagine
Zoznam/zoznamy použijeme, keď máme viac objektov, s ktorými potrebujeme postupne jednotným spôsobom pracovať.
Príkazy zadané do príkazového riadku sú napísané tučne, čo sa vypíše v informačnej časti obrazovky je napísané kurzívou. Za maltézskym krížom # sú uvádzané poznámky k príkazom.
Všetky nižšie uvedené príkazy si individuálne vyskúšajte.
Ak by sme potrebovali mať zoznam čísel od jedna do 100, môžeme ho vytvoriť nasledujúcim spôsobom:
urob „zoznam [ ] #vytvorenie prázdneho zoznamu
opakuj 100 [urob „zoznam veta :zoznam počítadlo]
Funkcia veta spája dva zoznamy.
Piškvorky v Imagine (1)
V projekte Piškvorky bude vašou úlohou naprogramovať hru Piškvorky.
Piškvorky sa hrajú na štvorčekovanom papieri. Hráči sa navzájom striedajú, v každom polťahu hráč na ťahu nakreslí na hrací plán svoj symbol. Ak vodorovne, zvislo alebo po niektorej uhlopriečke je päť rovnakých symbolov vedľa seba, hráč vyhral. Continue reading
Tic-tac-toe v Imagine
Prebrali sme už väčšinu príkazov jazyka Imagine. Pomocou týchto príkazov môžete naprogramovať všetky jednoduché hry, ktoré hrávate na počítačoch alebo v mobiloch. Vašou úlohou je naprogramovať hru Tic-Tac-Toe. Stretnete sa pritom s väčšinou problémov a úloh, ktoré pred programátorom vyvstanú, ak chce aby hra bola hrateľná, funkčná, aby dobre vyzerala, aby boli ošetrené všetky možné situácie, …
- Tic-Tac-Toe sa hrá na hracom pláne rozmerov 3×3. Obrázok vľavo
- Hráči striedavo kreslia krúžky a krížiky.
Komu sa podarí vytvoriť tri rovnaké symboly vodorovne, zvislo alebo po uhlopriečkach vyhrá. Na obrázku vpravo, vyhral hráč, ktorý kreslil krúžky.
- Ak sú všetky políčka obsadené a nik nevytvoril trojicu rovnakých symbolov, hra končí remízou.
- Ďalšiu hru začína druhý hráč
Piesne
Piesne boli nahrané interným mikrofónom na notebooku programom Audacity. Autor hudby a textu: Tibor Menyhért
Dnes
Dnes zazpívam ti písničku,
dnes tančit budem valčík,
dnes pusy místo políčků,
dnes nebudeme válčit.
Dnes skočím po tom po hlavě,
je konec beznaději
a zítra ráno při kávě,
ti svoji lásku zdělím.
Počítačové simulácie molekulovej fyziky (zadanie pre ročníkovú prácu)
Hoci ešte nemáte k dispozícii matematický aparát na úplné pochopenie všetkých javov spojených so štatistickou fyzikou, jednoduchými programami niektoré javy môžete nasimulovať. Continue reading
Zoznam príkazov programovacieho jazyka Imagine
- Poznámky: Príkazy v zátvorkách sú skratky príkazov v plnom tvare
- Pod termínom príkaz sa v ďalšom texte rozumie nielen jednoduchý príkaz, ale aj programátorom definované procedúry s parametrami a zložené príkazy