From: Doni Pracner Date: Mon, 17 Feb 2014 19:45:07 +0000 (+0100) Subject: Vizuelna promena uvlacenja koda u odnosu na tekst. X-Git-Tag: v14a~3 X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=os2skripta.git;a=commitdiff_plain;h=4060c57585a116f791735069690c50c2a750cbf1 Vizuelna promena uvlacenja koda u odnosu na tekst. Uveden codeblock-indent koji je uvucen kao dosad i koristi se za male komande koda koji su usput u tekst, dok ostali veci komadi sada imaju manje margine levo. --- diff --git a/skripta-os2.tex b/skripta-os2.tex index 57a5b15..1c9a36a 100644 --- a/skripta-os2.tex +++ b/skripta-os2.tex @@ -167,7 +167,12 @@ pdfauthor={\autor}% % prebreak=\P, % postbreak=\ding{229}\space, language=Modula-2, - xleftmargin=4em + xleftmargin=1em +} + +\lstdefinestyle{codeblock-indent}{ + style=codeblock, + xleftmargin=4em } \lstdefinestyle{terminal}{ @@ -187,6 +192,7 @@ pdfauthor={\autor}% } \lstnewenvironment{codeblock}[1][]{\lstset{style=codeblock,#1}}{} +\lstnewenvironment{codeblock-indent}[1][]{\lstset{style=codeblock-indent,#1}}{} \lstnewenvironment{terminal}{\lstset{style=terminal}}{} % ----------------==================-------------------------------------- @@ -217,7 +223,7 @@ dobijaju i besplatne ISO, PIM i još neke biblioteke. \label{g-prvi-program} Tradicionalni prvi program ``Hello World'' bi izgledao ovako: -\begin{codeblock} +\begin{codeblock-indent} MODULE hello; FROM StrIO IMPORT WriteString, WriteLn; @@ -226,7 +232,7 @@ Tradicionalni prvi program ``Hello World'' bi izgledao ovako: WriteString('hello world'); WriteLn END hello. -\end{codeblock} +\end{codeblock-indent} Primećuje se razlika u modulu iz koga se uvoze komande u odnosu na XDS/TopSpeed verzije M2, tamo je sve bilo u \kod{InOut}, dok se ovde @@ -276,9 +282,9 @@ man system \end{terminal} odnosno videćemo da je poziv definisan na sledeći način: -\begin{codeblock} +\begin{codeblock-indent} int system(const char *command); -\end{codeblock} +\end{codeblock-indent} što znači da vraća ceo broj, a prima jedan argument koji je pokazivač (što se označava *) na znak. Ovo je zapravo ceo string, pošto se u C jeziku oni predstavljaju kao pokazivač na prvi znak, a string se onda @@ -718,9 +724,9 @@ END Zad4. Korišćenjem sistemske komande \kod{fork} trenutni proces se duplira (``račva''). Novi proces je identičan sa originalnim, osim u svom identifikacionom broj. Komanda ne prima parametre i vraća jedan integer, pa se može mapirati na sledeći način: -\begin{codeblock} +\begin{codeblock-indent} PROCEDURE fork(): INTEGER; -\end{codeblock} +\end{codeblock-indent} Oba procesa se nakon račvanja nastavljaju odvijati u sledećem redu koda. Jedino po čemu se razlikuju je vrednost koju je vratio @@ -730,14 +736,14 @@ je ta vrednost jednaka proces identifikatoru (\emph{pid}-u) procesu je ova vrednost jednaka nuli. Budući da je najčešće potrebno da dete i roditelj rade različite stvari, to se obično rešava kodom sledećeg oblika: -\begin{codeblock} +\begin{codeblock-indent} pid := fork(); IF pid = 0 THEN (* "detetove" operacije *) ELSE (* "roditeljske" operacije *) END; -\end{codeblock} +\end{codeblock-indent} Komanda \kod{wait} (uvezena kao sistemska) se može pozvati u originalnom procesu sa efektom da se proces uspava dokle god neki od @@ -880,14 +886,14 @@ je Lubuntu, ako su performanse problematične. Prvi korak za instalaciju dodatnog kompajlera GNU Modula 2 je dodavanje repozitorijuma softvera u sistem. Ovo se može uraditi ručnim menjanjem fajla \kod{/etc/apt/sources.list} i dodavanjem -\begin{codeblock} +\begin{codeblock-indent} # # GNU Modula-2 repo # deb http://floppsie.comp.glam.ac.uk/debian/ squeeze main deb-src http://floppsie.comp.glam.ac.uk/debian/ squeeze main -\end{codeblock} +\end{codeblock-indent} Alternativno se mogu koristiti sledeće komande: