1 - Úvodní cvičení

Cíle cvičení

  1. Seznámení s počítačovou učebnou, ownCloud a BRUTE.
  2. Přihlášení do operačního prostřední a nastavení vývojového prostředí.
  3. Vytvoření jednoduchého skriptu (posloupnosti příkazů) pro práci se soubory.
  4. Formátování zdrojového programu.
  5. 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ř.
  • Vytvořte příkazem mkdir adresář prp/lab01, kam si uložíte pracovní soubory z 1. cvičení, např.
  • Pokud se to nepodařilo, zjistěte jak se příkaz mkdir používá, např.
  • Nyní vytvořte adresářovou strukturu prp/lab01, např.
  • Vytvořte prázdný soubor main.c v prp/lab01 a vypište obsah adresáře ls -l prp/lab01, např.
  • Zjistětě to dělá předpínač -l u příkazu ls, např.
  • Přepněte pracovní adresář na prp/lab01 a spusťte vývojové prostředí (pokud už neběží), např.

Ú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 .
  • Zajistěte, že jsou v souboru opakující se hodnoty, např. přidáním do souboru .
  • S využitím přesměrování výstupu hodnoty uspořádejte do nového souboru, např. nástrojem sort .
  • Odstraňte duplicitní hodnoty, např. nástrojem uniq .
  • Porovnejte původní soubory s čísly, např. soubor numbers.txt a sorted-u.txt příkazem diff . 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ř. .
  • 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ř.

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

Formátování zdrojového programu

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

$ file main

Úkoly

  • Nastavete si formátování použitého editoru nebo vývojového prostředí.

Spuštění programu ve VS Code

Ú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.
  • Vytvořený archiv nahrajte do Upload systému, viz úkol HW00.
  • 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.
courses/b0b36prp/labs/lab01/start.txt · Last modified: 2025/09/22 13:01 by faiglj