Search
— Jan Faigl 2024/02/14 16:03
gedit
vim
prga
lab01
program.c
main.c
Klíčové nastavení editoru je pro formátování zdrojového kódu. V předmětu PRGA 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í.
.clang-format
Výstup pak může například vypadat následovně.
Nastavení formátování ''clang-format'' v ''gedit''
wget https://cw.fel.cvut.cz/wiki/_media/courses/b3b36prg/labs/setup_gedit.zip
unzip setup_gedit.zip cat setup_gedit.sh gedit setup_gedit.sh ./setup_gedit.sh
// example program in C #include <stdio.h> int main() { printf("Hello PRGA!\n"); return 0; }
Překlad na spustitelný soubor provádíme z příkazové řádky příkazem
clang -Wall -pedantic -std=c99 main.c -o main
gcc -Wall -pedantic -std=c99 main.c -o main
Program spouštíme z příkazové řádky příkazem
./main
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.
~/Downloads
kde můžeme též využít příložena Makefile a vytvořit si zip soubour voláním make zip.
Makefile
zip
make zip
hw0.zip
zip hw0.zip main.c
$?
char, int, float, double
int scanf(const char *format [, address, ...]);
int getchar(void);
int printf(const char *format [, arg, ...]); int fprintf(FILE *stream, const char *format [, arg, ...]);
if
if( podmínka ){ příkaz1 } else { příkaz2 }
for
for( inicializace ; podmínka ; změna){ příkaz }
char
int
float
double
printf("Size of int: %lu\n", sizeof(int));
char c = 'a'; int i = 1000,j; float x,y = 3.1415; printf("%c\n",c); printf("%i\n",c); printf("%d\n",i); printf("%+5d\n",i); printf("%x\n",i); printf("%f\n",y); printf("%10.3f\n",y); printf("\t%-g\n",y);
printf("%6d,%4d",86,1040); printf("\n"); printf("%12.5e",3.14159265); printf("\r"); printf("%.4f\n",85.167);
stdout
stderr
fprintf
fprintf(stdout,"Standardní výstup: %d",i); fprintf(stderr,"Error výstup: %d",i);
./main >output.log 2>error.log
1-20.3-4.0e3
int r = scanf("%d%d%f%f",&i,&j,&x,&y)
scanf
r
“%d/%d”
./main <input.log