fondamenti-02.tex 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. %\documentclass[10pt, a4paper, twocolumn, notitlepage]{article}
  2. \documentclass[10pt, a4paper, notitlepage]{article}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage{lipsum}
  5. \usepackage{biblatex}
  6. \usepackage{url}
  7. \usepackage[breaklinks]{hyperref}
  8. \usepackage{breakurl}
  9. %\addbibresource{bibliography.bib}
  10. \usepackage{comment}
  11. % Todo red marker
  12. \usepackage{xcolor}
  13. \newcommand{\todo}[1]{}
  14. \renewcommand{\todo}[1]{{\color{red} TODO: {#1}}}
  15. \newcommand{\textoverline}[1]{$\overline{\mbox{#1}}$}
  16. \begin{document}
  17. \title{\textbf{Informatica 2020-21}
  18. Esercizi di Introduzione}
  19. \author{Andrea Gussoni}
  20. \author{
  21. Andrea Gussoni\\
  22. andrea1.gussoni@polimi.it\\
  23. {Politecnico di Milano}\\
  24. }
  25. %\date{October 24th, 2019}
  26. %\date{}
  27. \maketitle
  28. \section{Esercizi di codifica dell'informazione}
  29. \subsection{Conversioni Binario, Decimale, Esadecimale, Ottale}
  30. Svolgere le seguenti conversioni rapide:
  31. \begin{itemize}
  32. \item $347_{8} = x_{2}$
  33. \item $347_{8} = x_{16}$
  34. \item $F3A5_{16} = x_{2}$
  35. \item $F3A5_{10} = x_{8}$
  36. \end{itemize}
  37. \bigskip
  38. \noindent
  39. \paragraph{Soluzione:}\
  40. \begin{itemize}
  41. \item $347_{8} = 011100111_{2}$
  42. \item $347_{8} = E7_{16}$
  43. \item $F3A5_{16} = 1111001110100101_{2}$
  44. \item $F3A5_{16} = 171645_{8}$
  45. \end{itemize}
  46. \bigskip
  47. \subsection{Operatori Booleani}
  48. Rappresentare la tabella della verità delle seguenti formule:
  49. \begin{itemize}
  50. \item ($\bar{a}$ and $\bar{b}$) or $a$ or $b$
  51. \item ($\bar{a}$ and $b$) or ($\bar{b}$ and $c$) or ($a$ and $b$)
  52. \end{itemize}
  53. \bigskip
  54. \noindent
  55. Verificare l'equivalenza tra le seguenti formule:
  56. \begin{itemize}
  57. \item ($\bar{a}$ and $b$) or ($a$ and $\bar{b}$) or \textoverline{($a$ or $b$ and $c$)}
  58. \item $\bar{b}$ or $\bar{a}$
  59. \end{itemize}
  60. \smallskip
  61. \noindent
  62. \paragraph{Soluzione:}\
  63. Sono equivalenti.
  64. \bigskip
  65. \noindent
  66. Verificare l'equivalenza tra le seguenti formule:
  67. \begin{itemize}
  68. \item ($\bar{a}$ and $b$) or ($a$ and $\bar{b}$) or \textoverline{($a$ or $b$ and $c$)}
  69. \item $\bar{b}$ or $a$
  70. \end{itemize}
  71. \smallskip
  72. \noindent
  73. \paragraph{Soluzione:}\
  74. Non sono equivalenti.
  75. \bigskip
  76. \noindent
  77. Verificare l'equivalenza tra le seguenti formule:
  78. \begin{itemize}
  79. \item ($a$ and $\bar{b}$) or ($\bar{a}$ and $b$)
  80. \item \textoverline{($\bar{a}$ and $\bar{b}$) or ($a$ and $b$)}
  81. \item ($a$ or $b$) and ($\bar{a}$ or $\bar{b}$)
  82. \end{itemize}
  83. \smallskip
  84. \noindent
  85. \paragraph{Soluzione:}\
  86. Sono equivalenti.
  87. \section{Esercizi di dimensionamento dati}
  88. \subsection{Video di Sorveglianza}
  89. Per la sorveglianza di un capannone aziendale, viene impiegata una fotocamera con risoluzione Full HD. Il flusso video generato è quindi composto da una sequenza di immagini (anche dette frame) ognuna con dimensione di $1920\times1080$ pixels. Ogni pixel è rappresentato da una tripletta RGB (Red, Green, Blue), ognuna occupante $24$ bit. Ogni secondo, la fotocamera registra $24$ frame. La policy di sicurezza dell'azienda prevede che i filmati debbano venire conservati per un periodo di 1 settimana. Calcolare la dimensione di memoria necessaria per soddisfare tale requisito.
  90. \bigskip
  91. \noindent
  92. \paragraph{Soluzione:}\
  93. Cominciamo calcolando quanta memoria necessita un singolo frame. Ad una risoluzione di $1920\times1080$ ogni frame racchiude un totale di $2073600$ pixels, ed ogni pixel necessita di $3$ byte. Questo significa che ogni fame occuperà uno spazio di circa $5.9 \; MiB$. Ogni secondo vengono catturati $24$ frames, per un totale di $5.9MiB * 24 \approx 141.6 \; MiB$. In una settimana, sono presenti $604800$ secondi, quindi per contenere una settimana di registrazioni saranno necessari $604800 * 141.6 \; MiB \approx 81.7 \; TiB$ di spazio.
  94. Questa quantità di memoria è molto elevata. Infatti, per memorizzare immagini e video si usano algoritmi di compressione che ne riducono di molto la dimensione.
  95. \subsection{SDR}
  96. La Software Defined Radio, è una recente tecnologia che permette di ricevere, analizzare e creare trasmissioni radio con tecnologia digitale in modo molto più economico di quanto avveniva in passato. Un software SDR, è in genere in grado di demodulare e salvare un segnale ricevuto sotto forma di registrazione audio. Il segnale viene salvato con un campionamento a $44.1kHz$, di due canali, dove ogni campione ha una dimensione di $24$ bit. Se assumiamo che il nostro software sia in grado di attivare automaticamente $1$ minuto di registrazione ogni volta che un segnale sopra una certa soglia viene ricevuto, quanta memoria servirà immagazzinare il risultato di $1000$ ricezioni di segnale? In aggiunta, ogni attivazione salverà anche $1 \; KiB$ di metadati per poter ricostruire il momento della registrazione.
  97. \bigskip
  98. \noindent
  99. \paragraph{Soluzione:}\
  100. Ogni secondo, il campionamento del segnale richiederà $44100 * 2 * 3B \approx 258.4 \; KiB$. Un minuto di registrazione, richiederà quindi $60 * 258.4 \; KiB \approx 15.1 \; MiB$. Se consideriamo quindi 1000 eventi di attivazione, serviranno $1000 * (15.1 \; MiB + 1 \; KiB) \approx 14.7 \; GiB$.
  101. \clearpage
  102. \section{Esercizi Flowchart}
  103. \subsection{Confronto}
  104. Ideare un programma che legge una sequenza di coppie di valori interi ($A$ e $B$), e che per ogni coppia stampi in output "Maggiore" se $A > B$, "Minore" se $A < B$, e che termini se $A = B$.
  105. \subsection{Prodotto tra due numeri}
  106. Ideare un programma che calcoli il prodotto tra due numeri $A$ e $B$ positivi, avendo a disposizione il solo operatore somma.
  107. \subsection{Media}
  108. Ideare un algoritmo che calcoli la media aritmetica di una serie di valori ricevuti in input. Il valore $0$ rappresenta un valore speciale, che segnala la fine dell'immissione dei valori in input sui quali calcolare poi la media.
  109. \subsection{Numeri di Fibonacci}
  110. Ideare un algoritmo che riceve in input un intero positivo $N$, e che produca in output i primi $N$ numeri della serie di Fibonacci.
  111. La serie di Fibonacci è così definita: ogni numero della serie di Fibonacci è dato dalla somma dei due numeri che lo precedono, tranne che per i primi due numeri, che sono $0$ e $1$.
  112. In simboli, se $F_{n}$ e l'ennesimo numero della serie di Fibonacci:
  113. \begin{itemize}
  114. \item $F_{0} = 0$
  115. \item $F_{1} = 1$
  116. \item $F_{n} = F_{n-1} + F_{n-2}$
  117. \end{itemize}
  118. \subsection{Verificare se un numero è primo}
  119. Ideare un algoritmo che dato in input un numero intero $X > 0$, verifica se $X$ è primo.
  120. \begin{comment}
  121. \section{Riserva}
  122. \subsection{Codifica Floating Point}
  123. Conversioni in virgola fissa e virgola mobile.
  124. \begin{itemize}
  125. \item $0|1010.011_{2, virg fissa} = x_{10}$
  126. \item $17.675_{10} = x_{2, virg fissa}$
  127. \item $6.375_{10} = segno=x, exp=x, mantissa=x..._{2, virg mobile}$
  128. \end{itemize}
  129. \bigskip
  130. \noindent
  131. \paragraph{Soluzione:}\
  132. \begin{itemize}
  133. \item $0|1010.011_{2, virg fissa} = 10.375_{10}$
  134. \item $17.675_{10} = 0|10001.1010110_{2, virg fissa}$
  135. \item $6.375_{10} = segno=0, exp=00000010, mantissa=1001100..._{2, virg mobile}$
  136. \end{itemize}
  137. \bigskip
  138. \subsection{Operazioni bitwise}
  139. Svolgere le seguenti operazioni bit a bit:
  140. \begin{itemize}
  141. \item $\sim10101010_{c2}$
  142. \item $10101010_{c2} \; | \; 01010101_{c2}$
  143. \item $10101011_{c2} \; \& \; 11010101_{c2}$
  144. \item $11011011_{c2} \; \char`\^ \; 10010111_{c2}$
  145. \end{itemize}
  146. \bigskip
  147. \noindent
  148. \paragraph{Soluzione:}\
  149. \begin{itemize}
  150. \item $\sim10101010_{c2} = 01010101_{c2}$
  151. \item $10101010_{c2} \; | \; 01010101_{c2} = 1111111_{c2}$
  152. \item $10101011_{c2} \; \& \; 11010101_{c2} = 10000001_{c2}$
  153. \item $11011011_{c2} \; \char`\^ \; 10010111_{c2} = 01001000_{c2}$
  154. \end{itemize}
  155. \bigskip
  156. \end{comment}
  157. %\printbibliography
  158. \end{document}