\documentclass{article}

\usepackage[latin2]{inputenc}

\title{Vaje 2}
\author{Tatjana Ahčin}
\date{13.10.1997}

\begin{document}

\maketitle

\section*{Moduli}

Uporabljene module navedemo vedno v glavi. Katere uporabimo, je
odvisno od zahtev programa. Poglejmo si nekaj osnovnih primerov:
%
\begin{itemize}
\item stdio.h - za standardne vhode in izhode,
\item conio.h - vsebuje npr. funkcijo CLRSCR, ki očisti zaslon.
\item math.h - deklarira matematične funkcije,
\item values.h - definira pomembne konstante.
\end{itemize}
%
Glava ima lahko npr. tako obliko:
%
\begin{quote}
   \#include $<$stdio.h$>$
\\ \#include $<$math.h$>$
\end{quote}


section*{Posebni znaki kot parametri funkcije \emph{printf}}

\begin{center}
  \begin{tabular}{|l|l|} \hline
   \textbf{ZNAK oz. UKAZ} & \textbf{POMEN}
\\ \hline\hline
   $\backslash$n          & prehod v novo vrsto
\\ \hline
   $\backslash$t          & tabulator
\\ \hline
   $\backslash$a          & pisk
\\ \hline
   $\backslash$b          & pomik za en znak nazaj
\\ \hline
   $\backslash$r          & premik nazaj na začetek vrste
\\ \hline
   $\backslash\backslash$ & izpis poševnice
\\ \hline
   $\backslash$"          & izpis dvojnega narekovaja
\\ \hline
   $\backslash$'          & izpis opuščaja (apostrofa)
\\ \hline
   \%\%                   & izpis znaka \%
\\ \hline
  \end{tabular}
\end{center}

\section*{Izpisovanje vrednosti spremenljivk s funkcijo \emph{printf}}

Obliko izpisa, torej da izpisujemo vrednost spremenljivke
pokažemo z znakom \%.
%
\begin{itemize}
\item \textbf{\%d}: uporabimo za cela števila,
\item \textbf{\%ld}: za dolga cela,
\item \textbf{\%f}: za decimalna z enojno natančnostjo,
\item \textbf{\%e}: za decimalna z enojno natančnostjo v eksponentni obliki,
\item \textbf{\%lf}: za decimalna z dvojno natančnostjo,
\item \textbf{\%le}: pa za decimalna števila z dvojno natančnostjo v
  eksponentni obliki.
\end{itemize}

\subsection*{Določanje števila znakov}

Za lepše izpisovanje število znakov raje vnaprej določimo za njihovo
dolžino, sicer se pri večjih  številih zgodi, da se izpišejo daljša kot
zahtevamo. To pomeni, da se pripiše na koncu še nekaj ,,naključnih``
decimalk dopiše.

\begin{itemize}
\item \textbf{\%10d}: za število rezerviramo 10 mest, poravnava pa je desna
\item \textbf{\%-10d}: kot prej, le da je poravnava leva
\item \textbf{\%12.2f}: za decimalno število smo rezervirali 12 mest, za piko
  sta dve decimalki, poravnava je desna
\item \textbf{\%-12.2f}: enako kot prej, le poravnava je leva
\end{itemize}
%
Če rezerviramo za izpis števila premalo mest, se le-to vseeno izpiše
tako kot  je resnično veliko.

Primer, kako vse te podatke vključimo kot parametre funkcije
\emph{printf} pokaže naslednji ukaz:
%
\begin{center}
  \texttt{printf("decimalno stevilo x je \%10.3f", x)}
\end{center}
%
ki bo vrednost decimalnega števila x izpisal na vsaj desetih mestih
s tremi decimalnimi mesti za piko.

\section*{Izpisovanje \emph{niza}}

Deklaracija niza:
%
\begin{center}
   \texttt{char niz[]= "niz";}
\end{center}
%
V oglatem oklepaju lahko zapišemo dolžino niza, vendar mora biti
smiselna.

Uporaba funkcije \emph{printf}:
%
\begin{center}
   \texttt{printf("\%s", niz);}
\end{center}
%
Ostali načini izpisa:
%
\begin{itemize}
\item \textbf{\%30s}: za niz rezervira vsaj 30 mest, poravnava desna
\item \textbf{\%-30s}: kot prej, le poravnava je leva
\item \textbf{\%30.10s}: izpiše prvih 10 znakov niza, poravnava desna
\end{itemize}

\section*{Deklaracijski tip \emph{char}}

Za en znakec je potrebnih 8 bitov oziroma 1 zlog. Vsakemu znaku, npr.\
črki pripada v ASCII kodi ena številka.

Izpisovanje znakov s funkcijo \emph{printf}:
%
\begin{center}
     \texttt{printf("\%c", znak);}
\end{center}

\end{document}
