Recap su: array e puntatori
|
|
- Domenico Paoli
- 4 anni fa
- Visualizzazioni
Transcript
1 Recap su: array e puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2015
2 Sui codici a lunghezza fissa 2
3 Sui codici a lunghezza fissa 3
4 Sui codici a lunghezza fissa 4
5 Sui codici a lunghezza fissa 5
6 Ore extra Molti del 3zo anno non riesco a venire al giovedì pomeriggio 6
7 Ore extra Molti del 3zo anno non riesco a venire al giovedì pomeriggio Possiamo fregarcene 7
8 Ore extra Molti del 3zo anno non riesco a venire al giovedì pomeriggio Possiamo fregarcene O trovare una soluzione 8
9 Ore extra Molti del 3zo anno non riesco a venire al giovedì pomeriggio Possiamo fregarcene O trovare una soluzione Mar dalle 2pm alle 3pm Gio dalle 7am alle 8am 9
10 Obiettivi Un ripasso generale sul C In particolare Array multi-dimensionali Dati strutturati e passaggio a funzioni 10
11 Problema Si scriva in C un programma che, recuperato un cubo di caratteri, dice quante a vi sono contenute. La dimensione del cubo è: 2x3x4 11
12 Sotto-problemi Si scriva in C un programma che, recuperato un cubo di caratteri, dice quante a vi sono contenute. La dimensione del cubo è: 2x3x4 Sotto-problemi P0: cubo di caratteri P1: Popolare il cubo di caratteri P2: Contare le a 12
13 Cubo di caratteri La dimensione del cubo è: 2x3x4 #define dx 3 #define dy 2 #define dz 4 char data[dx][dy][dz]; 13
14 Array in memoria char data[dx]; 00 array di dx char (dx:3) data[0] data[1] data[2] 0A 0B 0C 0D 0E 0F
15 Matrice (array di array) in memoria char data[dx]; char data[dx][dy]; array di dx char (dx:3) array di dx array (dx:3) array di dy char (dy:2) data[0][0] [0] [0] data[0][1] [1] data[1][0] [0] [1] data[1][1] [1] data[2][0] [0] [2] data[2][1] [1] 09 0A 0B 0C 0D 0E 0F
16 Un array 3D char data[dx]; char data[dx][dy]; array di dx char array di dx array di dy char char data[dx][dy][dz] array di dx array (dx:3) array di dy array (dy:2) array di dz char (dz:4) 16
17 In memoria, macchina a 32bit, e.g. x86 char data[dx][dy][dz] dx:3, dy:2, dz: data[1][0][0] 01 data[0][0][0] [0] 0A data[1][0][1] data[0][0][1] [0] data[0][0][2] data[0][0][3] [0] data[0][1][0] 0B 0C 0D 0E data[1][0][2] data[1][0][3] [1] data[1][1][0] data[1][1][1] 06 data[0][1][1] 0F data[1][1][2] 07 data[0][1][2] 10 data[1][1][3] 08 data[0][1][3] 11 data[2][0][0] 17
18 Torniamo al problema Si scriva in C un programma che, recuperato un cubo di caratteri, dice quante a vi sono contenute. La dimensione del cubo è: 2x3x4 Sotto-problemi P0: cubo di caratteri P1: Popolare il cubo di caratteri P2: Contare le a 18
19 P1: popolare il cubo di char Serve una funzione che Recuperato il cubo void popola(char *p, int x, int y, int z); Permette l inserimento dei caratteri 19
20 P2: contare le a Serve una funzione che Recuperato il cubo int foo2(char p[][dy][dz], char x); Scorre gli elementi per cercare le a Attenzione a char x 20
21 Problema Si scriva in C un programma che, recuperati i cognomi di 5 studenti, li ordina alfabeticamente 21
22 Sotto-problemi Si scriva in C un programma che, recuperati i cognomi di 5 studenti, li ordina alfabeticamente Sotto-problemi P0: rappresentare i cognomi P1: recuperare i cognomi P2: ordinare i cognomi alfabeticamente 22
23 P0: rappresentare i cognomi Vi sono diversi modi Noi, per esercitarci, creiamo una struttura e definiamo un nuovo tipo di dato 23
24 dati Dopo aver definito studente Dobbiamo creare 5 studenti studente studenti[5]; 24
25 P1: recuperare i cognomi 25
26 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); 26
27 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare l array 27
28 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare l array p[i].cognome; 28
29 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare l array p[i].cognome; p: l indirizzo base - [i]: la posizione p[i]: è l elemento di interesse.: accedo a - cognome: il campo 29
30 30
31 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare il puntatore 31
32 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare il puntatore (*(p+i)).cognome; 32
33 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare il puntatore (*(p+i)).cognome; p: l indirizzo base - i: la posizione (*(p+i)): è l elemento di interesse.: accedo a - cognome: il campo 33
34 34
35 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare veramente il puntatore 35
36 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare veramente il puntatore Con una freccia (p+i)->cognome; 36
37 P1: recuperare i cognomi Studenti è un array si passa per indirizzo void ins_alunno(studente *p, int dimensione); studente è strutturato come accedo ai campi attraverso un puntatore? Posso sfruttare veramente il puntatore Con una freccia (p+i)->cognome; p+i: è l indirizzo dell elemento di interesse ->: accedo a, tramite ind. - cognome: il campo 37
38 P1: recuperare i cognomi 38
39 P2: ordinare i cognomi Come faccio ad ordinare i cognomi? Vi è differenza nell ordinare studente rispetto ad ordinare int? Ma quindi il problema è Come ordino N interi??? 39
40 Ordiniamo N interi Problema Dati: 4, 3, 1, 2 Voglio ottenere: 1, 2, 3, 4 Iniziamo ad ipotizzare una soluzione Confronto gli elementi a due a due e se non sono nell ordine corretto, inverto i valori 40
41 Ordino 4, 3, 1, 2 Confronto gli elementi a due a due e se non sono nell ordine corretto, inverto i valori Dati: 4, 3, 1, 2 4 > 3? Si, inverto: 3, 4, 1, 2 4 > 1? Si, inverto: 3, 1, 4, 2 4 > 2? Si, inverto: 3, 1, 2, 4 41
42 Da 4, 3, 1, 2 a 3, 1, 2, 4 Problema 3, 1, 2, 4 è ordinato? Basta confrontare a due a due gli elementi? NO!!! Devo confrontare a due a due TUTTI (quasi vero) gli elementi 42
43 Facciamolo su tutti Dato vet[4]={4, 3, 1, 2} for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? ci porta da 4, 3, 1, 2 a 3, 1, 2, 4 Ma questo vogliamo farlo su tutti gli elementi for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) 43
44 E quindi i=0 Dato vet[4]={4, 3, 1, 2} for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? i=0, vario j ci porta da 4, 3, 1, 2 a 3, 1, 2, 4 j=0: 4 > 3? Si, inverto: 3, 4, 1, 2 j=1: 4 > 1? Si, inverto: 3, 1, 4, 2 j=2: 4 > 2? Si, inverto: 3, 1, 2, 4 44
45 E quindi i=1 Dato vet[4]={4, 3, 1, 2} for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? i=0, vario j ci porta da 4, 3, 1, 2 a 3, 1, 2, 4 i=1, vario j ci porta da 3, 1, 2, 4 a 1, 2, 3, 4 j=0: 3 > 1? Si, inverto: 1, 3, 2, 4 j=1: 3 > 2? Si, inverto: 1, 2, 3, 4 j=2: 3 > 4? No, non faccio nulla: 1, 2, 3, 4 45
46 E quindi i=2 Dato vet[4]={4, 3, 1, 2} for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? i=0, vario j ci porta da 4, 3, 1, 2 a 3, 1, 2, 4 i=1, vario j ci porta da 3, 1, 2, 4 a 1, 2, 3, 4 i=2, vario j ci porta da 1, 2, 3, 4 a 1, 2, 3, 4 j=0: 1 > 2? No, non faccio nulla: 1, 2, 3, 4 j=1: 2 > 3? No, non faccio nulla: 1, 2, 3, 4 j=2: 3 > 4? No, non faccio nulla: 1, 2, 3, 4 46
47 E quindi i=3 Dato vet[4]={4, 3, 1, 2} for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? i=0, vario j ci porta da 4, 3, 1, 2 a 3, 1, 2, 4 i=1, vario j ci porta da 3, 1, 2, 4 a 1, 2, 3, 4 i=2, vario j ci porta da 1, 2, 3, 4 a 1, 2, 3, 4 i=3, vario j ci porta da 1, 2, 3, 4 a 1, 2, 3, 4 j=0: 1 > 2? No, non faccio nulla: 1, 2, 3, 4 j=1: 2 > 3? No, non faccio nulla: 1, 2, 3, 4 j=2: 3 > 4? No, non faccio nulla: 1, 2, 3, 4 47
48 Ordinamento, qualche osservazione Si può migliorare? for(i=0;i<dimensione;i++) for(j=0;j<dimensione-1;j++) è vero che vet[j]>vet[j+1]? Nel for innestato Mi serve davvero arrivare a dimensione-1? Nel for esterno, mi serve veramente arrivare a dimensione? 48
49 P2: ordinare i cognomi Come faccio ad ordinare i cognomi? 49
50 Fonti per lo studio + Credits Fonti per lo studio Tutte le slide precedenti del corso di IEIM 2013/
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Recap sul C. Marco D. Santambrogio Ver. aggiornata al 11 Aprile 2013
Recap sul C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Aprile 2013 Feedback NUOVO, per le exe: http://tinyurl.com/ieimexe2013 Per i lab: http://tinyurl.com/feedback-labieim2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array e stringhe. Marco D. Santambrogio Ver. aggiornata al 6 Aprile 2016
Array e stringhe Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Aprile 2016 Logistica Laboratori 2 Logistica Laboratori @DrepssedDarth 3 Logistica Laboratori Lunedì (3.30pm 6pm)
DIPARTIMENTO 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:
Array n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 8 Aprile 2016 Logistica Laboratori Lunedì (3.30pm 6pm) EG7 (No portatili e basta) L26.1.3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 4 Aprile 2013
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 4 Aprile 201 WAT? WAT Lab Troppi exe, ne volevo di meno Vacanze W A Giovedì 28, Venerdì 29 e Lunedì 1 ma anche Martedì 2
Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015
Lab 4 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 20 O0obre 2015 Calendario dei Labs: MATLAB 15 Dic 2015, 10.30am-12.30pm, @ B6.27
Lab 3 Info B. Buon 314mo giorno del 2015! Marco D. Santambrogio Matteo Ferroni
Lab 3 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 10 Novembre2015 Buon 314mo giorno del 2015! Demo 2 Demo 3 Demo Esame il 25Nov
Lab 4: 10 Aprile 2014
Lab 4: 10 Aprile 2014 Marco D. Santambrogio marco.santambrogio@polimi.it Gianluca Durelli durelli@elet.polimi.it Ver. aggiornata al 6 Aprile 2014 Obiettivi Esercitarsi sui costrutti visti a lezione Tutto
Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015
Lab 4 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 24 Agosto 2015 Calendario dei Labs: C 20 Ottobre 2015, 10am-12pm, @ LM1 Installation
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Immagini Struttura dati: typedef struct{ int R; int G; int B; } pixel pixel img[0][24]; Ma quanto è grossa
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Marco D. Santambrogio Ver. aggiornata al 9 O/obre 2010
Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 9 O/obre 2010 Algoritmi Pseudocodice Diagramma di flusso Una prima introduzione al C Un primo programma Tipi di dato Strutture di controllo
Stringhe e tipi di dati strutturati
Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!
Algoritmi e basi del C
Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 4 O/obre 2013 What it s all about! 2 What it s all about! 3 What it s all about! 4 Obiettivi Algoritmi Pseudocodice
Array n-dimensionali e tipi di dati strutturati
Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 5 Novembre 2013 Info di servizio Demo 1mo compitino In LM5 @ 12pm - venerdì 8 Nov In
Lezione di Laboratorio di Prgrammazione: /04/2019 a.a. 2018/2019 R.Prevete
Lezione di Laboratorio di Prgrammazione: 15 09/04/2019 a.a. 2018/2019 R.Prevete Dati aggregati: struct Dicharazione di struttura con identificatore: struct { ;
Informatica ed Elementi di Informatica Medica
Titolo presentazione sottotitolo Informatica ed Elementi di Informatica Medica A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Info Logistiche Contatti: gianenrico.conti@mail.polimi.it
Algoritmi e basi del C
Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 9 Marzo 2016 Info logistiche Sito del corso Le lezioni sono TUTTE già online http://home.deib.polimi.it/santambr/dida/ieim/2016/docs.htm
Esercizi. La funzione swapint() primo tentativo
Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include
Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
Prima&esercitazione&
Prima&esercitazione& Prima esercitazione: algoritmi e tipi di dato Riccardo(Ca*aneo( ( Dipar/mento(di(Ele*ronica,(Informazione(e(Biomedica( matteo.ferroni@polimi.it Politecnico(di(Milano& Matteo Ferroni
Lab 1 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 12 O0obre 2013
Lab 1 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Riccardo Cattaneo cattaneo@elet.polimi.it Ver. aggiornata al 12 O0obre 2013 Obiettivi Imparare ad usare l ambiente di sviluppo Cosa è e come
Introduzione al C. Proprietà degli elementi di un insieme. Claudio Ciccotelli
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Proprietà degli elementi di un insieme Claudio Ciccotelli Insiemi Un insieme è una collezione
Lab 3 L Aprile 2015
Lab 3 L.26.14 27 Aprile 2015 Marco D. Santambrogio marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com Ver. aggiornata al 26 Aprile 2015 Argomenti Argomenti di questo laboratorio: Funzioni
Le 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
Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano
Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano 20133 Milano (Italia) Piazza Leonardo da Vinci, 32 Tel. (+39) 02-2399.3400 Fax (+39) 02-2399.3411 Informatica ed Elementi
Il linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array e stringhe. Marco D. Santambrogio Ver. aggiornata al 28 O0obre 2014
Array e stringhe Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 28 O0obre 2014 Frase insieme di caratteri Che cosa è una frase? Un insieme di caratteri Come la rappresento? Un insieme,
PROVA SCRITTA 23 MARZO 2010
PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa
ALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array
Linguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
Elementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
Ereditarietà. Ivan Lanese e Cosimo Laneve
Ereditarietà Ivan Lanese e Cosimo Laneve Argomenti Ereditarietà Sottotipaggio Costruttori Ereditarietà Spesso non vogliamo definire una classe a partire dal nulla, ma vogliamo definirla a partire da un
Array e puntatori in C
Array e puntatori in C Diapositive adattate dalle omonime create dalla Dottoressa di Ricerca Giovanna Melideo per il corso di Laboratorio di Algoritmi e Strutture Dati 10/05/2005 LP2-04/05 - Appunti di
Lab 1 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 20 O0obre 2014
Lab 1 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Riccardo Cattaneo cattaneo@elet.polimi.it Ver. aggiornata al 20 O0obre 2014 Obiettivi Imparare ad usare l ambiente di sviluppo Cosa è e come
Lab 1 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015
Lab 1 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 24 Agosto 2015 Sono il vostro docente? 2 No? Aula sbagliata!!! 3 Obiettivi Imparare
Esercitazioni 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
Lab 1: Marzo 2013
Lab 1: 18-21 Marzo 2013 Marco D. Santambrogio marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com Ver. aggiornata al 21 Marzo 2013 Obiettivi Imparare ad usare l ambiente di sviluppo Cosa
Array. Aggragati di variabili omogenee...
Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno
Tipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
Lab 7 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 19 Gennaio 2016
Lab 7 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 19 Gennaio 2016 Logistica Esame (aka 2ndo compitino): 4 Feb 2016 Demo 2ndo compitino
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Librerie. Marco D. Santambrogio Ver. aggiornata al 20 Luglio 2015
Librerie Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Luglio 2015 Veniamo a noi 2 La calcolatrice? 3 La calcolatrice? Umh. 4 La calcolatrice? Umh. Meglio! 5 La calcolatrice!
Informatica B Allievi Meccanici con cognome da Cl a L Recupero della I prova intermedia 26/02/01 Prof. Elisabetta Di Nitto. Cognome Nome Matricola
Informatica B Allievi Meccanici con cognome da Cl a L Recupero della I prova intermedia 26/02/01 Prof. Elisabetta Di Nitto Cognome Nome Matricola Punteggio Dom1 Dom2 Dom3 Es1 Es2 Es3 Es4 totale NOTE: 1)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array, matrici. Marco D. Santambrogio Ver. aggiornata al 21 Marzo 2013
Array, matrici Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 WAT? Questa volta non ce ne sono WAT 2 Obiettivi Gli array, questi sconosciuti Gli array in C Array n-dimensionali
Inserimento in una lista ordinata
Inserimento in una lista ordinata Vogliamo inserire un nuovo elemento in una lista in cui gli elementi sono memorizzati in ordine crescente: Passo 1: creare un nuovo nodo della lista Passo 2: trovare il
Esercizio 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
Laboratorio di programmazione
Laboratorio di programmazione Lezione VI Tatiana Zolo zolo@cs.unipr.it 1 Dichiarazione (forma generale): LE STRUCT struct nome_struttura { tipo var1; tipo var2;... tipo vark; } variabili_struttura; (soltanto
INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti
INFORMATICA A Titolo presentazione sottotitolo A.A. 2018-19 Milano, XX mese 20XX Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti Puntatori I puntatori sono delle variabili che contengono l
Appunti sul C: le liste
Università degli Studi di L Aquila Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Appunti sul C: le liste Giovanna Melideo melideo@di.univaq.it
Quicksort e qsort() Alessio Orlandi. 28 marzo 2010
Quicksort e qsort() Alessio Orlandi 28 marzo 2010 Intro Quicksort è l algoritmo di ordinamento più implementato, insieme con Mergesort. Tutte le librerie standard UNIX ne prevedono una implementazione.
Esercitazioni 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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Input/output. Marco D. Santambrogio Ver. aggiornata al 24 Agosto 2015
Input/output Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 1 Obiettivi Input/Output 2 Acquisizione dati da tastiera Funzione input valore = input( inserisci un valore
Algoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
Qualsiasi programma in C++ segue lo schema: Variabili
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
Tipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 7 Dicembre2013
Lab 5 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Riccardo Cattaneo cattaneo@elet.polimi.it Ver. aggiornata al 7 Dicembre2013 Calendario dei Labs 7 Gennaio 2014, 10am-12.45pm, @ LM1 MATLAB:
Algoritmi e basi del C
Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 3 O/obre 2013 Installation Party Dove: L.06 Quando: Sabato 12 Ottobre 9.00am - 12.00pm 2 WAT Il docente ha messo
Dati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
Come affrontare un problema
Come affrontare un problema Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 3 Novembre 2015 Compitino! 2 Compitino! 25 Novembre 3 Compitino! 25 Novembre @4.30pm! 4 Massimo Comune
Gli array, le stringhe e le strutture
INFORMATICA B Ingegneria Elettrica Gli array, le stringhe e le strutture Limiti dei tipi di dato semplici Utilizzare solo i tipi di dato semplici può essere limitante e rendere il programma poco flessibile
ARRAY E TYPEDEF. A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C
A volte è utile definire un nuovo tipo di dato come array. Si usa la solita sintassi del linguaggio C Es typedef ; typedef char stringa[10]; dichiara che il tipo stringa è un array
Strutture Dati. Nicu Sebe. Informatica Nicu Sebe 1 / 27
Strutture Dati Nicu Sebe Informatica Nicu Sebe 1 / 27 Dati e Tipi di Dati e Spazi Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti
Esercizi su strutture dati
Esercizi su strutture dati Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 21 dicembre 2016 Liste collegate
Allocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
Scope, Memoria e Tabella dei Simboli
Scope, Memoria e Tabella dei Simboli La tabella dei simboli è uno strumento fondamentale attraverso il quale interpreti e compilatori implementano la traduzione da un programma scritto in un linguaggio
IEIM Esercitazione VIII Ripasso Generale. Alessandro A. Nacci -
IEIM 2018-2019 Esercitazione VIII Ripasso Generale Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Matrici e funzioni Esercizio 1 2 MATRICI E FUNZIONI Il passaggio di una matrice
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica. Algoritmi
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Algoritmi Rev..0 of 0-0- Elaborazione dati Problemi che si presentano spesso sono. ricerca del minimo
Introduzione al C Lez. 3. Puntatori
Introduzione al C Lez 3 Puntatori Variabili e memoria Variabile tradizionale Es: int a = 10; Proprietà: - nome: a - tipo: int - valore: 10 - dimensione in byte: 4 ( usare sizeof(tipo) ) - indirizzo: 104
Corso di Fondamenti di Informatica Algoritmi su array / 1
Corso di Informatica Algoritmi su array / Anno Accademico 200/20 Francesco Tortorella Algoritmi su array Quando si usano gli array, si eseguono frequentemente alcune operazioni tipiche : inizializzazione
Codifica binaria dell informazione
Codifica binaria dell informazione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014 Un obiettivo per domarli tutti 2 Obiettivi Rappresentazione dell informazione Da
Strutture Dati per Inserimento Ordinato. Luca Abeni
Strutture Dati per Inserimento Ordinato Luca Abeni Esempio: Ordinamento di Numeri A cosa servono i tipi di dato strutturati? Non bastano i tipi scalari? Capiamolo con un esempio... Problema: dato un insieme
Codifica binaria dell informazione
Codifica binaria dell informazione Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Marzo 2016 Un obiettivo per domarli tutti 2 Un obiettivo per domarli tutti 3 Obiettivi Rappresentazione
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
Esercitazione pre 1ma prova in itinere
Esercitazione pre 1ma prova in itinere Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Novembre 2015 Info logistiche 2 Info logistiche Ven 20 Novembre: NO lezione 3 Info logistiche
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Array. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Funzioni e Procedure. Marco D. Santambrogio Ver. aggiornata al 11 Marzo 2014
Funzioni e Procedure Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Obiettivi Funzioni Scope delle variabili 2 La calcolatrice! Problema Si scriva un programma in C
Ci sono momenti in cui i bambini osservano un modello per sapere come fare qualcosa Si può anche utilizzare un modello per dipingere
Unità Confronti metodo Bright Start Scuola dell Infanzia Villastellone Insegnante Emanuela Tosco Lezione N 1 Funzioni cognitive: Utilizzare un modello Confrontare Esplorare sistematicamente Etichettare
Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008
Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008 Gli studenti dell a.a. 2007-2008 e 2006-2007 (6CFU) devono svolgere i 6 esercizi. Gli studenti degli anni precedenti non
Strutture Dati. Luca Abeni
Strutture Dati Luca Abeni Dati e Tipi di Dati Una variabile è caratterizzata dal suo Tipo Specifica i valori che può assumere (Insieme di Definizione) Specifica a quanti byte di memoria la variabile è
Fondamenti di Informatica L-A. Esercitazione 6
Fondamenti di Informatica L-A Esercitazione 6 Passaggio dei Parametri nelle Funzioni Ordinamento di Vettori Paolo Torroni Università degli Studi di Bologna Laurea in Ingegneria Elettronica e delle Telecomunicazioni
char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe
char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); Stringhe Stringhe s char *s; s = (char *) malloc(5*sizeof(char)); scanf( %s, s); c i a o \0 Scrivere un programma che legga da input un array
Prof. 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
Come affrontare un problema
Come affrontare un problema Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 Massimo Comune Divisore Definizione Dicesi Massimo Comune Divisore (M.C.D.) il piu grande
E12 Esercizi su Strutture dati dinamiche in C
E12 Esercizi su Strutture dati dinamiche in C Esercizio 1. Si vuole realizzare una lista caratteri in C utilizzando una rappresentazione semplicemente collegata. Scrivere una struttura nodo che contiene
10/10/2016. Caratteristiche degli array. Il tipo RECORD. Il record. LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica
Caratteristiche degli array Principali caratteristiche degli array: LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli
Codice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
Fondamenti 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
PROVA SCRITTA DI FONDAMENTI DI INFORMATICA L A 4 DICEMBRE 2003 Prof. Michela Milano COMPITO A
PROVA SCRITTA DI FONDAMENTI DI INFORMATICA L A 4 DICEMBRE 2003 Prof. Michela Milano COMPITO A Esercizio 1 (punti 5) Si scriva una funzione ricorsiva int doppio(int a, int n); che calcoli il seguente valore:
Strutture, Unioni, Enumerazioni in C. Emilio Di Giacomo
Strutture, Unioni, Enumerazioni in C Emilio Di Giacomo Strutture Una struttura è una collezione di variabili raggruppate sotto uno stesso nome da questo punto di vista è simile a un array Le variabili
Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
Costruire nuovi tipi Strutture,enumerazioni,unioni e typedef
Il linguaggio C++ Costruire nuovi tipi Strutture,enumerazioni,unioni e typedef Tipi definiti dall utente 1 Dichiarazione di tipo Tipi semplici User-Defined 2 Tipi semplici User-Defined Tipi semplici User-Defined
Esercitazione 12. Esercizi di Ricapitolazione
Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,
passaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad una funzione, in
I Parametri di tipo vettore I Il meccanismo del passaggio per valore di un indirizzo consente il passaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad
Cosa sono gli Array. int myarray[10];
Cosa sono gli Array Un array può essere definito come una collezione organizzata di oggetti. Analizziamo la definizione e capiremo molte cose, innanzitutto il concetto di collezione implica che tali oggetti
Anche se due variabili vettore sono dello stesso tipo, NON è possibile l assegnamento diretto:
ESERCIZIO: Lettura/Scrittura Array Non è possibile leggere/scrivere un intero vettore con un unica operazione (a parte il caso particolare delle stringhe); occorre leggere/scrivere ognuno dei suoi componenti