Viliam Búr: Starého Pascala novým trikom naučíš!

Sunday, April 30, 2006 ·

Programovací jazyk Pascal sa často používa pri výuke programovania, pretože je pre začiatočníka pomerne jednoduchý; pravidelný a prehľadný. Lenže potom, čo začiatočník zvládne prvé kroky, môže ľahko dôjsť k záveru, že okrem vyučovania informatiky sa Pascal v bežnom živote na nič nehodí. A čo je horšie, väčšina učiteľov na túto námietku asi nebude vedieť zareagovať. A pritom existujú rôzne možnosti, len o nich treba vedieť.

Rozhodovanie, ktorý programovací jazyk je „lepší“ a ktorý „horší“, závisí okrem vlastností samotného jazyka aj na schopnostiach a skúsenostiach programátora, na vlastnostiach projektu, ktorý treba urobiť, a na mnohých ďalších okolnostiach. Ani pre jednotlivé vlastnosti programovacieho jazyka sa často nenájde zhoda v tom, či sú „dobré“ alebo „zlé“. Niežeby na túto tému mnohí programátori nemali vyhranený názor (ktoré asi napíšu aj do komentárov k tomuto článku). Znamená to len, že sa nájde aj dostatok programátorov s názorom rovnako vyhraneným, ale opačným. (úsmev) A napokon, pre programovacie jazyky platí rovnako ako pre ľudské jazyky, že kto pozná iba jeden, ten vlastne ani ten jeden poriadne nepozná, pretože niektoré vlastnosti vyniknú len pri porovnaní.

Basic

dim x as integer
for x = 1 to 10
 print x
next x

Pascal

var x : integer;
for x := 1 to 10 do
begin
 writeln(x);
end;

C / C++

int x;
for (x = 1; x <= 10; x++) {
 printf("%i\n", x);
}

Java

int x;
for (x = 1; x <= 10; x++) {
 System.out.println(x);
}

Perl

my $x;
for ($x = 1; $x <= 10; $x++) {
 print $x . "\n";
}

Ruby

(1..10).each do |x|
 printf "%i\n", x
end

XSL

<xsl:template name="t">
 <xsl:param name="from" select="1"/>
 <xsl:param name="to" select="10"/>
 <xsl:if test="$from &lt;= $to">
 <xsl:message>
 <xsl:value-of select="$from"/>
 <xsl:text>&#xa;</xsl:text>
 </xsl:message>
 <xsl:call-template name="t">
 <xsl:with-param name="from" select="$from+1"/>
 <xsl:with-param name="to" select="$to"/>
 </xsl:call-template>
 </xsl:if>
</xsl:template>

Všetky ukážkové programy robia to isté – vypíšu na obrazovku čísla od 1 do 10, každé na inom riadku. Prvých šesť príkladov ukazuje, že väčšina jazykov sa na seba dosť podobá. Teda, v jednoduchých veciach; keby išlo o zložitejší program, ukázali by sa väčšie rozdiely. Siedmy príklad je uvedený ako ilustrácia, že to môže vyzerať aj úplne inak; čo robia iné programy na 3-5 riadkoch, tento urobí na 14. Pri určitom type úloh by sa však tento pomer obrátil.

Programovací jazyk Pascal vznikol v roku 1968 ako nástroj na vyučovanie programovania, a už od začiatku bola elegancia jazyka dôležitejším kritériom ako jeho praktické použitie. Je v ňom len málo skratiek, zátvoriek a podivných znamienok, ktorými sa novšie jazyky hemžia; namiesto toho je viac ukecaný (hm, žeby sa mi práve preto páčil?). Programy v Pascale sú ľahko čitateľné. Rýchlo sa kompilujú. Pascal dnes podporuje aj objektovo orientované programovanie a iné vymoženosti. A popri tom všetkom štruktúra jazyka núti programátora dodržiavať určité pravidlá a pestuje v ňom vhodné programátorské návyky.

Dodajme ešte, že najznámejšia verzia Pascalu – Turbo Pascal od firmy Borland – mala veľmi skromné nároky na pamäť, fungovala už na starej PP 06, a mala na svoju dobu asi najlepšie vývojové prostredie. Preto som po tomto jazyku veľmi ochotne siahol, a začal som si pripadať ako veľký počítačový guru. (V porovnaní s vtedajšími verziami Basicu to bol totálny zázrak.) Lenže na dobré veci sa ľahko zvyká; vývoj išiel dopredu, ja som mal stále ten istý Pascal, a začalo mi čoraz viac prekážať, že:

  • Existujú funkcie, ktoré mi povedia, kedy bola stlačená klávesa, ale nedozviem sa, kedy bola pustená. To je vhodné na robenie textových aplikácií, ale absolútne sa nehodí na hry.

  • Myš? Nebodaj joystick?

  • V grafickom režime môžem používať iba 16 základných farieb. OK, niekde z internetu sa dala stiahnuť knižnica na 256 farieb. Ale kde je „true color“? O hardvérovej akcelerácii ani nehovorím…

  • Obrázky by som si rád načítal zo súboru, nech ich nemusím vykresľovať po čiarkach a bodkách. No vlastný editor obrázkov sa mi kvôli tomu teraz písať nechce.

  • Hudba? A teraz nemám na mysli „pípanie“, ale nech to znie ako normálna hudba.

  • A keď dodám, že by program mal bežať v okne, asi už žiadam priveľa, nie?

Nechcem naisto tvrdiť, že žiadna z uvedených vecí v tom Pascale nebola. Niektoré možno boli niekde ukryté, a ja som ich len nenašiel. V škole sme sa o nich rozhodne neučili. Tak som sa postupne na Pascal vykašľal a dal prednosť iným programovacím jazykom. (Autori Turbo Pascalu vytvorili jazyk Delphi, ktorý mal byť nástupcom Pascalu. Zdalo sa mi však, že mu chýba jednoduchosť, prehľadnosť, a príjemné používateľské prostredie, čiže práve tie vlastnosti, kvôli ktorým som kedysi siahol po Pascale.)

Prešli roky…

Nedávno som náhodou na webe našiel projekt Free Pascal a príjemne ma prekvapilo, že sa tomuto jazyku ešte niekto venuje. Z nostalgie som si ho nainštaloval a začal čítať manuály. Postupne som zisťoval, že väčšina mojich starých výhrad už neplatí. Pascal chytil druhý dych a jeho možnosti sa značne rozšírili. Navyše si ho možno stiahnuť legálne zadarmo; veľký Tučniak nad ním rozprestrel svoje ochranné krídla, čo je zaslúžený osud každého dobrého softvéru.

Jednoduchý návod na inštaláciu pre MS Windows:

1) Na domácej stránke projektu Free Pascal kliknite na „Download“, „Win32“, a postupne sa dopracujete k súboru, ktorého názov vyzerá asi takto „fpc-2.0.2.i386-win32.exe“. To je inštalačný program, uložte si ho na disk.

2) Spustite inštalačný program. Ponechajte štandardné nastavenia. Keď sa vás opýta, ktoré prípony má zaregistrovať, odporučil by som pridať aj „.pas“, ak nepoužívate žiadnu inú verziu Pascalu. (Ak áno, ponechajte túto príponu pôvodnému Pascalu, nech sa o ňu nebijú.)

OK, teraz môžete prostredie spustiť a používať. Vyzerá podobne ako starý Turbo Pascal, a čo ste v ňom robili, bude sa dať skoro určite robiť aj teraz. Ak ste si ale medzičasom zvykli na grafické prostredie MS Windows, možno vám bude viac vyhovovať písať programy v Notepade (Poznámkovom bloku).

Program môžete skompilovať aj mimo vývojového prostredia, pomocou príkazu „fpc“. Takže aby sme sa od starého prostredia celkom oslobodili, môžeme urobiť ešte nasledujúce úpravy.

3) Vytvorte si niekde pomocný súbor, nazvite ho napríklad „fpcw.bat“, s nasledujúcim obsahom:

fpcw.bat

C:\FPC\2.0.2\bin\i386-win32\fpc.exe  %*
pause

4) Zaregistrujte si v Exploreri k súborom „.pas“ akcie:

Edituj … C:\WINDOWS\NOTEPAD.EXE "%1"

Kompiluj … C:\fpcw.bat "%1"

V tom druhom prípade zadajte cestu k súboru „fpcw.bat“, ktorý ste si vytvorili. No a teraz už v prostredí MS Windows stačí kliknúť na program v Pascale pravým tlačidlom a vybrať si, či ho chcete editovať, alebo skompilovať na súbor typu „.exe“. Ak pri kompilácii nastane chyba, kompilátor vypíše číslo riadku a znaku, kde nastala (je to to tá pozícia, na ktorú by vám nastavilo kurzor vývojové prostredie). Odteraz je editovanie a kompilovanie v Pascale totálna pohoda aj pre tých, čo si (podobne ako ja) za tie roky od onoho na svoje časy úžasného vývojového prostredia odvykli. (úsmev)

Rozhodne by som tento nový Pascal odporúčal najmä učiteľom informatiky na základných a stredných školách. Nielenže ho môžu legálne zadarmo používať, ale môžu ho aj dať žiakom, aby si ho nainštalovali doma. Kto má záujem a je ochotný sa s týmto jazykom „pohrať“ aj vo voľnom čase, naučí sa oveľa viac, ako je možné v rámci školských osnov. A čo sa týka sľúbených vymožeností tohto nového Pascalu (klávesy, myši, joysticky, true color, obrázky, hudba, okná,…), tak o nich niekedy nabudúce.

Jednoduché programy v Pascale, na ktorých si vyskúšate, či sa všetko poriadne nainštalovalo. (Výsledné súbory „.exe“ treba spúšťať z príkazového riadku, inak nič neuvidíte. Ako som povedal, okná až nabudúce.)

test.pas

program test;
begin
 writeln(`Hello World!`);
end.

test_crt.pas

program test_crt;
uses CRT;
var
 OldTextAttr : Byte;
begin
 ClrScr;
 WriteLn(`Hello World!`);
 OldTextAttr := TextAttr;
 TextAttr := $01;
 WriteLn(`Blue World`);
 TextAttr := $02;
 WriteLn(`Green World`);
 TextAttr := $04;
 WriteLn(`Red World`);
 TextAttr := OldTextAttr;
 WriteLn(`Goodbye World!`);
end.


Súvisiace články:



Viliam Búr

0 comments:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.