DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array, matrici Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Process synchronization
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Algebra delle Matrici.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 3 Ottobre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Stringhe e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 24 Ottobre 2011 Sadegh Astaneh – Marco D. Santambrogio –
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Struct, enum, Puntatori e Array dinamici
Esercizi C sui tipi definiti dall’utente
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Le funzioni.
MATRICI classe 3 A inf (a.s ).
ARRAY MULTIDIMENDIONALI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione 1 Marco D. Santambrogio – Ver. aggiornata al 9 Aprile 2014.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algebra di Boole ed elementi di logica Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 24 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 3 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 3: 27 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 5: 18 Maggio 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5: 14 Aprile 2014 Marco D. Santambrogio – Gianluca Durelli –
Codifica binaria dell’informazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Librerie… Marco D. Santambrogio – Ver. aggiornata al 20 Luglio 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Fondamenti di Informatica L- A Il linguaggio C Tipi strutturati X Y Z … … N … M-1 NomeCognomeRedditoAliquota
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 4 Aprile 2016.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
Array n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati
Process synchronization
Array n-dimensionali e tipi di dati strutturati
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 27 Ottobre 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercizio: numero primo Si scriva un programma che, preso un numero intero positivo da tastiera, dica se questo è primo.  Un numero è primo se è divisibile solo per 1 e per se stesso. 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numero primo 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Array n-dimensionali: le matrici Dichiarazione di nuovi tipi di dato Dato strutturati 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEImmagini 5 Come si rappresenta? Creiamo una griglia (aka matrice) Ma cosa contiene la matrice? I punti rappresentati, ad esempio, come int Osservazioni Come rappresento i colori? Lo vedremo dopo la pausa… Come aumento la risoluzione?

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Gli array a 1D realizzano i vettori, quelli a 2D realizzano le matrici, …e così via Dichiarazione: int A[20][30]; A è una matrice di 20  30 elementi interi (600 variabili distinte) float F[20][20][30]; F è una matrice 3D di 20  20  30 variabili di tipo float (12.000!) Oppure a quattro dimensioni, ecc… Array a più dimensioni

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Excursus Matematico – Le Matrici In matematica, una matrice è uno schieramento rettangolare di oggetti (di solito numeri), organizzati in righe (orizzontali) e colonne (verticali) In generale, una matrice ha m righe e n colonne, con m e n interi positivi fissati. Spesso una matrice è descritta indicando con a ij il generico elemento posizionato alla riga i-esima e alla colonna j- esima I vettori si possono considerare matrici con una sola riga o una sola colonna (detti più precisamente vettore riga e vettore colonna) 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le Matrici: gli elementi Se la matrice si chiama A, l'elemento a i,j può essere indicato anche come A[i,j]. La notazione A = (a i,j ) indica che A è una matrice e che i suoi elementi sono denotati con a i,j Gli elementi con i due indici di riga e di colonna uguali, cioè gli elementi della forma a ii costituiscono la diagonale principale della matrice. 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le Matrici: somma Due matrici A e B si possono sommare se hanno le stesse dimensioni La loro somma A + B è definita come la matrice i cui elementi sono ottenuti sommando i corrispettivi elementi di A e B. Formalmente: (A + B) i,j : = A i,j + B i,j 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma di matrici = c[i][j] = a[i][j] + b[i][j] #i nclude #define N 3 #define M 4 int main() { int a[N][M], b[N][M], c[N][M]; int i, j; //leggo la prima matrice for (i=0; i<N; i++) for (j=0; j<M; j++) scanf(“%d”, &a[i][j]); //leggo la seconda matrice for (i=0; i<N; i++) for (j=0; j<M; j++) scanf(“%d”, &b[i][j]); //calcolo e stampo la somma for (i=0; i<N; i++){ for (j=0; j<M; j++){ c[i][j]=a[i][j]+b[i][j]; printf(“%d “, c[i][j]); } printf(“\n”); } return 0; }

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le Matrici: moltiplicazione per uno scalare È un'operazione che, data una matrice A ed un numero c (detto scalare), costruisce una nuova matrice cA, il cui elemento è ottenuto moltiplicando l'elemento corrispondente di A per c (cA) ij : = cA i,j. 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le Matrici: moltiplicazione tra matrici Prodotto riga per colonna La moltiplicazione tra due matrici A e B è un'operazione più complicata delle precedenti. A differenza della somma, non è definita sommando semplicemente gli elementi aventi lo stesso posto  La definizione di moltiplicazione che segue è motivata dal fatto che una matrice modellizza una applicazione lineare, e in questo modo il prodotto di matrici corrisponde alla composizione di applicazioni lineari La moltiplicazione è definita soltanto se il numero di righe di B coincide con il numero n di colonne di A. Il risultato è una matrice con lo stesso numero di righe di A e lo stesso numero di colonne di B L’elemento di posizione (i,j) è dato dalla somma 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le Matrici: moltiplicazione - esempio 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prodotto di matrici #define N 3 #define M 4 #define L for (i=0; i<N; i++){ for (j=0; j<L; j++){ c[i][j] = 0; for (k=0; k<M; k++) c[i][j] = c[i][j]+(a[i][k]*b[k][j]); printf(“%d”, c[i][j]); } printf(“\n”); } * c[1][2] = ∑( a[1][k]*b[k][2]), con k = 0,...,

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pausa 10’ 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come rappresento un pixel? 16 Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B: 33 PIXEL = {R, G, B}

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati: pixel struct pixel{ char G; char R; char B; }; 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ??? miastruttura ? Tipi di dati strutturati struct miastruttura { char campo1; float campo2; int campo3[2]; }; campo1 campo2 campo3 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definire un nuovo tipo Sinonimi: typedef int Intero; Intero a; int b; typedef char Stringa[10]; Stringa c; char d[10]; Tipi enumerativi: typedef enum {lun,mar,mer,gio,ven,sab,dom} Settimana; Settimana giorno; giorno = lun; giorno = 3; /* 3 equivale a gio */ Non funziona con scanf() e printf(). 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE ??? ilMioRecord ? Definire un nuovo tipo Tipi strutturati: typedef struct { char campo1; float campo2; int campo3[2]; } Record; Record ilMioRecord; ilMioRecord.campo1 = ' A ' ; ilMioRecord.campo2 = 24.56; ilMioRecord.campo3[0] = 23; ilMioRecord.campo3[1] = 45; A ilMioRecord 45 campo1 campo2 campo3 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi: problema L’utente inserisce due numeri complessi (parte reale e parte immaginaria) e l’elaboratore esegue l’operazione di somma  Es: 3+4i + 5-6i = 8-2i Il programma chiede all’utente se vuole calcolare un’altra somma. Se l’utente inserisce il carattere ‘q’ il programma termina, altrimenti ricomincia daccapo. 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri complessi: note "%f" stampa un numero float con il segno “-” se è negativo, senza segno se è positivo "%+f" stampa un numero float con il segno “-” se è negativo, con il segno “+” se è positivo "i" non fa parte degli specificatori di formato 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: problema Il programma, partendo da un array di dimensione prefissata che contiene in ogni cella:  data della giocata  colonna con i tredici segni Copia in un altro vettore solo le giocate dell’anno 2010 Quindi, visualizza queste giocate. 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: dati 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: inserimento dati 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: copia valori 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Schedine: stampa dei risultati 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 29 Problemi di fine giornata… Si scriva un programma che visualizzi gli istogrammi verticalmente: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Credits  Vito Perrone, Daniele Braga 30