Cvičení č. 1: Programovací jazyky a editory

Cílem předmětu je ukázat cestu k získání zručnosti v imperativním strukturovaném procedurálním programování. Pro naše cvičení budeme volit dva programovací jazyky, populární Python a rychlý Fortran, a usadíme se ve Windows v prostředí editoru Visual Studio Code (VS Code). Na prvním setkání budeme instalovat a ukážemě si vše potřebné, včetně psychologického backupu v podobě příkazového interpretu Windows a editoru Notepad.

Bod nula: Notepad

Začneme s minimem, tedy s tím, co Windows poskytují out-of-the-box. Po stisknutí klávesové zkratky Win+R zadáme v okénku Run příkaz cmd a spustíme tak příkazový interpret (terminál, příkazový řádek, command-line interface, CLI), v menu Windows nazývaný Command Prompt. Výchozím adresářem je domácí adresář uživatele; můžeme zůstat v něm nebo se příkazem cd Desktop (change directory) přesunout více na světlo; vytvářené soubory pak uvidíme jako ikony na obrazovce. V okně interpretu zadáme další příkaz, notepad a.py, a v editoru Notepad pak už můžeme vytvořit zdrojový soubor pro Python:

print('ahoj')
print(1,1.)

První příkaz má doslovně vypsat text (znakový literál, řetězec znaků), druhý příkaz bude posílat na výstup textovou reprezentaci celočíselné (integer) a reálné (real, floating point) jedničky. Soubor uložíme (Ctrl+S), editor zavřeme a otevřeme zdrojový soubor pro Fortran, notepad a.f90. Zapíšeme a uložíme:

print *,'ahoj'
print *,1,1.
end

Ověřit existenci souborů můžeme příkazem pro výpis adresáře dir, vytvořit kopii souboru copy a.py b.py, vypsat obsah souboru type b.py a smazat soubor del b.py. Nápovědu k těmto příkazům poskytne volba /?, např. dir /?.

Máme zdrojové soubory, nemáme překladač Fortranu a, pokud jsme se nesnažili dříve, ani interpret Pythonu.

Instalace softwaru

Z nabídky fortranských překladačů (viz stránka předmětu) vybereme GNU Compiler Collection (GCC) s překladači Fortranu, C a C++. Po instalačním souboru sáhneme na equation.com; volíme poslední verzi, 64 bitů. Během instalace vybereme instalační adresář, vhodný bude C:\gcc (raději nic s mezerou ve jméně, jako Program Files). Instalační program by měl dva relevantní adresáře přidat na cestu, tedy uložit do proměnné prostředí (environment variable) PATH, což si ověřme příkazem path nebo echo %PATH% zadaným v nově otevřeném Command Prompt (v dříve otevřeném interpretu se PATH takto neaktualizuje). Úspěch instalace můžeme rovněž ověřit dotazem na polohu překladače, where gfortran, a zjištěním jeho verze, gfortran --version. To samé můžeme provést s gcc (jazyk C) a g++ (C++).

Pro Python je přirozené jít na python.org. Pro snazší život neopomeňme přijmout nabídku uložení cesty do proměnné PATH (zatrhnout Add Python to environment variables v Advanced Options). Python lze obstarat i z Microsoft Store, je pak ale s PATH více starostí. Ostatně, i takhle se bude hodit k proměnné PATH přistoupit zblízka a doplnit ji o jeden adresář; zadejme systempropertiesadvanced (vyplatí se vytvořit si zkratku, dávkový batch soubor spa.bat obsahující uvedený příkaz) a v Environment variables naklonujme v Path pythonovský adresář, který místo Scripts obsahuje bin. Ověřme si příkazem path, že nové adresáře skutečně přibyly, ověřme i where python a python --version. Dnes i později užijeme pythonovské balíčky, které teď rovnou přidejme pomocí Package Installer for Python (nebo rekurzivně „pip installs packages“): pro klíčové balíčky pro pythonské počítání pip install numpy scipy matplotlib numba a pro Fortran ve VS Code pip install fortls findent fprettify. Ověřit úspěch těchto instalací můžeme pythonovským příkazem, např. python -c "import fortls; print('fortls',fortls.__version__)", a v případě balíčků v podobě (executable) exe-souborů i fortls --version. Instalované balíčky vypíše pip list.

Zbývá instalovat editor VS Code z code.visualstudio.com a poté ověřit příkazem code --version. Editor otevřeme příkazem code, přepneme Primary side bar (vlevo) pomocí Ctrl+Shift+X nebo ikonou Extensions v Activity Bar (úplně vlevo) na zobrazení (View) dostupných extenzí a v Search okénku zadáme a pak nainstalujeme extenze Modern Fortran a Code Runner. Extenze pro Python a C/C++ jsou předinstalovány, jak v seznamu instalovaných extenzí vidíme. Víc zatím nepotřebujeme.

Akce Command Prompt

Se zdrojovými soubory, interpretem Pythonu a překladačem Fortranu už v Command Prompt (po instalaci nově otevřeném) můžeme pro výsledky:

python a.py          # spuštění skriptu v interpretu
gfortran a.f90 && a  # překlad zdrojového souboru do a.exe a spuštění exe-souboru

Až na formátování výstupů (počet mezer a desetinných míst) vidíme totéž:

ahoj
1 1.0

 ahoj
           1   1.00000000

Počet mezer a desetinných míst ve fortranské části výpisu něco prozrazuje; zabývali jsme se tím na první přednášce.

VS Code

Vrátíme se k VS Code: editor otevřeme v adresáři s našimi zdrojovými soubory příkazem code ., přepneme do souborového Exploreru (Ctrl+Shift+E nebo ikonou nahoře v Activity Bar) a nalezneme a otevřeme zdrojový soubor a.py. (Jedním klikem máme preview, dvojitým klikem trvalé otevření.) Vpravo nahoře si všimneme šipky pro spouštění skriptů, v případě Pythonu zahrnující návrh pythonovské extenze Run Python File a návrh Code Runneru Run Code, dostupný též pomocí Ctrl+Alt+N, a využijeme tyto možnosti. Dole se otevře Panel a v něm pozorujeme výsledky, které jsme před chvíli shlédli v Command Prompt. Code Runner navíc dovoluje spustit jen námi vyznačenou část skriptu (code snippet). Bude praktické zapnout v Settings (Ctrl+,) dvě volby Code Runneru, a to code-runner.runInTerminal a code-runner.saveFileBeforeRun; v okénku Search settings buď zadáme tyto názvy voleb nebo napíšeme code runner a volby dohledáme mezi několika nabídnutými.

Díky instalované extenzi Modern Fortran, fortranskému language serveru fortls a překladači gfortran to ve Fortranu bude prakticky stejné. V editoru s otevřeným a.f90 stiskneme Ctrl+Alt+N nebo šipku vpravo nahoře a předpřipravená sekvence příkazů Code Runneru náš program přeloží a spustí. V Settings si můžeme prohlédnout volby Modern Fortranu, zadáme-li v Search settings fortran. V Settings Code Runneru bychom mohli ještě vstoupit do Executor Map a v settings.json ručně upravit (po textovém vyhledání fráze gfortran) sekvenci příkazů pro klávesovou zkratku Ctrl+Alt+N.

Podrobněji o grafickém uživatelském rozhraní (graphical user interface, GUI) VS Code píšou na stránce User Interface.

Závěrem

Své soubory vytvářené v učebně můžete ukládat na studentské uložiště. Text o něm je na fakultní stránce Studentské uložiště.

Domácí úkol: připravte si potřebný software na počítači, ke kterému máte přístup, a zkuste si instalovat a projít to, co jsme prošli na cvičení a co je popsáno výše. Pro vyzkoušení zpětné vazby mi emailem pošlete zdrojové soubory spouštěných programů sbalené do jednoho archivu (zip, rar apod.).

P. S. Pascal, Matlab, Octave

Teď ne, ale příležitostně použijeme i programovací jazyky Pascal a Matlab nebo jeho klon GNU Octave.

Instalovat Pascal obvykle znamená získat překladač Free Pascal spolu s rozhraním (Integrated Development Environment, IDE) Lazarus. (Instalujme do adresáře bez mezer v názvu, např. C:\lazarus.) Pascalské programy můžeme samozřejmě editovat i ve VS Code, jeho pascalské extenze (např. OmniPascal) bohužel nejsou tak propracované jako Lazarus. Každopádně, instalační program nevloží cestu k překladači do PATH, to musíme pomocí systempropertiesadvanced sami (aktuálně leží Free Pascal Compiler fpc.exe v C:\lazarus\fpc\3.2.2\bin\x86_64-win64). Zdrojový soubor a.pas

program a;
begin
  writeln('ahoj');
  writeln(1,1.0);
end.

se pak přeloží příkazem fpc a.pas a exe-soubor spustí příkazem a. Code Runner ve VS Code to při Ctrl+Alt+N dělá také tak.

Instalace Matlabu je pěkné sousto. Matlab je komerční, ale k dispozici je univerzitní licence (link na stránce předmětu). Inspiroval vznik volně dostupného klonu GNU Octave. Pro účely naší přednášky jsou oba systémy zástupné; instalace Octavu (download) je časově i prostorově podstatně skromnější. (Instalujme opět do adresáře bez mezer v názvu, např. C:\Octave.) Ve VS Code pomůže jak Matlabu, tak Octavu populární extenze Matlab. Octave nepřekládá, ale podobně jako Python interpretuje. Zdrojový soubor a.m

format long     % vice desetinnych mist na vypisu
'ahoj'
1,1.

se spustí v IDE obou systémů buď po řádcích interaktivně nebo uvedením jména a, nebo zvnějšku voláním matlab -batch a, resp. octave a.m (ve Windows po vytvoření spustitelné dávky octave.bat s obsahem @C:\Octave\octave-launch %1). Code Runneru ve VS Code to musíme v Settings poradit, např. přidáním řádku s ".m": "octave $fileName" do code-runner.executorMapByFileExtension; skript pak spustíme jako v jiných jazycích klávesami Ctrl+Alt+N.