\clearpage % Rozdziały zaczynamy od nowej strony.
\section{Code listings}
\lipsum[10]
% Fragment kodu źródłowego programu
% \addmargin pozwala na wcięcie kodu od lewej (tu: 8mm).
% Wcięcie służy do tego, aby numery linii nie wystawały poza lewy margines.
% Druga liczba oznacza wcięcie od prawej.
\begin{addmargin}[8mm]{0mm}
\begin{lstlisting}[
language=HTML,
numbers=left,
firstnumber=1,
caption={\emph{Hello world} w HTML},
aboveskip=10pt
]
Hello world!
Hello world!
\end{lstlisting}
\end{addmargin}
\lipsum[11]
% Dla dłuższych numerów linii potrzebne jest większe wcięcie.
\begin{addmargin}[12mm]{0mm}
\begin{lstlisting}[
language=C++,
numbers=left,
firstnumber=147,
caption={Generowanie sekwencji Collatza w języku C++},
aboveskip=10pt
]
class Collatz {
private:
unsigned current_val_;
void update_val() {
if( current_val_ % 2 == 0 )
current_val_ /= 2;
else
current_val_ = current_val_ * 3 + 1;
}
public:
explicit Collatz(unsigned initial_value) :
current_val_(initial_value) {}
void print_sequence() {
unsigned i = 1;
while( current_val_ > 1 ) {
std::cout
<< "val " << i << " = " << current_val_
<< std::endl;
update_val(); ++i;
}
}
};
int main() {
// prints Collatz seqence, starting from 194375
Collatz seq(194375);
seq.print_sequence();
return 0;
}
\end{lstlisting}
\end{addmargin}
\lipsum[12]