Výuka informatiky v Čechách
Tenhle článek jsem původně napsal ve čtrnácti.
Něčím by se mělo začít, tak začnu základkou. Na základní škole jsme měli povinně volitelný předmět počítačů. Když se ostatní učili psát ve Wordu, Excel, databáze, základní HTML ve FrontPage, Zoner Callisto a Zoner GIF Animator, zařídil jsem si kroužek programování v Turbo Pascalu. Nedostali jsme se moc daleko, můj nejdokonalejší program Mozek dospěl do verze 007 (odtud pochází moje přezdívka).\ Ve FrontPage jsem dělal webové stránky pro školu. Hodně brzo se mi FrontPage znechutil. Náplň hodiny vypadala zajímavě. Učitelka mi dala klíče od sborovny, kde byl jediný moderní počítač na škole s přístupem na internet a právy administrátora. Já jsem se pohodlně usadil, lelkoval a čekal na práci. Zbytek třídy v počítačové učebně psal ve Wordu materiály. Když něco dopsali, korektor opravil chyby a nahrál na disketu. Poslíček mi disketu přinesl a já metodou Ctrl+C a Ctrl+V nahrával do FrontPage, upravoval styl textu, zarovnával. To bylo celé. Ve volném čase jsem surfoval na netu, bavil se s kámošem a tiskli jsme si obaly na CD na laserové tiskárně.
V té době jsem byl správcem třídního počítače (jediného) a jinak nic. Programování v Turbo Pascalu brzo upadlo pro nedostatek vědomostí přednášející učitelky, která se učila programovat průběžně s námi.
Program Mozek verze BETA
Tato verze nikdy nespatřila světlo světa, byl to úplně první můj program.
program Mozek;
uses crt;var a,b:real;
soucet,rozdila,rozdilb,soucin,podila,podilb,prumer,obvod,obsah:real;
begin
textbackground(2);
textcolor(4);
clrscr;
write(' Program: ');
textcolor(11);
writeln(' MOZEK. ');
textcolor(14);
writeln(' Program velice rychle vypočítá mnoho operací.');
textcolor(1);
writeln(' Po provedení úkonu zmáčkněte ENTER.');
readkey;
textcolor(0);
textbackground(5);
clrscr;
write(' Zadejte první číslo. '); readln(a);
textcolor(10);
write(' Zadejte druhé číslo. '); readln(b);
textbackground(1);
clrscr;
soucet:=a+b;
rozdila:=a-b;
rozdilb:=b-a;
soucin:=a*b;
podila:=a/b;
podilb:=b/a;
prumer:=(a+b)/2;
obvod:=2*(a+b);
obsah:=a*b;
textcolor(5);
writeln(' Součet je : ',soucet:50:20);
textcolor(12);
writeln(' Rozdíl a-b je: ',rozdila:50:20);
writeln(' Rozdíl b-a je: ',rozdilb:50:20);
textcolor(13);
writeln(' Součin je : ',soucin:50:20);
textcolor(14);
writeln(' Podíl a:b je : ',podila:50:20);
writeln(' Podíl b:a je : ',podilb:50:20);
textcolor(15);
writeln(' Průměr je : ',prumer:50:20);
textcolor(12);
writeln(' Obvod je : ',obvod:50:20);
textcolor(2);
writeln(' Obsah je : ',obsah:50:20);
readkey;
textcolor(10);
textbackground(4);
clrscr;
writeln(' Děkuji Vám za použití tohoto programu.');
textcolor(2);
write(' Byl vyroben 31.12.1999.');
readkey;
textcolor(5);
textbackground(2);
clrscr;
writeln(' Kdo bude tento program nadále používat nechť zaplatí 5 Kč!');
readkey;
textcolor(125);
textbackground(1);
clrscr;
writeln(' AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! ');
writeln(' AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! ');
writeln(' AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ!');
writeln(' AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ! AHOJ!');
readkey;
end.
Se zpětným pohledem: když zadáte nulu, program při dělení spadne. Na ošetření vstupu jsem tehdy ještě nemyslel.
Další verze
Postupně se program vypracoval na další verze, přes různé podverze, bety, 002, 0022, 003, 003x až po verzi 007, kde jsem také ukončil jeho vývoj. Pokud by si někdo chtěl kompilovat, potřebuje stáhnout původní Turbo Pascal 7.0, ten však nebyl uvolněn jako freeware. Nevím jestli se někde prodává, každopádně existuje Free Pascal, ten je zdarma. Google dotaz Turbo Pascal download to řeší.
Programování v Turbo Pascalu
Turbo Pascal zdrojáky a tutorial
Na internetu je spousta návodů na tento prehistorický programovací jazyk, verze, co používám, ani nefunguje na Windows XP a v TP jsem nedělal od svých 15 let vůbec.
Hlava programu
Definování proměnných
program Mozek;
uses crt;
var
nahodaa,nahodab,barvac,M007:byte;
g,i,e,c,d,f,x,y,cislo,hadane,n:integer;
r,konec,textnamonitoru,otazka:string;
rychlost,nejcislo:word;
begin
textbackground(8);
clrscr;
textcolor(9);
gotoxy(15,12);
writeln('***************************************************');
textcolor(2);
gotoxy(15,13);
write('* Program: ');textcolor(14);writeln(' M O Z E K 007 * ');
textcolor(4);
gotoxy(15,14);
writeln('* Licenční ujednání je v přiloženém souboru. *');
textcolor(5);
gotoxy(15,15);
writeln('* Pokračujte libovolnou klávesou...... *');
textcolor(9);
gotoxy(15,16);
writeln('***************************************************');
readkey; { úvodní obrazovka }
{ textbackground(9);
clrscr;
textcolor(2);
gotoxy(17,10);
writeln(' Mozek, ten fakt musíš mít,');
gotoxy(17,11);
writeln(' výsledky ti pomůže najít.');
gotoxy(17,12);
writeln(' Zadej čísla, zmáčkni ENTER teď,');
gotoxy(17,13);
writeln(' výsledky budeš mít hned!');
gotoxy(17,14);
writeln(' Program MOZEK ulehčí ti v hlavě,');
gotoxy(17,15);
writeln(' příklady počítá hravě.');
gotoxy(17,16);
writeln(' A je tu ještě jedna rada,');
gotoxy(17,17);
writeln(' kup si ho hned, je ZADARA!!'); }
repeat; { básnička }
Nabídka programů
repeat;
textbackground(black);
clrscr;
gotoxy(15,3);textcolor(15);write('=');gotoxy(64,3);write('=');
gotoxy(15,2);textcolor(15);write('==================================================');
gotoxy(16,3);textcolor(18);write('T O H L E J E N A B I D K A P R O G R A M U..');
gotoxy(15,4);textcolor(15);write('==================================================');
textcolor(3);
gotoxy(1,8);
writeln(' - Pokud vás nebolí uši, zmáčkněte klávesu 1 ');
writeln;
writeln(' - Chcete vyzkoušet monitor, stiskněte klávesu 2 ');
writeln;
writeln(' - Kámen, Nůžky, Papír, bouchněte do klávesy 3 ');
writeln;
writeln(' - Pro vyzkoušení mozku (Vašeho), klikněte na 4 ');
writeln;
writeln(' - Jestliže chcete spustit program Šetřič, napište 5 ');
writeln;
writeln(' - Chcete-li vědět INFO o MOZKU namačkejte 007 ');
writeln;
write(' - Chcete-li ukončit program Mozek007, tlačte na 0 ');
textcolor(14);
readln(r);
until ((r='0') or (r='1') or (r='2') or (r='3') or (r='4') or (r='5') or (r='007')); { nabídka programů }
{=========================}
A teď postupně všechny programy if
Info o programu Mozek007
Vesměs blbosti, co mě napadly ve 14 letech.
if r='007'then
begin
textbackground(0);
clrscr;
gotoxy(18,2);textcolor(15);write('============================================');
gotoxy(18,3);textcolor(15);write('=');gotoxy(61,3);write('=');
gotoxy(19,3);textcolor(125);write('L I C E N C N I U J E N D N A N I');
gotoxy(18,4);textcolor(15);write('============================================');
writeln;
writeln;
textcolor(14);
writeln(' Takže za prvé, tento program musíš šířit!! ');
writeln(' ALE! tenhle program nesmíš měnit, pokud mi o tom neřekneš! ');
writeln(' Jestli programuješ na Pascalu, tak mi napiš nebo pošli programy! ');
writeln(' Jestli seš bohatej tak mi pošli nějaký drobný ale ne deseťáky! ');
writeln(' Hledám sponzory, možná i reklama v programu...');
writeln(' Pokud máš zájem o spolupráci, tak mi napiš!');
writeln(' Ale pokud najdeš nějakou pravopisnou chybu nebo něco podobného ');
writeln(' tak to neříkej mojí učitelce Čežtyni..... Ok domluveno, jenom mě upozorni.');
writeln(' Pokud máš nějaké nápady na vylepšení nebo programy tak mi napiš!');
writeln(' ');
writeln(' ');
textcolor(blue);
writeln(' Ok teď něco o mojí osobě ');
writeln(' Je mi 14, chodím do Masarykovy základní školy ve Velkém Oseku. ');
writeln(' Baví mě počítače, fotbal, hokej, amatérská kulturistika,');
writeln(' mobily, motorka, informační technologie a holky.');
writeln(' Momentálně jsem volný tak že, holky můžou psát i jen tak..');
writeln(' Jsem 172 cm vysoký, 62 kg hubený, tmavé vlasy a oči, atletická postava.');
readkey;
end; {BLA/BLA}
{=========================}
Program šetřič obrazovky
Docela vymakaný program, můj nejoblíbenější.
if r='5'then
begin
textbackground(0);
clrscr;
gotoxy(22,4);textcolor(white);write('=');gotoxy(56,4);write('=');
gotoxy(22,3);textcolor(white);write('===================================');
gotoxy(23,4);textcolor(25);write('P R O G R A M S E T R I C 0 0 7');
gotoxy(22,5);textcolor(white);write('===================================');
gotoxy(17,10);textcolor(10);write('Napiš jaký text chceš psát na monitor...');readln(textnamonitoru);
gotoxy(17,12);textcolor(11);write('Zadej rychlost přepisování v milisekundách...');readln(rychlost);
repeat;
clrscr;
gotoxy(22,4);textcolor(white);write('=');gotoxy(56,4);write('=');
gotoxy(22,3);textcolor(white);write('===================================');
gotoxy(23,4);textcolor(25);write('P R O G R A M S E T R I C 0 0 7');
gotoxy(22,5);textcolor(white);write('===================================');
gotoxy(17,14);textcolor(12);write('Chceš, aby se text mazal? (A/N)...');readln(otazka);
until ((otazka='a') or (otazka='A') or (otazka='n') or (otazka='N'));
clrscr;
repeat;
if ((otazka='A') or (otazka='a')) then clrscr else;
randomize;
nahodaa:=random(70);
nahodab:=random(25);
barvac:=random(30);
gotoxy(nahodaa,nahodab);
textcolor(barvac);
write(textnamonitoru);
delay(rychlost);
until keypressed;
end; { program šetřič }
Program Kámen nůžky papír
Zase další můj „lepší“ program. Také byl můj nejoblíbenější. Na škole neměl konkurenci.
if r='3'then
begin
{=========================}
repeat
clrscr;
randomize;
x:=random(2);
begin
textbackground(black);
clrscr;
gotoxy(22,4);textcolor(white);write('=');gotoxy(56,4);write('=');
gotoxy(22,3);textcolor(white);write('===================================');
gotoxy(23,4);textcolor(25);write('P R O G R A M K . N . P 0 0 7');
gotoxy(22,5);textcolor(white);write('===================================');
gotoxy(13,10);textcolor(1);write('Vyber si pane: 0=šutr, 1=nůžky, 2=papír. ');
readln(y);
gotoxy(13,12);
delay(250);
textcolor(14);write('Já dávám ',x);
delay(250);
end;
case x of
0: begin
if y=0 then
begin
textcolor(10);
gotoxy(13,14);write('Hm, tak to je remíza ....');
end;
if y=1 then
begin
gotoxy(13,14);
writeln('Cha cha, prohrál jsi !');
end;
if y=2 then
begin
gotoxy(13,14);
writeln('To je ale náhoda, to není možný, to je asi chyba programu.....');
gotoxy(13,15);
writeln('Ty si vyhrál ! Gratuluji.');
end;
end;
1: begin
if y=0 then
begin
gotoxy(15,14);
writeln('Zase si vyhrál... Dáme si to znovu ? Prosím. ');
end;
if y=1 then
begin
gotoxy(13,14);
writeln('Uf, remíza ');
end;
if y=2 then
begin
gotoxy(13,14);
writeln('Směji se pod vousy - prohrál jsi prohrál ');
end;
end;
2:begin
if y=0 then
begin
gotoxy(13,14);
writeln('Nauč se to pořádně hrát, nebo prohraješ dům. ');
end;
if y=1 then
begin
gotoxy(13,14);
writeln('Eště že jsme se o nic nevsázeli. Seš moc dobrej ');
end;
if y=2 then
begin
gotoxy(13,14);
writeln('Znova ! Jsme stejně dobří ');
end;
end;
end;
textcolor(21);
gotoxy(15,16);
write('Chceš pokračovat? 1 ne nebo 0 ano ');readln(d);
until d=1;
textcolor(20);
gotoxy(15,18);write('Ahoj, příště tě porazím, budu trénovat......');
readkey; { program Kámen nůžky papír }
end;
{=========================}
Program neznámé číslo
Taky v pohodě program, ale není vůbec složitý na naprogramování v jakémkoli jazyce.
if r='4'then
begin
textbackground(0);
clrscr;
window(10,2,70,4);
textbackground(blue);
clrscr;
textcolor(2);
gotoxy(12,2);
write('Zadej jaké největší možné číslo...');textcolor(14);readln(nejcislo);
clrscr;
gotoxy(12,2);
textcolor(2);
write('Myslím si číslo od 1 do ');textcolor(14);write(nejcislo);textcolor(2);write(', uhodni ho !');
window(25,6,55,24);
clrscr;
randomize;
cislo:=random(nejcislo);
n:=1;
textcolor(6);
write(n,'. marnej pokus: ');textcolor(14);
read(hadane);
while hadane<>cislo do
begin
textcolor(green);
if hadane>cislo then writeln('Trošku uber !')
else writeln('Trošku více !');
n:=n+1;
textcolor(6);
write(n,'. marnej pokus: ');
textcolor(14);
read(hadane);
end;
window(10,2,74,4);
clrscr;
writeln;
textcolor(26);
write(' Gratuluji, ale byla to doba. Moje číslo ',cislo,' si uhádl na ',n,'. pokus.');
readkey;
window(1,1,80,25);
end; { program neznámé číslo }
{=========================}
Program Blik
Pouze rozblikal obrazovku, zadala se rychlost blikání. Prý to dokáže zničit monitor, tomu však nevěřím.
if r='2'then
begin
textbackground(black);
clrscr;
gotoxy(22,4);textcolor(white);write('=');gotoxy(54,4);write('=');
gotoxy(22,3);textcolor(white);write('=================================');
gotoxy(23,4);textcolor(18);write('P R O G R A M B L I K 0 0 7');
gotoxy(22,5);textcolor(white);write('=================================');
gotoxy(6,10);textcolor(11);write(' Zadej počet bliknutí ');readln(e);
gotoxy(6,12);textcolor(9);write(' Zadej délku bliknutí v milisekundách ');readln(f);
g:=1;
textbackground(g);
delay(200);
for i :=1 to e do begin
g:=g+1;
textbackground(g);
clrscr;
delay(f);
end;
end; { program Blik }
{=========================}
Program zvuk
Se zvukem jsem si vyhrál, naprogramoval krásné melodie. Efektní byl i program, co neobsahoval příkaz nosound. Takový program nevypnul zvuk. I když se program vypnul, nepříjemný zvuk hrál dál. Pomohl pouze reset počítače.
if r='1'then
begin
textbackground(0);
clrscr;
gotoxy(22,4);textcolor(white);write('=');gotoxy(54,4);write('=');
gotoxy(22,3);textcolor(white);write('=================================');
gotoxy(23,4);textcolor(25);write('P R O G R A M Z V U K 0 0 7');
gotoxy(22,5);textcolor(white);write('=================================');
gotoxy(9,10);textcolor(10);write(' Nyní zadejte velikost tónu v hertzích.... ');
textcolor(14);readln(c);
gotoxy(9,12);textcolor(4);write(' Teď zadejte délku tónu v milisekundách.... ');
textcolor(14);readln(d);
gotoxy(9,14);textcolor(5);write(' O kolik hertzů bude následující tón zvýšen....');
textcolor(14);readln(f);
repeat
gotoxy(22,4);textcolor(white);write('=');gotoxy(54,4);write('=');
gotoxy(22,3);textcolor(white);write('=================================');
gotoxy(23,4);textcolor(25);write('P R O G R A M Z V U K 0 0 7');
gotoxy(22,5);textcolor(white);write('=================================');
gotoxy(15,15);textcolor(9);write('Nyní slyšíme ',c,' hertzů');
sound(c);
delay(d);
nosound;
c:=c+f;
clrscr;
until keypressed; { program Zvuk }
end;
Závěrečné titulky
if r='1'then
begin
readkey;
end;
if r='5'then
begin
readkey;
end;
if((r='1')or(r='2')or(r='3')or(r='4')or(r='5')or(r='007'))then
clrscr;
textbackground(black);
textcolor(blue);
clrscr;
gotoxy(10,13);write('Chcete ukončit program Mozek 007 ? (AN)');read(konec);
until ((Konec='a') or (konec='A') or (konec='ano') or (konec='ANO'));
{====================}
if((r='0')or(r='1')or(r='2')or(r='3')or(r='4')or(r='5')or(r='007'))then
begin
textbackground(0);
textcolor(14);
clrscr;
gotoxy(10,10);
write('************************************************************');
textcolor(1);
gotoxy(5,11);
writeln(' * Děkuji Vám za použití tohoto programu. *');
textcolor(2);
gotoxy(4,12);
write(' * Vyrobeno 4.1.2002 *');
gotoxy(4,13);
textcolor(4);
write(' * xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx *');
textcolor(15);
gotoxy(4,14);
write(' * E-mail : [cenzurováno] *');
gotoxy(4,15);
write(' * Mobil : [cenzurováno] *');
gotoxy(4,16);
write(' * Fax : [cenzurováno] *');
gotoxy(10,17);
textcolor(14);
write('************************************************************');
readkey;
end;
end. { Závěr ........ }
A to je vše
K Turbo Pascalu jsem na internetu sháněl různé tutoriály, zdrojáky, měl pár kontaktů, sehnal jsem si i Turbo Pascal pro Windows, tam ale byla jiná syntaxe, staré .pas soubory mi nefungovaly, tak jsem toho nechal. TP mi dal dobrý základ pro pochopení podmínek a cyklů, v současné době moc neprogramuji, snad jen to PHP, MySQL a Visual Basic. Jinak nic.
www.speedygt.ic.cz
07.02.2007 22:40
Follow me!
RSS me!