gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 53bb5a4)
raw | patch | inline | side by side (parent: 53bb5a4)
author | Doni Pracner <quinnuendo@gmail.com> | |
Mon, 18 Feb 2013 16:36:05 +0000 (17:36 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Mon, 18 Feb 2013 16:36:05 +0000 (17:36 +0100) |
.gitignore | patch | blob | history | |
skripta-spa1.tex | patch | blob | history |
diff --git a/.gitignore b/.gitignore
index a1a539ff713e3357f0be11178df05ee340a3b717..ed0b78109a3bc62ddc6fe0c5dfaed978e5109884 100644 (file)
--- a/.gitignore
+++ b/.gitignore
_region*
*.blg
*.bbl
-*.exe
\ No newline at end of file
+*.exe
+errinfo.???
\ No newline at end of file
diff --git a/skripta-spa1.tex b/skripta-spa1.tex
index 44efda87b86b8c9fe777d0182766e7ff714e4178..46328d0f843e893525e2ca6caf865416dcdc6296 100644 (file)
--- a/skripta-spa1.tex
+++ b/skripta-spa1.tex
% osnovne informacije koje ce se prikazati na naslovnoj strani,
% kao i u informacijama u generisanom pdfu
\newcommand{\autor}{Vladimir Kurbalija, Milos Radovanovic, Doni Pracner}
-\newcommand{\naslov}{Skripta za vezbe iz predmeta strukture podataka
- i algoritmi 1}
-\newcommand{\datum}{April 2012, Novi Sad}
-\newcommand{\verzija}{ver 12b}
-%sc=single-column
+\newcommand{\naslov}{Skripta za vezbe iz predmeta "Strukture podataka
+ i algoritmi 1"}
+\newcommand{\datum}{Februar 2013, Novi Sad}
+\newcommand{\verzija}{ver 13a-jk}
+%jk=jedna kolona, dk=dve kolone
+
+\newcommand{\mainstart}{
+%\begin{multicols}{2}
+}
+
+\newcommand{\mainend}{
+%\end{multicols}
+}
+
\usepackage[serbian]{babel}
\usepackage{fancyhdr}
\pagestyle{fancy}
%change the default font
\usepackage{lmodern}
+\usepackage{beramono}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{pifont}
}
\lstdefinestyle{codeblock}{
- basicstyle=\footnotesize,
+ basicstyle=\footnotesize\ttfamily,
keywordstyle=\textbf,
columns=[l]fixed,
breakatwhitespace=true,
\lstnewenvironment{codeblock}{\lstset{style=codeblock}}{}
+
% ----------------==================--------------------------------------
% Pravi pocetak rada
\newpage
-\begin{multicols}{2}
+\mainstart
+
\section{Ilustracija efikasnosti algoritma}
\subsection{Zadatak: Pronaći sve pitagorine
U ovom modulu je definisan tip \kod{File}, koji predstavlja jedan fajl
sa kojim radimo.
-U primerima se pretpostavlja da je „f“ tipa \kod{File}, „str“ niz
-znakova, „i“ tipa \kod{INTEGER}, „c“ tipa \kod{CARDINAL} i „ch“ tipa
-\kod{CHAR}. Dodatna promenljiva „n“ tipa \kod{INTEGER} služi za
+\begin{quote}U primerima se pretpostavlja da je ``f'' tipa \kod{File}, ``str'' niz
+znakova, ``i'' tipa \kod{INTEGER}, ``c'' tipa \kod{CARDINAL} i ``ch''
+tipa \kod{CHAR}. Dodatna promenljiva ``n'' tipa \kod{INTEGER} služi za
formatiranje slično kao u modulu \kod{InOut}.
+\end{quote}
Promenljiva tipa \kod{File} se mora vezati za neki fajl
-jednom od sledećih komandi:\\
-\kod{f := Open(str);} -- otvara se postojeci fajl za čitanje\\
-\kod{f := Create(str);} -- kreira se fajl za pisanje\\
-\kod{f := Append(str);} -- otvara se postojeći za dopisivanje na kraj
+jednom od sledećih komandi:
+\begin{itemize}
+\item \kod{f := Open(str);} -- otvara se postojeci fajl za čitanje\\
+\item \kod{f := Create(str);} -- kreira se fajl za pisanje\\
+\item \kod{f := Append(str);} -- otvara se postojeći fajl za
+ dopisivanje na kraj
+\end{itemize}
-\kod{Close(f);} -- po završetku rada fajl se mora zatvoriti
+Po završetku rada fajl se mora zatvoriti, u našem primeru to bi bilo
+\kod{Close(f);}
-Procedure za čitanje i pisanje imaju parametar „\kod{f}“ koji označava
- fajl sa kojim se radi.\\
-\kod{RdStr(f,str)} -- učitava ceo red u string str\\
-\kod{RdItem(f,str)} -- učitava jednu reč u string str (učitava znakove iz fajla dok ne naiđe na separator)\\
-\kod{i:= RdInt(f); c:= RdCard(f)} -- učitava broj, koji se dobija kao rezultat procedure\\
-\kod{ch:= RdChar(f)} -- vraća jedan znak iz fajla
+Procedure za čitanje i pisanje su vrlo slične onima iz modula
+\kod{IO}, osim što imaju dodatni parametar „\kod{f}“ koji označava
+fajl sa kojim se radi.
+\begin{itemize}
+\item \kod{RdStr(f,str)} -- učitava ceo red u string str\\
+\item \kod{RdItem(f,str)} -- učitava jednu reč u string str (učitava znakove iz fajla dok ne naiđe na separator)\\
+\item \kod{i:= RdInt(f); c:= RdCard(f)} -- učitava broj, koji se dobija kao rezultat procedure\\
+\item \kod{ch:= RdChar(f)} -- vraća jedan znak iz fajla
+\end{itemize}
+
+Analogne su i procedure za pisanje različitih tipova u fajl:
+\begin{itemize}
+\item \kod{WrStr(f,str); WrInt(f,i,n);}\ \kod{WrCard(f,c,n);}\
+ \kod{WrChar(f,ch);}
+\end{itemize}
-Procedure za pisanje različitih tipova u fajl:
-\kod{WrStr(f,str); WrInt(f,i,n); WrCard(f,c,n);WrChar(f,ch);}
-\kod{WrLn(f);} -- upisuje prelom reda u fajl
+Prelom reda se eksplicitno upisuje u fajl komandom \kod{WrLn(f);}.
-\kod{EOF} -- logička promenljiva, označava da li smo poslednjom
+Da bi odredili da li smo stigli do kraja fajla možemo koristiti
+\kod{EOF}. U pitanju je logička promenljiva koja se uvozi iz modula
+FIO kao bilo kakva normalna komanda. Ona označava da li smo poslednjom
operacijom čitanja stigli do kraja fajla. Ne menja joj se vrednost
pri operacijama otvaranja i zatvaranja fajlova, odnosno neće se pri
-tome resetovati na \kod{FALSE}.
-
+tome resetovati na \kod{FALSE}, pa na ovo treba obratiti pažnju pri
+radu.
\subsection{Zadatak: ispis sadržaja fajla na ekran}
\section{Liste i pokazivači}
-Za rad sa pokazivačima je potrebno iz modula Storage uvesti procedure
+Za rad sa pokazivačima je potrebno iz modula \kod{Storage} uvesti procedure
\kod{ALLOCATE} i \kod{DEALLOCATE}. U kodu se tada mogu koristiti i njihovi
skraćeni oblici \kod{NEW} i \kod{DISPOSE}.
liste osoba koje dele sadržaj, jedna sortirana po visini, druga po
težini}
-Sa tastature ucitavati po dva broja koji opisiuju osobu (visina i
-tezina) i smestati ih u povezane listu, tako da postoji neopadajuce
-uredjenje i po visini i po tezini.
+Sa tastature učitavati po dva broja koji opisuju osobu (visina i
+težina) i smeštati ih u povezane listu, tako da postoji neopadajuće
+uređenje i po visini i po težini.
\begin{lstlisting}[style=codeblock]
MODULE VisTez;
Polinomi su predstavljeni pomoću pokazivača. Apstraktni tip podataka
\kod{Polinom} je definisan u globalnom modulu.
+\paragraph{PolinomL.DEF} \
+
\begin{lstlisting}[style=codeblock]
DEFINITION MODULE PolinomL;
TYPE
PROCEDURE DisposePolinom(VAR p: Polinom);
END PolinomL.
-(* --- kraj definicionog modula --- *)
+\end{lstlisting}
+
+\paragraph{PolinomL.MOD} \
+\begin{codeblock}
IMPLEMENTATION MODULE PolinomL;
FROM InOut IMPORT Write, WriteString, WriteLn,
WriteCard, ReadCard, Done;
END DisposePolinom;
END PolinomL.
-\end{lstlisting}
+\end{codeblock}
\subsection{Zadatak: Sabiranje sa unapred određenim polinomom}
Moguće je namestiti da u dijalogu za novi projekat drugo polje ``Template''
uvek bude prazno. Potrebno je u tom istom dijalogu kliknuti na
``Configure'', a potom isprazniti polje ``default template''.
-\end{multicols}
+
+
+\mainend
\end{document}