|
@@ -0,0 +1,65 @@
|
|
|
+%\documentclass[10pt, a4paper, twocolumn, notitlepage]{article}
|
|
|
+\documentclass[12pt, a4paper, notitlepage]{article}
|
|
|
+\usepackage[utf8]{inputenc}
|
|
|
+\usepackage{lipsum}
|
|
|
+\usepackage{biblatex}
|
|
|
+\usepackage{url}
|
|
|
+\usepackage{breakurl}
|
|
|
+\usepackage[breaklinks]{hyperref}
|
|
|
+%\addbibresource{bibliography.bib}
|
|
|
+\usepackage{comment}
|
|
|
+
|
|
|
+% Todo red marker
|
|
|
+\usepackage{xcolor}
|
|
|
+\newcommand{\todo}[1]{}
|
|
|
+\renewcommand{\todo}[1]{{\color{red} TODO: {#1}}}
|
|
|
+
|
|
|
+\begin{document}
|
|
|
+
|
|
|
+\title{\textbf{Esercizi}}
|
|
|
+%\date{October 24th, 2019}
|
|
|
+\date{}
|
|
|
+\maketitle
|
|
|
+
|
|
|
+\section{Aritmetica Binaria}
|
|
|
+Si calcoli la codifica binaria di $(13)_{10}$ in complemento a 2 su 5 bit e la si sommi a $(10000)_{complemento-a-2}$. Si verifichi il risultato effettuando l'operazione in decimale, previa ricodifica di $(10000)_{complemento-a-2}$.
|
|
|
+
|
|
|
+\bigskip
|
|
|
+\noindent
|
|
|
+\paragraph{Soluzione:}\
|
|
|
+Il numero $(13)_{10}$ in codifica complemento a 2 su 5 bit risulta essere $(01101)_{complemento-a-2}$. La somma risulta essere il numero $(11101)_{complemento-a-2}$, che effettivamente, riconvertito in decimale, risulta essere $(-3)_{10}$, che corrisponde alla somma 13 + (-16) in decimale (previa conversione di $(10000)_{complemento-a-2}$ in $(-16)_{10}$).
|
|
|
+
|
|
|
+\clearpage
|
|
|
+
|
|
|
+\section{Dimensionamento}
|
|
|
+Si consideri una telecamera che registra 90 immagini al secondo. Ogni immagine è rappresentata in scala di grigi su 256 possibili livelli di grigio, quindi ogni pixel potrà assumere un valore compreso tra 0 e 255. Ogni immagine inoltre, ha una dimensione di $800 \times 600$ pixel. Quanto spazio è necessario per memorizzare 1 minuto di registrazione assumendo che nessuna compressione video venga applicata all'immagine?
|
|
|
+
|
|
|
+\bigskip
|
|
|
+\noindent
|
|
|
+\paragraph{Soluzione:}\
|
|
|
+Cominciamo calcolando quanta memoria necessita una singola immagine. Ad una risoluzione di $800\times600$ ogni immagine racchiude un totale di $480000$ pixel, ed ogni pixel necessita di $1$ byte per essere immagazzinato. Infatti, ogni pixel può assumere un valore da $0$ a $255$ ($256$ possibili livelli), e sono necessari $8$ bit (equivalente ad $1$ byte) per memorizzarlo. Questo significa che ogni immagine occuperà uno spazio di circa $468.7 \; KiB$. Ogni secondo vengono catturati $90$ frame, per un totale di $468.7KiB * 90 \approx 42183 \; KiB$, ovvero circa $41.2MiB$. In un minuto, sono presenti $60$ secondi, quindi per contenere un minuto di registrazione saranno necessari $60 * 41.2 \; MiB \approx 2472 \; MiB$, ovvero circa $2.4 \; GiB$ di spazio.
|
|
|
+
|
|
|
+\clearpage
|
|
|
+
|
|
|
+\section{Sintesi di Codice}
|
|
|
+Si consideri in sistema di gestione di un magazzino. In questo magazzino, sono presenti una serie di prodotti. Ogni prodotto è caratterizzato da un nome, un prezzo (arrotondato all'euro), e una voce che dice se il prodotto è disponibile o meno nel magazzino. Descrivere che variabile possiamo utilizzare per rappresentare il singolo prodotto, e che tipo di variabile possiamo utilizzare per rappresentare il magazzino (che non è altro che una collezione di prodotti).
|
|
|
+
|
|
|
+Definire inoltre i prototipi delle seguenti funzioni:
|
|
|
+\begin{itemize}
|
|
|
+ \item \textbf{prodotto\_caro}: Questa funzione, riceve in ingresso un magazzino, e restituisce il nome e il prezzo del prodotto più caro nel magazzino, non importa se disponibile o meno.
|
|
|
+ \item \textbf{valore\_magazzino}: Questa funzione, riceve in ingresso un magazzino, e, per i soli prodotti presenti a magazzino, ne restituisce la somma dei loro prezzi.
|
|
|
+ \item \textbf{salva\_magazzino}: Questa funzione, riceve in ingresso un magazzino, e salva in formato csv il magazzino su un file, denominato "magazzino.csv" nella directory di esecuzione del programma. L'organizzazione del file sarà molto semplice, si salverà su ogni riga ogni prodotto presente nel magazzino, con i vari campi separati da virgole (ad esempio, il prodotto con nome "carta", prezzo "1" e disponibilità presente, corrisponderà nel file ad un riga "carta,1,True", e così via).
|
|
|
+ \item \textbf{magazzini\_uguali}: Questa funzione, riceve in ingresso due oggetti di tipo magazzino, e controlla che i due magazzini siano identici. Per identici si intende che i prodotti presenti nei due magazzini devono comparire nello stesso ordine e avere lo stesso nome e lo stesso prezzo (la disponibilità invece non sarà controllata in questa funzione). In caso affermativo la funzione restituisce "True", altrimenti restituisce "False".
|
|
|
+\end{itemize}
|
|
|
+
|
|
|
+Implementare ora le funzioni prima elencate.
|
|
|
+
|
|
|
+\bigskip
|
|
|
+\noindent
|
|
|
+\paragraph{Soluzione:}\
|
|
|
+Per rappresentare un prodotto è facile pensare all'utilizzo di un dizionario, che presenterà 3 coppie chiave-valore, il nome a cui corrisponderà un valore di tipo stringa, il prezzo a cui possiamo fare corrispondere un intero, e la disponibilità a cui possiamo fare corrispondere un booleano.
|
|
|
+Per rappresentare il magazzino invece, possiamo usare una semplice lista contenente oggetti di tipo prodotto (quindi una lista di dizionari).
|
|
|
+
|
|
|
+\clearpage
|
|
|
+
|
|
|
+\end{document}
|