Skip to content

Commit

Permalink
[ivt] cleaner code
Browse files Browse the repository at this point in the history
  • Loading branch information
Headary committed Jan 24, 2022
1 parent 19719cf commit 89b2bb7
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 84 deletions.
40 changes: 20 additions & 20 deletions ivt/18-html.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
% dokumenty, rámy, iframe-vkládání prvků, tabulky, obrázky, formátování textu,
% prohlížeče HTML dokumentů

\newcommand\htmlsingle[1]{\texttt{<#1>}}
\newcommand\htmlpair[1]{\texttt{<#1>}\dots\texttt{</#1>}}
\newcommand\htmlsingle[1]{\inlisth{<#1>}}
\newcommand\htmlpair[1]{\inlisth{<#1>}\dots\inlisth{</#1>}}

\setcounter{section}{17}
# WWW stránky / HTML
Expand Down Expand Up @@ -54,7 +54,7 @@
## HTML dokument
- vždy nutnost základních tagů
- pokud chybí, prohlížeč si je doplní
- \texttt{<\!DOCTYPE html>} -- specifikace HTML formátu
- \htmlsingle{\!DOCTYPE html} -- specifikace HTML formátu
- \htmlpair{html} -- začátek a konec HTML dokumentu
- \htmlpair{head}
- hlavička dokumentu
Expand All @@ -70,10 +70,10 @@
- \htmlpair{style} -- CSS styl stránky přímo v HTML
- \htmlsingle{link} -- link k externí resource (CSS, JS\dots)
- \htmlsingle{meta} -- specifikace metadat stránky
- \texttt{charset} -- HTML encoding
- \texttt{name} -- jméno specifikovaných metadat
- \texttt{content} -- specifikace hodnoty v name atributu
- \texttt{http-equiv} -- HTTP header pro informace/hodnotu v content atributu
- \inlisth{charset} -- HTML encoding
- \inlisth{name} -- jméno specifikovaných metadat
- \inlisth{content} -- specifikace hodnoty v name atributu
- \inlisth{http-equiv} -- HTTP header pro informace/hodnotu v content atributu

\lstinputlisting[language=HTML]{../source_codes/18-head.html}

Expand All @@ -91,7 +91,7 @@
- \htmlpair{tt} -- strojní styl
- \htmlpair{del} -- smazaný text
- \htmlpair{font} -- specifikace fontu
- atributy \texttt{size}, \texttt{color}, \texttt{face}\dots
- atributy \inlisth{size}, \inlisth{color}, \inlisth{face}\dots

#### Logické formátování
- \htmlpair{strong} -- důležitý text
Expand All @@ -100,26 +100,26 @@
- \htmlpair{q} -- text s uvozovkami
- \htmlpair{em} -- kurzíva
- \htmlpair{a} -- odkaz
- \texttt{src} -- cesta odkazu
- \texttt{target} -- místo otevření odkazu
- \inlisth{src} -- cesta odkazu
- \inlisth{target} -- místo otevření odkazu

\lstinputlisting[language=HTML]{../source_codes/18-body.html}

#### Obrázky
- \htmlsingle{img} -- tag pro vložení obrázku
- \texttt{src} -- zdroj obrázku
- \texttt{width}, \texttt{height} -- rozměry
- \texttt{alt} -- alternativní text
- \texttt{loading}, \texttt{longdesc}, \dots
- \inlisth{src} -- zdroj obrázku
- \inlisth{width}, \inlisth{height} -- rozměry
- \inlisth{alt} -- alternativní text
- \inlisth{loading}, \inlisth{longdesc}, \dots

#### Tabulky
- \htmlpair{table} -- specifikuje tabulku
- \htmlpair{caption} -- popis tabulky
- \htmlpair{tr} -- řádek tabulky
- \htmlpair{th} -- buňka nadpisu
- \htmlpair{td} -- buňka tabulky
\texttt{colspan} -- šířka buňky ve sloupcích
\texttt{align} -- zarovnání
\inlisth{colspan} -- šířka buňky ve sloupcích
\inlisth{align} -- zarovnání

\lstinputlisting[language=HTML]{../source_codes/18-table.html}

Expand All @@ -129,10 +129,10 @@

#### Iframe
- \htmlpair{iframe} -- zobrazení obsahu jiné stránky
- \texttt{width}, \texttt{height} -- velikost
- \texttt{src} -- URL zdroje
- \texttt{allow} -- povolení funkcí
- \texttt{loading}, \texttt{name}\dots
- \inlisth{width}, \inlisth{height} -- velikost
- \inlisth{src} -- URL zdroje
- \inlisth{allow} -- povolení funkcí
- \inlisth{loading}, \inlisth{name}\dots
- sociální sítě (Youtube, Facebook, Instagram), embedded mapy\dots

## Prohlížeče HTML dokumentů
Expand Down
34 changes: 17 additions & 17 deletions ivt/21-kompilace-promenna.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ jednotka1.obj + jednotka2.obj + \dots{} + knihovna1.lib + knihovna2.lib + \dots{
- způsob uložení dat v programu
- na hodnotu ukazuje symbolické jméno
- specifikace typu dat -- int, string, float, char, bool, double\dots
- konstanty -- keyword \texttt{const} -- nelze měnit v průběhu programu
- \texttt{signed}, \texttt{unsigned} -- specifikace čísel s/bez znamének, keyword před data typem
- konstanty -- keyword \inlistc{const} -- nelze měnit v průběhu programu
- \inlistc{signed}, \inlistc{unsigned} -- specifikace čísel s/bez znamének, keyword před data typem
- další data typy, než ty zmíněny v~tabulce~\ref{21datatypes}, definovány ve standardních C knihovnách

\begin{table}[htbp]
Expand All @@ -68,28 +68,28 @@ jednotka1.obj + jednotka2.obj + \dots{} + knihovna1.lib + knihovna2.lib + \dots{
\toprule
Typ & Vysvětlení & Min. velikost (bity) & Formátování\\\\
\midrule
\texttt{char} & nejmenší adresovatelná jednotka uchovávající znak; vnitřně číslo & 8 & \texttt{\%c}\\\\
\texttt{signed char} & stejné jako char, garance znaménka, hodnoty $\cintc{-127}{+127}$ & 8 & \texttt{\%c}\\\\
\texttt{unsigned char} & stejné jako char, garance bez znaménka, hodnoty $\cintc{0}{255}$ & 8 & \texttt{\%c}\\\\
\texttt{short}, \texttt{short int} & krátký integer typ & 16 & \texttt{\%hi}, \texttt{\%hd}\\\\
\texttt{int}, \texttt{signed}, \texttt{signed int} & uchování čísla, rozšíření počtu bitů v operačních systémem se širším busem & 16 & \texttt{\%i}, \texttt{\%d}\\\\
\texttt{unsigned}, \texttt{unsigned int} & uchování čísla bez znaménka & 16 & \texttt{\%u}\\\\
\texttt{long}, \texttt{long int} & delší \texttt{int}, v moderních systémech shodné s \texttt{int} & 32 & \texttt{\%li} (signed), \texttt{\%lu} (unsigned)\\\\
\texttt{long long}, \texttt{long long int} & delší \texttt{long} & 64 & \texttt{\%lli}, \texttt{\%llu}\\\\
\texttt{float} & reálné číslo s desetinnými čísly, na většině systémech 32~bitů & & \texttt{\%f}\\\\
\texttt{double} & větší reálné číslo s desetinnými čísly, na většině systémech 64~bitů & & \texttt{\%lf}\\\\
\texttt{long double} & velké reálné číslo s desetinnými čísly; 80, 96 nebo 128~bitů & & \texttt{\%Lf}\\\\
\inlistc{char} & nejmenší adresovatelná jednotka uchovávající znak; vnitřně číslo & 8 & \inlistc{\%c}\\\\
\inlistc{signed char} & stejné jako char, garance znaménka, hodnoty $\cintc{-127}{+127}$ & 8 & \inlistc{\%c}\\\\
\inlistc{unsigned char} & stejné jako char, garance bez znaménka, hodnoty $\cintc{0}{255}$ & 8 & \inlistc{\%c}\\\\
\inlistc{short}, \inlistc{short int} & krátký integer typ & 16 & \inlistc{\%hi}, \inlistc{\%hd}\\\\
\inlistc{int}, \inlistc{signed}, \inlistc{signed int} & uchování čísla, rozšíření počtu bitů v operačních systémem se širším busem & 16 & \inlistc{\%i}, \inlistc{\%d}\\\\
\inlistc{unsigned}, \inlistc{unsigned int} & uchování čísla bez znaménka & 16 & \inlistc{\%u}\\\\
\inlistc{long}, \inlistc{long int} & delší \inlistc{int}, v moderních systémech shodné s \inlistc{int} & 32 & \inlistc{\%li} (signed), \inlistc{\%lu} (unsigned)\\\\
\inlistc{long long}, \inlistc{long long int} & delší \inlistc{long} & 64 & \inlistc{\%lli}, \inlistc{\%llu}\\\\
\inlistc{float} & reálné číslo s desetinnými čísly, na většině systémech 32~bitů & & \inlistc{\%f}\\\\
\inlistc{double} & větší reálné číslo s desetinnými čísly, na většině systémech 64~bitů & & \inlistc{\%lf}\\\\
\inlistc{long double} & velké reálné číslo s desetinnými čísly; 80, 96 nebo 128~bitů & & \inlistc{\%Lf}\\\\
\bottomrule
\end{tabularx}
\caption{Data typy v~C~standartu}
\label{21datatypes}
\end{table}

### Specifikování proměnné v~C
- formát \uv{\texttt{<datytype> <variable name>;}}
- \texttt{int i;}
- \texttt{char c, ch;}
- \texttt{float f=0.5f, ch;}
- formát \uv{\inlistc{<datytype> <variable name>;}}
- \inlistc{int i;}
- \inlistc{char c, ch;}
- \inlistc{float f=0.5f, ch;}

### Uchování dat v programu
- při specifikování proměnné se alokuje místo v paměti
Expand Down
66 changes: 33 additions & 33 deletions ivt/22-io-if.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,55 +6,55 @@
## Vstup/výstup do/z programu
- tzv. IO (input output) operace
- způsob komunikace programu se systémem, uživatelem a dalšími programy
- funkce poskytnuty knihovnou \texttt{stdio.h}
- funkce poskytnuty knihovnou \inlistc{stdio.h}

### Uživatelský vstup
- čtení vstupu z \texttt{stdin}^[standard stream pro vstup v terminálu]
- funkce \texttt{getchar(<variable>);}, \texttt{gets(<variable>);}, \texttt{scanf(<format>, <pointer>);}
- \texttt{getchar} -- načtení jednoho znaku
- \texttt{gets}
- čtení vstupu z \inlistc{stdin}^[standard stream pro vstup v terminálu]
- funkce \inlistc{getchar(<variable>);}, \inlistc{gets(<variable>);}, \inlistc{scanf(<format>, <pointer>);}
- \inlistc{getchar} -- načtení jednoho znaku
- \inlistc{gets}
- načtení stringu s mezerami, nelze číst čísla
- konec inputu novým řádkem nebo EOF
- unsafe, chybí ochrana před buffer overflow
- \texttt{scanf} -- načtení vstupu v zadaném formátu, konec inputu mezerou, \texttt{\textbackslash n} nebo EOF
- \inlistc{scanf} -- načtení vstupu v zadaném formátu, konec inputu mezerou, \texttt{\textbackslash n} nebo EOF

\lstinputlisting[language=C, caption=Načtení vstupu od uživatele]{../source_codes/22-inputs.c}

### Výstup programu
- výpis textu do \texttt{stdout} nebo \texttt{stderr}
- \texttt{stdout} -- standard stream pro output
- \texttt{stderr} -- standard stream pro errory
- funkce \texttt{putchar}, \texttt{puts}, \texttt{printf}, \texttt{fwrite}
- \texttt{putchar(<variable>);} -- vypsání jednoho znaku
- \texttt{puts(<variable>);}
- funkce z knihovny
- prostý výpis proměnné do \texttt{stdout} bez formátování
- výpis textu do \inlistc{stdout} nebo \inlistc{stderr}
- \inlistc{stdout} -- standard stream pro output
- \inlistc{stderr} -- standard stream pro errory
- funkce \inlistc{putchar}, \inlistc{puts}, \inlistc{printf}, \inlistc{fwrite}
- \inlistc{putchar(<variable>);} -- vypsání jednoho znaku
- \inlistc{puts(<variable>);}
- funkce z knihovnyinlistc
- prostý výpis proměnné do \inlistc{stdout} bez formátování
- na konci automaticky \texttt{\textbackslash n}
- \texttt{printf(<string and format>, <variable>);}
- \inlistc{printf(<string and format>, <variable>);}
- interpretace prvního stringu jako formátu
- následné proměnné specifikují hodnotu dat ve formátu
- nekončí automaticky novým řádkem
- \texttt{fwrite(const void *ptr, size\textunderscore t size, size\textunderscore t nmemb, FILE *stream);}
- \texttt{*ptr} -- buffer na vypsání, \texttt{size, nmemb} -- délka a počet da
- \inlistc{fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);}
- \inlistc{*ptr} -- buffer na vypsání, \inlistc{size, nmemb} -- délka a počet da
- zápis binárních dat do souboru nebo streamu

### Formát printf/scanf
- využití formátovací značek pro definici formátu outputu -- \texttt{\%d, \%i, \%u, \%c}\dots
- využití formátovací značek pro definici formátu outputu -- \inlistc{\%d, \%i, \%u, \%c}\dots
- zápis do stringu
- formátovací značky různé pro každý data typ (viz otázka~21)

\lstinputlisting[language=C, caption=Použíti printf a scanf]{../source_codes/22-sums.c}

## Podmínky
- způsob spouštění kódu za pomocí podmínek
- příkaz \texttt{if(rule)\\\{\dots\\\} else \\\{\dots\\\}}
- příkaz \inlistc{if (rule)\\{...\\} else \\{...\\}}
- pokud je podmínka splněna, je spuštěn kód v bloku; pokud není splněna, blok je přeskočen
- \texttt{else} blok spuštěn pouze za nedodržení podmínky
- \inlistc{else} blok spuštěn pouze za nedodržení podmínky
- podmínka -- boolenový výraz

### Booleovské výrazy
- v~C použit \texttt{int}, případně \texttt{bool} ze \texttt{stdbool.h}
- \texttt{True} -- nenulová hodnota (nejčastěji 1), \texttt{False} -- 0
- v~C použit \inlistc{int}, případně \inlistc{bool} ze \inlistc{stdbool.h}
- \inlistc{True} -- nenulová hodnota (nejčastěji 1), \inlistc{False} -- 0

\begin{table}[htbp]
\centering
Expand Down Expand Up @@ -86,24 +86,24 @@
\toprule
\textnormal{Operátor} & Směr vyhodnocení\\\\
\midrule
! ++ -- - + & $\leftarrow$\\\\
\* / \% & $\rightarrow$\\\\
+ - & $\rightarrow$\\\\
< <= >= > & $\rightarrow$\\\\
== != & $\rightarrow$\\\\
\&\& & $\rightarrow$\\\\
|| & $\rightarrow$\\\\
? : & $\leftarrow$\\\\
= += -= *= \dots & $\rightarrow$\\\\
, & $\rightarrow$\\\\
! ++ -- - + & $\longleftarrow$\\\\
\* / \% & $\longrightarrow$\\\\
+ - & $\longrightarrow$\\\\
< <= >= > & $\longrightarrow$\\\\
== != & $\longrightarrow$\\\\
\&\& & $\longrightarrow$\\\\
|| & $\longrightarrow$\\\\
? : & $\longleftarrow$\\\\
= += -= *= \dots & $\longrightarrow$\\\\
, & $\longrightarrow$\\\\
\bottomrule
\end{tabular}
\caption{Priorita vyhodnocování logických výrazů}
\label{22operations}
\end{table}

### Kombinace podmínek
- kombinování podmínek za pomocí logických operací \texttt{\&\&} a \texttt{||}
- kombinování podmínek za pomocí logických operací \inlistc{\&\&} a \inlistc{||}
- první vyhodnocení podmínek, následně vyhodnocení kombinací (viz~tab.~\ref{22operations})
- vyhodnocení zleva doprava
- logické výrazy možno skládat, závorky pro přednost\dots
Expand Down
22 changes: 11 additions & 11 deletions ivt/23-cykly.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,30 @@
- způsob opakování kódu
- \uv{*iterace*} -- jedno spuštění kódu
- 3 typy
- \texttt{for} -- opakování kódu $n$-krát
- \texttt{while} -- spuštění kódu za platné podmínky
- \texttt{do while} -- vykoná kód a za platné podmínky jej spustí znovu
- \inlistc{for} -- opakování kódu $n$-krát
- \inlistc{while} -- spuštění kódu za platné podmínky
- \inlistc{do while} -- vykoná kód a za platné podmínky jej spustí znovu
- související keywords
- \texttt{break;} -- ukončí cyklus, pokračuje kódem po bloku cyklu
- \texttt{continue;} -- ukončí započatou iteraci, skočí na další iteraci cyklu
- \inlistc{break;} -- ukončí cyklus, pokračuje kódem po bloku cyklu
- \inlistc{continue;} -- ukončí započatou iteraci, skočí na další iteraci cyklu

## For loop
- cyklus používán pro vykonání známého počtu opakování
- použití -- procházení pole, vykreslování, vypisování řádků\dots
- syntaxe -- \lstinline[language=C]{for(init; statement; increment)}\texttt{\\{\dots\\}}
- \texttt{init} -- výraz vyhodnocen za začátku, většinou zavedení proměnné indexu
- \texttt{statement} -- podmínka, za které se iterace spustí
- \texttt{increment} -- příkaz po vykonání iterace, většinou přičtení k indexu
- syntaxe -- \inlistc{for(init; statement; increment)\\{...\\}}
- \inlistc{init} -- výraz vyhodnocen za začátku, většinou zavedení proměnné indexu
- \inlistc{statement} -- podmínka, za které se iterace spustí
- \inlistc{increment} -- příkaz po vykonání iterace, většinou přičtení k indexu
- výrazy nemusí být vůbec uvedeny či mohou být jinde, nicméně uvedený formát je standard

\lstinputlisting[language=C, caption=Použití for cyklu]{../source_codes/23-for.c}

## While cyklus
- syntaxe -- \lstinline{language=C}{while(condition)}
- syntaxe -- \inlistc{while(condition)}
- iteruje, dokud je podmínka platná
- testování podmínky před cyklem
- použití, pokud je podmínka během cyklu změněna
- možnost zapsat jako \lstinline{language=C}{for(;condition;)}
- možnost zapsat jako \inlistc{for(;condition;)}

\lstinputlisting[language=C, caption=Použití while cyklu]{../source_codes/23-while.c}

Expand Down
2 changes: 1 addition & 1 deletion ivt/source_codes/18-table.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<table frame="box" rules="all">
<tr>
<th colspan=2>Jmeno</th>
<th>Věk</th>
<th>Vek</th>
</tr>
<tr>
<td>Alena</td>
Expand Down
7 changes: 5 additions & 2 deletions ivt/template.cls
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
definitionLists,
footnotes,
inlineFootnotes,
smartEllipses,
smartEllipses=false,
fencedCode,
contentBlocks,
pipeTables,
Expand Down Expand Up @@ -73,7 +73,7 @@
stepnumber=1,
firstnumber=1,
numberfirstline=true,
% Code design
% Code design
keywordstyle=\color{blue}\bfseries,
commentstyle=\color{darkgray}\ttfamily,
ndkeywordstyle=\color{editorGreen}\bfseries,
Expand All @@ -89,3 +89,6 @@
captionpos=b,
numberbychapter
}

\newcommand\inlistc[1]{\lstinline[language=C]{#1}}
\newcommand\inlisth[1]{\lstinline[language=HTML]{#1}}

0 comments on commit 89b2bb7

Please sign in to comment.