Esercizio. Una moneta viene lanciata 1000 volte. Su 1000 lanci, per 600 volte esce croce. Quale è la ridondanza presente nella moneta?

Documenti analoghi
Sorgenti discrete e informazione

Matrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Introduzione al C. Unità 7 Array. S. Salza, C. Ciccotelli, D. Bloisi, S. Peluso, A. Pennisi

Sistemi di Elaborazione delle Informazioni

CODIFICA IMMAGINI IN BIANCO E NERO

Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di

Si vuole realizzare un programma in grado di verificare se una griglia assegnata rispetta le regole del gioco.

ARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori

Matrici. Unità 7. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Scritto di Algoritmi e s.d. (1o anno) 5 Luglio 2005

Costruiamo un'immagine o qualcosa di simile.

Algoritmi su Matrici. int const R=40; int const C=8; int A[R][C]; int n=32; int m=5; Compito Studente N O

definisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!

- int nbrani = 0; //numero di brani presenti in archivio. int creaplaylist(tipobrano[] playlist, int n, TipoGenere g, TipoFile t);

RAPPRESENTAZIONE DELLE INFORMAZIONI

Multidimensionali. Array Multidimensionali. Tipi di array. Matrice: array bidimensionale. Array multidimensionale. Dichiarazione di una matrice

1 (4) 2 (4) 3 (7) 4 (5) 5 (5) 6 (7)

I.4 Rappresentazione dell informazione - Altre codifiche

Esercizi

1) Probabilità di errore di trasmissione. 2) Capacità di canale. 3) Esempi di calcolo della capacità. 4) Disuguaglianza di Fano

Politecnico di Milano Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica B [079904]

Vettori di stringhe. Matrici Vettori di stringhe. Matrici di caratteri. Vettori di stringhe. char tris[3][3] ; Esercizio Verifica Sudoku.

Fondamenti di Informatica 2

Caratteri e stringhe

Matrici. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Corso di Informatica 1 (IN110) Tutorato n. 3

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tecnologie Multimediali a.a. 2016/2017. Docente: DOTT.SSA VALERIA FIONDA

RAPPRESENTAZIONE DELLE INFORMAZIONI

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 20 Febbraio 2014 COGNOME E NOME

Corso di Informatica 1 (IN110) Tutorato n. 4

Programmazione Appello d esame del 18 giugno 2010 Compito B

Codifica dell informazione

Fondamenti di Informatica Esercizi settimanali n. 3 01/10/2009 SOLUZIONI PROPOSTE

Calcolatori Elettronici Lezione 2 8/10/2012. Emiliano Casalicchio

E8 Esercizi sugli array in C

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

IEIM Esercitazione X Ripasso: array, puntatori, ricorsione. Alessandro A. Nacci -

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA

Esercitazione di Reti degli elaboratori

Ambienti di Programmazione per il Software di Base

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

IL PRIMO PROGRAMMA IN C

Le immagini digitali. Grafica. Due approcci alla modellazione grafica

Le immagini digitali

DOMANDA 2 Dire se le seguenti espressioni logiche sono equivalenti: ((A B ) (A+B ))+(B C ) = (A B )+(B C ) e giustificare la risposta Risposta

Rappresentazione di immagini

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Teoria dell informazione

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

Esercitazione 8. Array multidimensionali

Cenni di fotogrammetria LE IMMAGINI DIGITALI

Fondamenti di Informatica 2

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA

Introduzione al C. Lez. 2 Funzioni e Puntatori

Gli array Libro cap. 6 Moreno Marzol a Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Lezione 8: Stringhe ed array multidimensionali

La codifica binaria. Fondamenti di Informatica. Daniele Loiacono

Informatica. Comunicazione & DAMS A.A. 2015/16. Dr.ssa Valeria Fionda

Il sistema binario: bit e Byte Codifica del testo Il Byte come U.d.M. dell'informazione Multipli del Byte

Cenni di fotogrammetria LE IMMAGINI DIGITALI

Segnale analogico. Analogico vs digitale. Segnale digitale. Trasformazione da analogico a digitale

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Linguaggio C: Array Valeria Cardellini

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

Comunicazioni Elettriche II

Informatica B

Fondamenti di Informatica 12. Linguaggio C -4

Informatica B

Fondamenti di Informatica T-1 modulo 2

ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C

Comunicazioni Elettriche II

C: panoramica. Violetta Lonati

Esercizio 1 - Soluzione (array)

Esercitazione 6. Array

Informatica B

Introduzione al C. Lez. 2. Funzioni e Puntatori

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

Strutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.

Facoltà di Ingegneria Civile, Ambientale e Territoriale. Informatica, Prof. G. Boracchi Allievi Ingegneria Civile e Mitigazione del Rischio

Informazione binaria:

Progetti su più File Array e Funzioni

Esercitazione 6. Corso di Fondamenti di Informatica

Esercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Le immagini. Parametri importanti sono:

SOLUZIONE. ELEMENTI DI INFORMATICA Sede di Mondovì

Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int

Disegnare con i computer

Progetto CORDA Informatica 2014/2015

La codifica binaria. Informatica B. Daniele Loiacono

Matrici.h Definizione dei tipi #define MAXROWS 10 #define MAXCOLS 10 #define ELEMENT int #define ELEMENTFORMAT "%d" Tipo degli elementi della matrice

Transcript:

Una sorgente di informazione può produrre 8 diversi simboli con probabilità diverse, e presenta una entropia effettiva di 2.4 bit/simbolo. Quale è il numero medio di byte necessari per contenere un messaggio di 1000 simboli consecutivi generato da questa sorgente? Sol. In media un simbolo è rappresentabile con 2.4 binit il che significa che 1000 simboli occuperanno in media 2400 binit pari a 2400/8=300 bytes.

Una moneta viene lanciata 1000 volte. Su 1000 lanci, per 600 volte esce croce. Quale è la ridondanza presente nella moneta? Sol: assumendo la frequenza come misura della probabilità dei due simboli (T e C) abbiamo: p T =0.4 e p C =0.6; H=-p T log 2 p T -p C log 2 p C = -0.4 log 2 0.4-0.6 log 2 0.6= 0.529 + 0.442 = 0.971 bit/simb H MAX = log 2 2 = 1 bit/simb R = 1-H/H MAX = 1-0.971 = 0.029

Un dado genera i simboli da 1 a 6. Un dado truccato presenta una entropia effettiva di 2.16 bit. Quale è la quantità media di byte necessaria per memorizzare il risultato di 100 lanci? Sol: il numero medio di binit per rappresentare un messaggio di M simboli è N b =M H; se M=100 lanci allora N b =100 H = 100 2.16=216 binit 216 binit=216/8=27 bytes

Un canale di trasmissione può trasmettere 54Kbit al secondo. Quale sarà il tempo minimo di trasmissione di un file di 1 megabyte che presenta entropia effettiva di 4 bit? Il file è equivalente ad una sorgente dove ogni simbolo corrisponde ad un byte. Sol: il file costituisce un messaggio di M=2 20 simboli. Ogni simbolo occupa in media 4 binit per cui in totale avremo N b =M H=4 2 20 binit se la velocità di trasmissione è v t = 54 Kbit/s allora t=n b /v t =4 2 20 /54000=77.672 s

Un Ospedale decide di trasformare in formato digitale l archivio radiografico. Per questo scopo viene utilizzato uno scanner da 600 dpi e 48 bpp. Di quanto spazio di memoria ci sarà bisogno considerando che la dimensione di una radiografia è circa di 11 x 11 pollici. Dimensioni radiografia: orizzontale: 11 600 pixel verticale: 11 600 pixel numero pixel per radiografia:(11 600) 2 =43,560,000 pixel ogni pixel occupa 48/8=6 bytes occupazione radiografia=43,560,000 6=261,360,000 bytes

Un laboratorio fotografico deve digitalizzare una collezione di 100 fotografie a colori di dimensioni A4 (8x11 pollici), ed ha a disposizione, per memorizzare le immagini, un disco da 10 gigabyte. Quale è la risoluzione massima che si potrà utilizzare, in termini di dpi, se si sceglie una profondità di 24 bbp? Calcolare il risultato e spiegare il procedimento.

Soluzione Detta r la risoluzione (uguale in verticale e in orizzontale) in dpi si ha: occupazione foto: 8 r 11 r pixel=88 r 2 pixel ogni pixel occupa 24/8=3 bytes occupazione foto in bytes=88 r 2 3 bytes=264 r 2 bytes 100 foto occuperanno 26400 r 2 bytes tale valore deve essere inferiore a 10Gb: 26400 r 2 <10 2 30 da cui r < (10 2 30 /26400) 1/2 =637.746 dpi

Viene utilizzato uno scanner da 200 dpi e 24 bpp. Usando questo scanner vengono digitalizzate 10 fotografie di 10x15 centimetri che vengono memorizzate senza compressione. Quanto spazio di memoria occuperanno le foto? Calcolare il risultato e spiegare il procedimento. (1 pollice = 2,54 cm)

Soluzione occupazione foto in pixel: 10 15/2.54 2 200 2 pixel=930,001,860 pixel ogni pixel occupa 24/8=3 bytes occupazione foto in bytes=930,001,860 3 bytes=2,790,005,580 bytes 10 foto occuperanno 27,900,055,800 = 26.608 Mb

Con uno scanner da 300 dpi e 24 bpp vengono digitalizzate 11 lastre fotografiche ciascuna delle dimensioni di 6x4 pollici. Le immagini digitali ottenute vengono poi memorizzate con compressione jpeg 1:15. Quanto spazio di memoria occuperanno le immagini? Calcolare il risultato e spiegare il procedimento.

Soluzione occupazione foto in pixel: 6 300 4 300 pixel = 2,160,000 pixel ogni pixel occupa 24/8=3 bytes occupazione foto in bytes=2,160,000 3 bytes=6,480,000 bytes compressione: 6,480,000/15=432,000 bytes 11 foto occuperanno 11 432,000=4,752,000 bytes

Scrivere l'output del seguente programma, prestando attenzione agli indici e ai limiti dell'array e ignorando le istruzioni di stampa illegali (se ci sono). Supporre disattivato il controllo sul valore degli indici degli array. int main(void){ int a[4][4]; int *p,*q; int i,j,k=8,s=1; for(i=0; i<16; i++) a[0][i] = --k * (s=-s); for(i=0; i < 2; i++){ for(j=1; j < 7;j++) printf("%5d",a[i][j]); printf("\n"); }...

... } p = &a[1][1]; printf(" %d\n", a[*p-1][p[2]]); printf(" %d\n", *(p+*(p+5))); printf(" %d\n", *(&p[3]+p[3]-**a)); printf(" %d\n", a[&p[4]-a[2]][2]); printf(" %d\n", *(&p[3]+--*p)); printf(" %d\n", *(&a[0][0]-*(p-3)));

-7 6-5 4-3 2-1 0 1-2 3-4 5-6 7-8 Contenuto della matrice 6-5 4-3 2-1 2-1 0 1-2 3 for(i=0; i < 2; i++){ for(j=1; j < 7; j++) printf("%5d",a[i][j]); printf("\n"); }

-7 6-5 4-3 2-1 0 1-2 3-4 5-6 7-8 Contenuto della matrice -3 1?? -1 p = &a[1][1]; printf(" %d\n", a[*p-1][p[2]]); printf(" %d\n", *(p+*(p+5))); printf(" %d\n", *(&p[3]+p[3]-**a)); printf(" %d\n", a[&p[4]-a[2]][2]); printf(" %d\n", *(&p[3]+--*p)); printf(" %d\n", *(&a[0][0]-*(p-3))); -2 1

Nel gioco del Sudoku le caselle di uno schema di 9 righe 8 6 5 e 9 colonne devono essere riempite con i numeri da 1 a 9 in modo tale che un numero compaia una sola volta per 9 3 4 ogni riga, per ogni colonna e in ciascuno dei 9 quadrati 3 7 1 9 per 3 in cui può essere suddiviso lo schema (vedi figura). 3 9 Ad esempio, considerando lo schema della figura, nella 2 5 7 casella in seconda riga e ottava colonna potrà essere posto 6 o il numero 1 o il numero 6 o il numero 8 in quanto i numeri 9, 3 e 4 compaiono sulla stessa riga, i numeri 2 e 6 8 2 7 compaiono sulla stessa colonna e il numero 5 compare 3 4 nello stesso quadrato della cella in questione. Scrivere una funzione C che ricevuti come parametri: 9 7 6 una matrice 9 x 9 di interi contente uno schema parzialmente riempito (la casella vuota è rappresentata dal numero 0); le coordinate r (riga) e c (colonna) di una casella; un numero x candidato ad occupare la casella di coordinate r e c restituisca un valore di verità falso/vero (0/1) che indichi se il numero x può occupare la casella di coordinate r e c. Scrivere inoltre un main di prova della funzione.

sudoku int main(void){ int a[n][n]; int n,m,r,c,x; leggimatricedafile("datib.txt",a,&n,&m); printf("matrice:\n"); stampamatrice(a,n,m); printf("introduci le coordinate:"); scanf("%d%d",&r,&c); for (x=1; x<=n; x++) if (sudokucheck(a,n,r,c,x)) printf("%d ammissibile\n",x); else printf("%d non ammissibile\n",x); }

sudoku int sudokucheck( int A[N][N], int n, int r, int c, int x){ int k, ammissibile; ammissibile = A[r][c] == 0; for (k=0; k<n && ammissibile; k++) ammissibile = A[r][k]!= x && A[k][c]!= x; ammissibile = ammissibile && quadratoammissibile(a,s,r/s*s,c/s*s,x); } return ammissibile;

sudoku int quadratoammissibile( int A[N][N], int n, int r, int c, int x){ int i,j, ammissibile; ammissibile = 1; for (i=0; i<n && ammissibile; i++) for (j=0; j<n && ammissibile; j++) ammissibile = A[r+i][c+j]!= x; } return ammissibile;

LIFE Scrivere un programma che simuli una zona di spazio popolata da cellule (asterischi) che evolvono di generazione in generazione secondo le seguenti regole di nascita, morte e sopravvivenza: Nascita di una cellula: spazio vuoto circondata da 3 cellule Morte di una cellula: se circondata da meno di 2 o più di 3 cellule Sopravvivenza di una cellula: se circondata da 2 o 3 cellule