From: Doni Pracner Date: Sun, 16 Feb 2014 19:29:51 +0000 (+0100) Subject: Doterivanje glave o stringovima X-Git-Tag: v14a~6 X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=spa1skripta-public.git;a=commitdiff_plain;h=7b0251c69e779464030fa1b5a23b38e921bb39cf Doterivanje glave o stringovima --- diff --git a/skripta-spa1-sadrzaj.tex b/skripta-spa1-sadrzaj.tex index dc453c5..2d3146e 100644 --- a/skripta-spa1-sadrzaj.tex +++ b/skripta-spa1-sadrzaj.tex @@ -532,10 +532,19 @@ najadekvatniju za konkretnu primenu. U opštem slučaju definišemo npr: String = ARRAY [1..30] OF CHAR; \end{codeblock} -Operacije nad stringovima se najčešće uvoze iz modula \kod{Str}. One -sve prihvataju \emph{otvorene nizove znakova} (strukture definisane sa -\kod{ARRAY OF CHAR}), tako da im se može proslediti niz proizvoljne -dužine. +Budući da Modula 2 definiše mogućnost korišćenja \emph{otvorenih + nizova}, lako je moguće definisati procedure koje kao parametre +primaju bilo koji tip koji je definisan kao niz znakova. + +\begin{codeblock} + PROCEDURE ObradaStringa(str: ARRAY OF CHAR); +\end{codeblock} + +Konkretne promenljive u programu moraju biti definisane dužine. + +Operacije nad stringovima se najčešće uvoze iz modula \kod{Str} i one +su sve definisane da prihvataju \emph{otvorene nizove znakova} kao što +je malopre objašnjeno. Određivanje stvarne dužine stringa (tj koliko od maksimalnog kapaciteta niza je zapravo zauzeto sadržajem) se može izvesti na @@ -546,13 +555,12 @@ sledeći način: Leksikografsko poređenje dva stringa se ne može vršiti standardnim operatorima kao što su \kod{< > =}. Ovo je delom zato što se radi o -nizovima, a delom i zato što se ne vidi direktno koji deo niza je -popunjen stvarnim sadržajem. Za ovo se koristi komanda \kod{Compare}, -koja prihvata dva stringa kao parametre, a vraća broj koji predstavlja -njihov odnos. Taj broj će biti 0 ako su stringovi jednaki, veći -od nule ako je prvi string ``veći'', i manji od nule ako je prvi -string ``manji''. Ovo se lako pamti kad primetimo da je odnos -između \kod{Compare} i 0 isti kao i između prvog i drugog stringa. +nizovima, ali značajnije i zato što se ne vidi direktno koji deo niza +je popunjen ``stvarnim'' sadržajem. Za ovo se koristi komanda +\kod{Compare}, koja prihvata dva stringa kao parametre, a vraća broj +koji predstavlja njihov odnos. Taj broj će biti 0 ako su stringovi +jednaki, veći od nule ako je prvi string ``veći'', i manji od nule ako +je prvi string ``manji''. \begin{codeblock} IF Compare(str1, str2) > 0 THEN @@ -564,6 +572,9 @@ između \kod{Compare} i 0 isti kao i između prvog i drugog stringa. END; \end{codeblock} +Ovo se lako pamti kad primetimo da je odnos između \kod{Compare} i 0 +isti kao i između prvog i drugog stringa. + Postoji i modul \kod{Strings} koji ima nešto drugačije definisane procedure, no na njih se sada nećemo fokusirati.