1 - Úvodní cvičení
Cíle cvičení
Přihlášení do operačního prostřední a nastavení vývojového prostředí.
Vytvoření jednoduchého skriptu (posloupnosti příkazů) pro práci se soubory.
Formátování zdrojového programu.
Kompilace programu a spouštění programu.
Materiály
V PRP nepředepisujeme jaké
pracovní vývojové prostředí používat. Obecně doporučujeme začínajícím programátorům použít prostředí
VS Code, případně nakonfigurovaný editor
gedit
nebo
vim
. Určitě je také možné použít komplexní prostředí jako je např. CLion. Nicméně jeho konfigurace a prozkoumání všech možností, může velmi rychle překročit časovou dotaci předmětu.
Úkoly
Nastavte si heslo v počítačové učebně
(Nastavení hesla) a seznamte se používaným prostředím
Práce s příkazovou řádkou
Ve svém domovském adresáři si založte složku my_prg
a složku lab01
.
Ve složce lab01
vytvořte soubor se jménem program.c
.
Celou složku lab01
přesuňte ze domovského adresáře do složky prg
.
Přejmenujte program_c
na main.c
.
Příprava prostředí pro cvičení z prp
V terminálu se přesuňte do domovského adresáře a ověřte jaký je aktuální pracovní adresář,
např.
% cd
% pwd
Vytvořte příkazem
mkdir
adresář prp/lab01, kam si uložíte pracovní soubory z 1. cvičení,
např.
% mkdir prp/lab01
Pokud se to nepodařilo, zjistěte jak se příkaz
mkdir
používá,
např.
% man mkdir
Nyní vytvořte adresářovou strukturu prp/lab01,
např.
% mkdir -p prp/lab01
Vytvořte prázdný soubor
main.c
v
prp/lab01
a vypište obsah adresáře
ls -l prp/lab01
,
např.
% touch prp/lab01/main.c
Zjistětě to dělá předpínač
-l
u příkazu
ls
,
např.
% man ls
Přepněte pracovní adresář na
prp/lab01
a spusťte vývojové prostředí (pokud už neběží),
např.
* cd ~/prp/lab01
* code .
Úkoly v příkazové řádce
Vygenerujete soubor s náhodnými celými čísly, využijte přesměrování standardního výstupu do souboru,
např. kombinací programů seq a shuf
% seq 1 1 10 > numbers.txt
% shuf numbers.txt > random.txt
.
S využitím přesměrování výstupu hodnoty uspořádejte do nového souboru,
např. nástrojem sort
% sort -n random.txt > sorted.txt
% wc sorted.txt
20 20 42 sorted.txt
.
Odstraňte duplicitní hodnoty,
např. nástrojem uniq
% uniq sorted.txt > sorted-u.txt
% wc sorted-u.txt
10 10 21 sorted-u.txt
.
Porovnejte původní soubory s čísly, např. soubor
numbers.txt
a
sorted-u.txt
příkazem diff
% diff numbers.txt sorted-u.txt > /dev/null
% echo $?
0
. Vypište návratovou hodnotu posledního volaného příkazu
echo $?
.
Podobně porovnejte původní soubor s čísly s randomizovaným pořadím,
např.
% diff numbers.txt sorted-u.txt > /dev/null
% echo $?
1
.
Jednotlivé příkazy shrňte ve skriptu, který vygeneruje soubory s náhodnými uspořádanými hodnotami celých čísel. Vytvořte spustitelných skript nastavení práv
u+x
příkazem
chmod
,
např.
% touch script.sh
% ./script.sh
% ls -l script.sh
% chmod u+x script.sh
% ls -l script.sh
% ./script.sh
Pracovat s příkazovou řádkou můžete přímo v prostředí VS Code (příkaz code
), do kterého je vhodné si lokálně doinstalovat rozšíření pro C/C$++$.
C/C$++$ Rozšíření VS Code
K efektivnímu programování patří i pohodlné pracovní prostředí. Každému vyhovuje něco jiného – někdo používá jednoduchý editor, jiný složitější nástroje jako CLion. Nastavit takové programy může být samo o sobě náročné. V tomto kurzu si vystačíme s VS Code. CLion můžete použít také (příkaz clion
), ale začátečníkům doporučujeme spíše soustředit se na principy než ztrácet čas složitým nastavováním.
Klíčové nastavení editoru je pro formátování zdrojového kódu. V předmětu PRP je preferováno formátování nástrojem clang-format a nastavením stylu:
{BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux}
Formátování zdrojového kódu pak provedete např. následovně:
clang-format -style='{BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux}' muj_kod.c > formatovany_kod.c
V případě použití vývojového prostředí VS Code lze lokálně nastavit formátování vytvořením souboru .clang-format
, viz Programovací prostředí.
Výstup pak může například vypadat následovně.
První program
// example program in C
#include <stdio.h>
int main()
{
puts("Hello PRP!");
return 0;
}
Překlad programu
Překlad na spustitelný soubor provádíme z příkazové řádky příkazem
clang -Wall -pedantic -std=c99 main.c -o main
případně
gcc -Wall -pedantic -std=c99 main.c -o main
Spuštění programu
Program spouštíme z příkazové řádky příkazem
$ ./main
Zjištění typu souboru
Úkoly
Spuštění programu ve VS Code
V prostředí VS Code může vypadat interaktivní práce tak, že si stáhneme soubor domácího úkolu v prohlížeči do adresáře ~/Downloads
a dále vše řešíme už jen z VS Code s využitím integrovaného terminálu.
kde můžeme též využít příložena Makefile
a vytvořit si zip
soubor voláním make zip
.
Úkoly programování HW00
Do souboru main.c
napište zdrojový kód programu, který vypíše na standardní výstup “Hello PRP!”.
Program zkompilujte a spusťte.
Zdrojový kód zazipujte do archivu main.zip
, například pomocí příkazu: “zip main.zip main.c
“.
Dále je možné využít proměnnou prostředí $?
a vyzkoušet si různé návratové hodnoty programu a řetězení kompilace a spuštění programu, včetně např. podmíněného spuštění programu v závislosti na úspěchu kompilace programu.
Kvízy
Kvízy jsou tu především proto, abyste si vyzkoušeli, co už znáte, a objevili, co si ještě potřebujete doplnit. Nejde o to mít vše hned bez chyby – právě omyly vám pomohou učit se nejvíc. Proto mají kvízy jen malé bodové hodnocení a slouží hlavně jako bezpečný prostor pro trénink a získání jistoty.