INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C
|
|
- Gianpaolo Bartolini
- 8 anni fa
- Visualizzazioni
Transcript
1 INFORMATICA E PROGRAMMAZIONE PROF. M. GIACOMIN ESPERIENZA IN AULA: ELABORAZIONE DI IMMAGINI A COLORI IN LINGUAGGIO C DESCRIZIONE GENERALE In questa esperienza il C verrà utilizzato per elaborare immagini bitmap con codifica dei colori RGB si riveda la teoria in proposito. In particolare verranno sviluppate alcune funzioni per effettuare delle trasformazioni dell immagine, quali ad esempio il passaggio da colori a bianco e nero (o meglio scala di grigi). A questo scopo nel sito è disponibile una libreria (file Immagini.h e Immagini.c) unitamente ad un file contenente il main (main.c) che include il codice per permettere all utente di selezionare la funzione da eseguire. La libreria mette a disposizione il seguente tipo di dato per rappresentare un pixel: typedef struct{ unsigned char blue; unsigned char green; unsigned char red; } Pixel; in cui i campi blue, green, red, che possono assumere valori compresi tra 0 (min) e 255 (max), rappresentano il colore del pixel secondo la codifica RGB con 24 bit per pixel (8 bit per colore). Un immagine deve essere rappresentata mediante una matrice di elementi di tipo Pixel: Pixel Immagine[MAX_X][MAX_Y]; dove MAX_X e MAX_Y sono costanti che corrispondono alle dimensioni massime dell immagine rappresentabile (si ricorda che nel C standard le dimensioni dei vettori sono fissate). In particolare, l immagine reale è contenuta in una sottomatrice di dimensioni px*py (dove px<=max_x, py<=max_y) secondo la seguente figura: (0,0) (px-1,0) (0,py-1) (px-1,py-1) Matrice Immagine
2 L esercitazione prevede di elaborare la matrice che rappresenta l immagine per ottenere alcuni effetti descritti in seguito. Il programma NON sarà in grado di visualizzare le immagini: per vedere il risultato delle elaborazioni, si salverà l immagine in un file.bmp per mezzo della libreria fornita, in modo da poter poi visualizzarla mediante un qualsiasi programma di visualizzazione (e tipicamente di elaborazione) di immagini. DESCRIZIONE FUNZIONI DI LIBRERIA Mediante le funzioni della libreria, è possibile salvare la matrice in un file.bmp (visualizzabile praticamente da tutti i popolari programmi di visualizzazione immagini) e viceversa caricare nella matrice un immagine da un file.bmp (nella sua forma più semplice - senza uso di palette). Le immagini che possono essere caricate mediante la libreria (oltre a quella del file tramonto.bmp fornita sul sito), possono essere generate dai popolari programmi di gestione immagini. Ad esempio, utilizzando paint una qualunque immagine può essere salvata in un formato compatibile con la libreria selezionando Bitmap a 24 bit (.*bmp, *.dib). Divertitevi a sperimentare le funzioni implementate sulle immagini più varie La libreria mette a disposizione le 3 funzioni descritte di seguito (si veda il main.c per un esempio di utilizzo). int salva_immagine(const char *nomefile, Pixel Imm[][], int px, int py, int MY); /* salva un'immagine (contenuta in una matrice di Pixel) in un file (formato bitmap senza palette). Riceve in ingresso: const char *nomefile: la stringa contenente il nome del file in cui salvare l'immagine Pixel Imm[][]: il nome della matrice (di Pixel) in cui e' rappresentata l'immagine int px: il numero dei pixel orizzontali (cordinata x) dell'immagine int py: il numero dei pixel verticali (coordinata y) dell'immagine int MY: il numero di colonne della matrice Imm, in MY. Restituisce 0 se ok, 1 se errore in fase di salvataggio. NB: la funzione non effettua alcun controllo sulle dimensioni della matrice */ int dimensioni_immagine(const char *nomefile, int *x, int *y); /* esamina un file che si suppone contenere un'immagine in formato bitmap semplice (no palette) e restituisce le dimensioni in pixel x*y dell'immagine (attraverso due puntatori). Riceve in ingresso: const char *nomefile: la stringa contenente il nome del file contenente l'immagine int *x: l'indirizzo della variabile in cui la funzione memorizza il valore x int *y: l'indirizzo della variabile in cui la funzione memorizza il valore y Restituisce 0 se ok, 1 se viene rilevato un errore. */ int carica_immagine(const char *nomefile, Pixel Imm[][], int MY); /* carica un'immagine da un file in formato bitmap semplice (no palette) in una matrice di pixel. Riceve in ingresso: const char *nomefile: la stringa contenente il nome del file contenente l'immagine da caricare
3 Pixel Imm[]: il nome della matrice (di Pixel) in cui salvare l'immagine int MY: il numero di colonne della matrice Imm. Restituisce 0 se ok, 1 se errore in fase di caricamento. NB: la funzione non effettua alcun controllo sulle dimensioni della matrice, il programmatore deve assicurarsi che la matrice sia sufficientemente capiente per memorizzare l immagine. */ OPERAZIONI PRELIMINARI 1) Creare una directory in cui si salverà il progetto. 2) Scaricare nella directory creata i tre file Immagini.c, Immagini.h, main.c e tramonto.bmp disponibili sul sito. 3) Accedere a DEVC++ e creare un nuovo progetto empty (vuoto) da salvare nella stessa directory. 4) Aggiungere al progetto i due file Immagini.c e main.c (non Immagini.h e tramonto.bmp) mediante Project/Add to Project 5) Compilare (Execute/Rebuild All) ed eseguire (Execute/Run) il codice: attraverso il programma, provare a caricare l immagine tramonto.bmp e a salvarla con un altro nome (es. tramonto2.bmp). 6) A questo punto nella directory del progetto dovreste trovare il nuovo file: visualizzare l immagine in esso contenuta (uguale a quella di partenza) con un programma di visualizzazione immagini. 7) Esaminare il file main.c (vedi note successive). Nel file main.c è già stato sviluppato un programma che implementa l interazione con l utente, consentendogli di scegliere entro diverse opzioni. La struttura del main è caratterizzata dai seguenti aspetti: Vengono definite le costanti MAX_X e MAX_Y mediante la direttiva #define (potete cambiarne i valori come desiderate). Vengono dichiarate le funzioni per le elaborazioni delle immagini mediante i loro prototipi Viene definita come variabile globale la matrice IMM contenente l immagine corrente (quella su cui si lavora), unitamente alle variabili px e py che tengono traccia delle dimensioni dell immagine stessa. NB: si poteva definire IMM come variabile locale all interno del main, tuttavia, per motivi legati al compilatore, questa scelta può - nel caso di matrici di dimensioni elevate - dare origine ad errori in fase di esecuzione. Nota: viene definita anche un altra matrice TEMP utile per salvare temporaneamente l immagine. Si entra in un ciclo infinito in cui il programma continua a chiedere all utente una scelta (es: crea immagine di prova, carica immagine, ecc.). A seconda della scelta, il programma chiede eventuali dati all utente ed invoca una funzione opportuna. Il programma utilizza la struttura switch-case, facilmente comprensibile ad una prima lettura del codice. Si esaminino in particolare l opzione c (caricamento di un immagine) che sostituisce l immagine corrente con una caricata da file e l opzione s (salvataggio di un immagine) che salva l immagine corrente in un file. Si noti che la dimensione corrente dell immagine è mantenuta nelle variabili globali px e py Come visto, sono già implementati il caricamento ed il salvataggio delle immagini, mentre le funzioni di elaborazione delle immagini sono correttamente definite ed invocate ma hanno il corpo vuoto (contiene solo la stampa di un messaggio).
4 ESERCITAZIONE DA SVOLGERE Scrivere e sperimentare le funzioni per elaborare l immagine corrente descritte di seguito (le funzioni sono presentate in ordine di difficoltà crescente). Nota: non si devono gestire più immagini: il caricamento di un file sostituisce l immagine corrente, così pure la creazione dell immagine di prova. Le trasformazioni intervengono sempre sull immagine corrente. 1) Trasformazione dei colori dell immagine complementando le componenti : per ciascun pixel, la componente blu dovrà diventare 255-blu, la componente verde dovrà diventare 255-verde, la componente rossa 255-rosso. void compl_color(pixel Im[][MAX_Y], int x, int y); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine corrente 2) Trasformazione dei colori dell immagine in bianco e nero, o meglio in tonalità di grigio. Si ricordi come è rappresentato il bianco, come è rappresentato il nero e quali sono i colori corrispondenti ai grigi: un modo semplice è attribuire, per ogni pixel, la media delle tre componenti di colore a ciascuna di esse. void bianco_nero(pixel Im[][MAX_Y], int x, int y); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine corrente 3) Trasformazione dei colori dell immagine in modo che siano avvicinati ad un determinato colore focale scelto dall utente (il quale ne indicherà le tre componenti) secondo un certo grado α compreso tra 0 e 1 (anch esso scelto dall utente). Ad esempio, se l utente sceglie il verde allora tutti i colori dovranno essere avvicinati al verde, tanto più quanto maggiore è α (in particolare: se α=0 allora i colori rimangono inalterati, se α=1 allora l immagine diventa tutta verde). Suggerimento: si pensi a un colore come ad un punto nello spazio tridimensionale, identificato dalla terna delle sue componenti: avvicinare un colore al colore focale significa aggiungergli una parte del segmento che lo congiunge al colore focale stesso (la lunghezza è determinata da α). void FocusColor(Pixel Im[][MAX_Y], int x, int y, int bluef, int greenf, int redf, float alpha); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine corrente, bluef, greenf, redf, alpha rappresentano il colore focale ed il grado alpha. Esempio: immagine ottenuta da quella di prova focalizzandola sul verde (0, 255, 0):
5 4) Creazione di un immagine di prova di dimensioni scelte dall utente costituita da una serie di strisce verticali di dimensioni pari al 5% di px (in modo da ottenere circa 20 strisce), tali che: - i pixel della prima striscia hanno le componenti di colore pari a 0 per le componenti blu e verde, 255 per la componente rossa - i pixel della seconda striscia hanno tutte le componenti di colore pari a 0 - i pixel della terza striscia sono uguali alla prima, i pixel della quarta sono uguali alla seconda, ecc. ecc. In altre parole, le strisce pari hanno tutte lo stesso colore, le strisce dispari hanno tutte lo stesso colore. SUGGERIMENTO: la larghezza di ogni striscia è pari a px/20. Scorrete le colonne della matrice mediante un ciclo: per ciascuna colonna, usate la divisione per stabilire il numero della striscia cui appartiene è facile verificare se questo è pari o dispari ed attribuire i colori del pixel di conseguenza! void creaimmprova(pixel Im[][MAX_Y], int x, int y); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine da costruire (si suppone che px e py siano stati già aggiornati) 5) Trasformazione dell immagine in un immagine simmetrica rispetto all asse verticale centrale (vedi esempio successivo). Suggerimento: la prima colonna della matrice dovrà essere scambiata con l ultima, la seconda con la penultima cercate di realizzare la funzione senza l uso di una matrice temporanea! void simmetrica(pixel Im[][MAX_Y], int x, int y); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine corrente Esempio: immagine simmetrica rispetto a quella originaria
6 6) Squadrettatura dell immagine in quadrati di lato (in pixel) specificato dall utente (vedi esempio successivo). Nota: si tratta di un esercizio NON facilissimo! Pensate a come ottenere il colore uniforme in un quadratino Inoltre, l immagine non necessariamente include un numero esatto di quadratini void squadretto(pixel Im[][MAX_Y], int x, int y, int dim_quadro); //ingresso: Im è la matrice, x e y sono le dimensioni dell immagine corrente, dim_quadro è il lato (in pixel) del quadratino) ESEMPIO: La seguente è stata ottenuta per squadrettatura impostando una dimensione dei quadrati di 10 pixel per lato (nell esempio l immagine è più grande in modo che si vedano i quadrati, ma il programma NON deve modificare le dimensioni dell immagine in pixel): ALTRE IDEE PER APPASSIONATI: Definire una funzione che individua il numero di colori diversi che compongono un immagine. Ad esempio, l immagine di prova ottenuta sinteticamente contiene solo 4 colori (verde, blu, rosso e nero). Quanti colori diversi contiene l immagine del tramonto? A partire dall individuazione dei diversi colori (vedi funzione precedente), si potrebbe sviluppare un algoritmo che riduce il numero dei colori accorpando quelli che sono sufficientemente vicini tra loro. In questo modo si avrebbe una perdita di qualità non troppo evidente, con il vantaggio che la riduzione del numero dei colori potrebbe favorire la riduzione delle dimensioni del file (ad esempio usando una palette, NON gestita dal presente programma). Si usi la fantasia per sviluppare un algoritmo in tal senso meglio ancora se funzionante in base ad uno o più parametri scelti dall utente. Ogni altra funzionalità interessante inventata dallo studente
Introduzione alla compilazione ed esecuzione di programmi C con IDE Dev-C++
Introduzione alla compilazione ed esecuzione di programmi C con IDE Dev-C++ Università degli Studi di Brescia Elementi di Informatica e Programmazione Università di Brescia 1 Sviluppo di un programma C
DettagliProf. Massimiliano Giacomin 22 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli
INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 22 dicembre 2016 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per
DettagliProf. Massimiliano Giacomin 21 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli
INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 21 dicembre 2017 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per
DettagliPrincipi di Programmazione Prova del 10/6/2008 (ore 10.30)
Prova del 10/6/2008 (ore 10.30) Scrivere (commentandole) le linee di codice Matlab per costruire i seguenti vettori (5x1): e il vettore di numeri complessi C tali che il singolo elemento c k ha come parte
DettagliProf. Massimiliano Giacomin 19 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli
INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 19 dicembre 2018 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per
DettagliCorso di Fondamenti di Informatica (M-Z) Prof. Aldo Franco Dragoni. Prova Scritta 19 aprile 2007
Corso di Fondamenti di Informatica (M-Z) Prof. Aldo Franco Dragoni Avvertenze Consegnare solo fogli formato A4. Scrivere su un solo lato (no fronte retro) In ordine di preferenza usare inchiostro nero,
DettagliCapitolo 10 - Strutture
1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la
DettagliFondamenti di Informatica - Compito A
Fondamenti di Informatica - Compito A Prof. Marco Gavanelli 22 gennaio 2014 Le immagini con sfumature di grigio possono essere salvate in formato PGM. Nel formato PGM, le immagini sono rappresentate come
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO IX.2015
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 14.IX.2015 VINCENZO MARRA Indice Preliminari 2 Esercizio 1 2 Memorizzazione, lettura e visualizzazione
DettagliEsercitazioni di Informatica (CIV)
Esercitazioni di Informatica (CIV) e Temi d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 10 dicembre 2015 Compilare il codice La sequenza di azioni
DettagliRappresentazione di immagini
Rappresentazione di immagini Il modo più immediato per rappresentare un'immagine è quello di considerarla suddivisa in un reticolo di punti detti pixel. Maggiore è il numero di pixel per unità di lunghezza
DettagliTitolo presentazione
Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno
DettagliLezione 6 Struct e qsort
Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliIl compito del 11 novembre 2004
Alcuni errori frequenti riscontrati durante la correzione del compito: 1. In alcuni elaborati il typedef/struct non è stato utilizzato correttamente 2. Molti hanno confuso la dichiarazione di un array,
DettagliCODIFICA IMMAGINI IN BIANCO E NERO
Rappresentazione delle immagini Anche le immagini possono essere codificate mediante una sequenza di 0 e 1., questa operazione si chiama digitalizzazione. La prima cosa da fare è dividere l immagine in
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:
DettagliLab 09 Strutture e programmi su più file
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 09 Strutture e programmi su più file Lab13 1 Alcune Informazioni Utili Funzioni per manipolare stringhe (in string.h)!
DettagliCostruiamo un'immagine o qualcosa di simile.
Costruiamo un'immagine...... o qualcosa di simile. Se consideriamo la C che si trova in fondo a destra, ci accorgiamo che un'immagine non è altro che una tabella di valori. Nel caso in cui si consideri
DettagliLezione 8 Struct e qsort
Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort
DettagliFondamenti di Informatica 1 - Compito A
Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 9 Gennaio 2007 Esercizio (16 punti) Un programma in linguaggio C deve rilevare se un punto del piano, le cui coordinate sono lette da tastiera,
DettagliEsercitazioni di FONDAMENTI DI INFORMATICA MODULO B
Università di Ferrara Dipartimento di Ingegneria Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B Tutor Arnaud Nguembang Fadja: ngmrnd@unife.it Damiano Azzolini: damiano.azzolini@student.unife.it Esercizio
DettagliLinguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia
Linguaggio C: Introduzione ad ambienti di sviluppo integrati (IDE) e a Dev-C++ Università degli Studi di Brescia Elementi di Informatica e Programmazione Università di Brescia 1 Sviluppo ed esecuzione
DettagliFondamenti di Informatica Ing. Biomedica
Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione
DettagliSistemi di Elaborazione delle Informazioni
Università degli Studi di Messina Policlinico G. Martino - Sistemi di Elaborazione delle Informazioni A.A. 26/27 Università degli Studi di Messina Policlinico G. Martino - Sistemi di Elaborazione delle
DettagliRappresentazione digitale delle informazioni
Rappresentazione digitale delle informazioni Informazione oggi Informatica: disciplina che studia l elaborazione automatica di informazioni. Elaboratore: sistema per l elaborazione automatica delle informazioni.
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 Soluzione della prova scritta del 31 Gennaio 2006 Esercizio 1 (4 punti) Elencare i tipi di dato predefiniti del linguaggio C, precisandone il dominio e le operazioni principali
DettagliCorso INFORMATICA ED ELEMENTI DI INFORMATICA MEDICA
Corso 085853 INFORMATICA ED ELEMENTI DI INFORMATICA MEDICA Prof.: Sara Marceglia, Gianluca Palermo Luca Mazzola, Maristella Matera A.A. 2010/2011 Parte di Informatica ISTRUZIONI: 1. Il tempo massimo a
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliIntroduzione al C++ (continua)
Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x
DettagliApplicando lo stesso meccanismo al tipo puntatore, possiamo dichiarare un array di puntatori:
Le tabelle In C, dato un tipo di variabile, è possibile costruire un array di variabili di tale tipo usando la dichiarazione (facendo l esempio per il tipo float): float vettore[100]; Applicando lo stesso
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO II.2017
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2015 2016 22.II.2017 VINCENZO MARRA Indice Esercizio 1 1 Strutture dati e prime funzioni. 1 Punti: 8.
Dettagli4 GLI ARRAY E LE STRINGHE
13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE
INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e
DettagliIEIM Esercitazione VI Puntatori e Struct. Alessandro A. Nacci -
IEIM 2017-2018 Esercitazione VI Puntatori e Struct Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Specifiche dell esercizio Scrivere in C un programma che rappresenti un piano
DettagliEsercizi. Filtraggio
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 14 Febbraio 2006 Esercizio 1 (4 punti) Formulare la seguente istruzione del linguaggio C utilizzando il costrutto while: for(i=0,j=n-1; i
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VII.2019
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2018 2019 8.VII.2019 VINCENZO MARRA Indice Esercizio 1 2 Strutture dati e visualizzazione 2 Punti: 3.
DettagliI tipi di dato strutturato sono dichiarabili in C tramite la parola chiave typedef
Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione della definizione di matrici, strutture e di tipi, oltre ad un riepilogo sulla codifica dei numeri
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018
Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.
DettagliInformatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia
Informatica A (per gestionali) A.A. 2004/2005 Esercizi C e diagrammi a blocchi Preparazione prima prova intermedia Indice 1 Array... 3 1.1 Filtraggio...3 1.2 Trasformazione...3 2 Struct e array... 5 2.1
DettagliNon ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliOgni parte non cancellata a penna sarà considerata parte integrante della soluzione.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 13 Novembre 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliLab 13 Strutture e programmi su più file "
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 13 Strutture e programmi su più file " Lab13 1 n Sia data la struttura Esercizio 1" struct time { int hour, minute,
DettagliLaurea In Ingegneria dell Informazione. Esercitazioni Guidate di Tecniche della Programmazione
Laurea In Ingegneria dell Informazione Esercitazioni Guidate di Tecniche della Programmazione Note introduttive: 1) Le soluzioni agli esercizi e le versioni di programmi menzionate nel testo delle esercitazioni
DettagliProva di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
DettagliEsercizi Programmazione I
Esercizi Programmazione I 0 Ottobre 016 Esercizio 1 Funzione valore assoluto Il file.c di questo esercizio deve contenere nell ordine, il prototipo (dichiarazione) di una una funzione abs, che prende in
DettagliEsercitazione di Reti degli elaboratori
Esercitazione di Prof.ssa Chiara Petrioli Christian Cardia, Gabriele Saturni Cosa vedremo in questa lezione? Gli Array Gli array multidimensionali Le stringhe I puntatori Esercizi Pagina 1 Gli Array Definizione
DettagliPRESENTAZIONE DOMANDA DI PAGAMENTO EROGAZIONE A SALDO
PRESENTAZIONE DOMANDA DI PAGAMENTO EROGAZIONE A SALDO Ordinanza n. 23 del 23.02.2013 modificata con le successive Ordinanze n. 26 del 06.03.2013, n.52 del 29.04.2013 e n.91 del 29.07.2013 Finanziamento
DettagliEsercitazioni di Informatica (CIV)
Esercitazioni di Informatica (CIV) Puntatori, Tema d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 26 novembre 2015 Esame del 21 luglio 2014 Testo
DettagliRappresentazione dei numeri: il sistema di numerazione decimale
Università degli Studi di Cagliari Facoltà di Scienze Corso di Laurea in Matematica Corso di Elementi di Informatica Lezione 3 14 marzo 2017 Dott. A.A. 2016/2017 pgarau.unica@gmail.com 1 Codifica dei numeri
DettagliInformatica B Prof. Di Nitto e Morzenti Appello del 17 febbraio 2005 Cognome e Nome... Numero Matricola... (in stampatello)
Informatica B Prof. Di Nitto e Morzenti Appello del 17 febbraio 2005 Cognome e Nome... Numero Matricola... (in stampatello) Risolvere i seguenti esercizi, scrivendo le risposte ed eventuali tracce di soluzione
DettagliARRAY DI PUNTATORI. ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliLaboratorio di Segnali e Sistemi A. A. 2009/ Lezione 5: Immagini
Laboratorio di Segnali e Sistemi A. A. 2009/ 2010 Lezione 5: Immagini 28 maggio 2010 Introduzione Immagini: risultato di un sistema di acquisizione/elaborazione/visualizzazione della radiazione EM visibile
DettagliFUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliCorso di Informatica
CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Rappresentazione delle immagini 2 Rappresentazione delle immagini Le forme e i colori presenti
DettagliManuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1
Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1 Release NOTE 1.1 Prima Versione del Manuale INDICE 1-INTRODUZIONE... 4 2- GESTIONE DEL CATALOGO PIXMANIA-PRO SU IMAIO... 5 3-Configurazione
DettagliLe immagini. Parametri importanti sono:
Informatica Gerboni Roberta L immagine del video è rappresentata tramite una griglia o matrice di pixel (PIcture ELement) per ognuno dei quali è memorizzata: l intensità luminosa il colore. Parametri importanti
DettagliPreprocessore, linker e libreria standard
Preprocessore, linker e libreria standard Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 IL PREPROCESSORE Programma sorgente
DettagliAmbienti di Programmazione per il Software di Base
Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base
DettagliIEIM Esercitazione VI A cosa servono le funzioni, la ricorsione e l enum
IEIM 2015-2016 Esercitazione VI A cosa servono le funzioni, la ricorsione e l enum Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Cosa facciamo oggi? A COSA SERVONO LE FUNZIONI
DettagliLab 5: 18 Maggio 2015
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio marco.santambrogio@polimi.it Gianluca Durelli durellinux@gmail.com Ver. aggiornata al 17 Maggio 2015
DettagliCodifica binaria: - numeri interi relativi -
Codifica binaria: - numeri interi relativi - Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Tipologie di codici Per la rappresentazione di: caratteri
DettagliDigitalizzazione delle immagini
Digitalizzazione delle immagini Informazione multimediale Lettere e numeri non costituiscono le uniche informazioni utilizzate dai computer ma sempre più applicazioni utilizzano ed elaborano anche altri
DettagliINFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 5 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 5 Dott. Michele Zanella Ing. Gian Enrico Conti File I/O I file rappresentano una sequenza di byte, siano essi
DettagliOgni parte non cancellata a penna sarà considerata parte integrante della soluzione.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 13 Novembre 2012 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene
DettagliEsempi e esercitazioni sulle matrici e strutture
Esempi e esercitazioni sulle matrici e strutture Prof. Antonio Scanu 1.1 Esempio sulle matrici Dimensionare una matrice, caricarla, visualizzarla e creare un vettore parallelo contenente le somme delle
Dettagli- matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
Esercitazione Argomenti che verranno trattati in questa esercitazione: - matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
Dettaglidefinisce un vettore di 4 puntatori a carattere (allocata memoria per 4 puntatori)!
" Non ci sono vincoli sul tipo degli elementi di un vettore " Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere (allocata
DettagliInformatica B
Informatica B 2017-2018 Esercitazione 7 Ripasso sul C - Matrici e Struct in un caso reale Il piano cartesiano Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Specifiche dell esercizio
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliLaboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
DettagliGESTIONE DELLE COMUNICAZIONI
Bando per la realizzazione di diagnosi energetiche o l adozione di sistemi di gestione energia conformi alle norme ISO 50001 da parte delle piccole e medie imprese in attuazione del Programma Regionale
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliInformatica B
Informatica B 2016-2017 Esercitazione 9 Matrici e Struct in un caso reale Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Disclaimer Fino ad ora non avete visto le funzioni. Per
DettagliNozioni di grafica sul calcolatore. concetti di base
Nozioni di grafica sul calcolatore concetti di base La riproduzione di immagini fotografiche su computer avviene suddividendo l'immagine stessa in una matrice di punti colorati: pixels I formati basati
DettagliLa codifica delle immagini
Non sempre il contorno della figura coincide con le linee della griglia. Quella che si ottiene nella codifica è un'approssimazione della figura originaria Se riconvertiamo la stringa 0000000011110001100000100000
DettagliLe Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia
Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il
DettagliESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.
PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 23/9/2008 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (5 punti) Convertire
DettagliLe strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro;
Le strutture /1 Le strutture rappresentano un tipo di variabile che, diversamente dagli array, consente di gestire in modo compatto, mediante un'unico identificatore, un insieme di valori che non possiedano
DettagliLe strutture /2. Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare?
Le strutture /2 Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare? Per ora è possibile gestire l'elenco dei libri (e quindi delle strutture) mediante
DettagliLinguaggio C. Vettori, Puntatori e Funzioni Stringhe. Università degli Studi di Brescia. Prof. Massimiliano Giacomin
Linguaggio C Vettori, Puntatori e Funzioni Stringhe Università degli Studi di Brescia Prof. Massimiliano Giacomin SCHEMA DELLA LEZIONE RELAZIONE TRA VETTORI E PUNTATORI (e le stringhe letterali come caso
DettagliEsercizio 1. Tavola ordinata in memoria centrale
Esercizio 1. Tavola ordinata in memoria centrale E dato un programma che realizza una rubrica telefonica come tavola in memoria centrale. In particolare, ogni elemento della tavola è caratterizzato dalle
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
DettagliInformatica. Comunicazione & DAMS A.A. 2015/16. Dr.ssa Valeria Fionda
Informatica Comunicazione & DAMS A.A. 2015/16 Dr.ssa Valeria Fionda Informatica - Com&DAMS A.A. 2015/2016 Sistemi di numerazione I sistemi di numerazione servono a rappresentare i numeri grazie a un insieme
DettagliEsercitazione n 2. Obiettivi
Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Dettagli