Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018"

Transcript

1 Esercitazioni di Fondamenti di Informatica - Lez. 4 2/0/20 Esercizi sui tipi in C I codici e le soluzioni degli esercizi sono nella cartella parte. Dato il seguente codice, trovare gli errori, correggerli e indicare cosa si ottiene come output. int i= 6 5 ; 4 int j = A ; 5 int k="$" ; 6 7 int u=i+k ; 9 char v = 2 2 ; 0 p r i n t f ( "%d %d %d %d %c %d %c\n", i, j, k, u, u, v, v ) ; 2 } int i= 6 5 ; 4 int j = A ; 5 int k= $ ; 6 7 int u=i+k ; 9 char v = 2 2 ; 0 p r i n t f ( "%d %d %d %d %c %d %c\n", i, j, k, u, u, v, v ) ; 2 } Il programma stampa: Il numero 65 Il codice ASCII (intero) del carattere A Il codice ASCII (intero) del carattere $ Il numero dato dalla somma tra 65 e il codice ASCII (intero) del carattere $ il carattere corrispondente al codice ASCII dato dal numero precedente il numero 22 il carattere corrispondente al codice ASCII 22

2 2. Definisci un nuovo tipo di dato contenente un intero, un carattere e un numero reale, in tre modi diversi: (A) definire una struttura senza definire un nuovo tipo; (B) definire una struttura senza definire un nuovo tipo e con una nuova variabile; (C) definire una struttura definendo un nuovo tipo. Provare a copiare una variabile struttura in un altra e modificarla. Stampare il risultato della struttura ottenuta con ogni definizione. 2 4 int main ( ) { 5 6 /* modi alternativi per definire una struct */ 7 9 /* A definire una struttura senza definire un nuovo tipo */ 0 struct A{ 2 int i n t e r o ; char c a r a t t e r e ; 4 float r e a l e ; 5 } ; 6 7 /* se voglio dichiarare una variabile di tipo prova devo usare una struct prova */ 9 20 struct A prova ; 2 prova. i n t e r o = ; 22 prova. c a r a t t e r e= P ; 2 prova. r e a l e = ; /* stampiamo il contenuto di prova:*/ 26 p r i n t f ( "\na ).\n" ) ; 27 p r i n t f ( "\ nintero : %d\n", prova. i n t e r o ) ; 2 p r i n t f ( " carattere : %c\n", prova. c a r a t t e r e ) ; 29 p r i n t f ( "reale: %f\n", prova. r e a l e ) ; 0 2 /* B definire una struttura senza definire un nuovo tipo e con una nuova variabile 4 5 N.B. subito dopo la definizione della struct posso 6 definire una serie di variabili della struttura */ 7 struct B{ 9 int i n t e r o ; 40 char c a r a t t e r e ; 4 float r e a l e ; 42 } prova2 ; 4 44 prova2. i n t e r o = ; 45 prova2. c a r a t t e r e = P ; 46 prova2. r e a l e = ; 47 4 p r i n t f ( "\nb)\n" ) ; 49 p r i n t f ( "\ nintero : %d\n", prova2. i n t e r o ) ; 50 p r i n t f ( " carattere : %c\n", prova2. c a r a t t e r e ) ; 5 p r i n t f ( "reale: %f\n", prova2. r e a l e ) ;

3 /* C definire una struttura definendo un nuovo tipo */ typedef struct { 57 int i n t e r o ; 5 char c a r a t t e r e ; 59 float r e a l e ; 60 } C; 6 62 C prova ; 6 64 prova. i n t e r o = ; 65 prova. c a r a t t e r e = P ; 66 prova. r e a l e = ; 67 6 p r i n t f ( "\nc) \n" ) ; 69 p r i n t f ( "\ nintero : %d\n", prova. i n t e r o ) ; 70 p r i n t f ( " carattere : %c\n", prova. c a r a t t e r e ) ; 7 p r i n t f ( "reale: %f\n", prova. r e a l e ) ; 72 7 /* Provare a copiare una variabile struttura in un altra, 74 modificarla e stampare il risultato.*/ C prova4 ; 77 7 prova4=prova ; 79 prova4. i n t e r o =456; 0 p r i n t f ( "\nc) struttura copiata e modificata \n" ) ; 2 p r i n t f ( "\ nintero : %d\n", prova4. i n t e r o ) ; p r i n t f ( " carattere : %c\n", prova4. c a r a t t e r e ) ; 4 p r i n t f ( "reale: %f\n", prova4. r e a l e ) ; 5 6 }. Definire una struttura che permetta di contenere una serie di dati di squadre calcistiche: nome squadra, codice identificativo squadra, goal fatti, goal subiti. Data una sequenza di squadre, stampare i nomi delle squadre che hanno fatti piuú goal di quanti ne abbiano subiti. #d e f i n e MAXS 20 / Lunghezza massima d e i nomi d e l l e squadre / 2 #d e f i n e MAXA 6 / Massimo numero d i squadre m e m o r i z z a b i l i / 4 5 /* Definisco un tipo per i campi testuali 6 N.B. C non ha un tipo stringa!!! */ 7 typedef char S t r i n g [MAXS] ; // qui salveremo i nomi delle squadre 9 /* Definisco una struttura per 0 memorizzare una squadra */ 2 typedef struct { S t r i n g nome ; 4 int ID ; 5 int g o a l f a t t i ; 6 int g o a l s u b i t i ; 7 } Squadra ;

4 9 /* Dichiarazione della sequenza di squadre 20 come array di strutture */ 2 22 typedef Squadra Campionato [MAXA] ; 2 24 int main ( ) { Campionato campionato = { 27 {" Juventus ",, 0, 2 }, 2 {"Milan",, 7, 6 }, 29 {"Inter", 0,, }, 0 {"SPAL", 2, 9, 0 }, {" Pizzighettone ", 5,, 4 }, 2 {" Udinese ", 4, 5, 7} } ; 4 for ( int i =0; i <MAXA; i ++){ 5 if ( campionato [ i ]. g o a l f a t t i > campionato [ i ]. g o a l s u b i t i ){ 6 p r i n t f ( "%s differenza goal: %d \n", 7 campionato [ i ]. nome, campionato [ i ]. g o a l f a t t i campionato [ i ]. g o a l s u b i t i ) ; 9 } 40 4 } 42 } 4. Definire le strutture dati per memorizzare i dati anagrafici di un gruppo di persone: nome, cognome e data di nascita. La data di nascita deve essere nel formato 0-GEN-970. Identificare chi é la persona piú giovane dell anagrafica e stamparne nome e cognome. #d e f i n e MAXS 0 / lunghezza massima campi t e s t u a l i / 2 #d e f i n e MAXP / numero massimo persone in a n a g r a f i c a / 4 5 /* Enumero tutti i mesi */ 6 typedef enum {GEN=, FEB, MAR, APR, MAG, GIU, 7 LUG, AGO, SET, OTT, NOV, DIC} Mese ; 9 0 /* Definisco un tipo per i campi testuali */ typedef char S t r i n g [MAXS] ; 2 /* Struttura per memorizzare una data_nascita */ 4 typedef struct { 5 int g i o r n o ; 6 Mese mese ; 7 int anno ; } Data ; 9 20 /* Struttura con i dati di una persone */ 2 typedef struct { 22 S t r i n g nome ; 2 S t r i n g cognome ; 24 Data d a t a n a s c i t a ; 25 } Persona ; /* Dichiarazione dell anagrafica come collezione di strutture persona */

5 2 typedef Persona Anagrafica [MAXP] ; 29 0 int main ( ) { Anagrafica a n a g r a f i c a = { 2 {"Mario", "Rossi",{0,APR, 9 0 } }, {" Filippo ", " Bianchi ",{0, APR, } }, 4 {"Maria", "Verdi",{5,APR,990}} 5 } ; 6 7 int i ; 9 /* Calcolo della persona piu giovane */ 40 4 /* Inizializzo il risultato con la */ 42 /* prima persona di anagrafica */ 4 Persona p i u g i o v a n e = a n a g r a f i c a [ 0 ] ; /* Cicliamo attraverso tutte le persone */ 46 /* contenute in anagrafica */ 47 for ( i =0; i <MAXP; i ++){ 4 /* confronto sull anno */ 49 if ( p i u g i o v a n e. d a t a n a s c i t a. anno!= a n a g r a f i c a [ i ]. d a t a n a s c i t a. anno ){ 50 if ( a n a g r a f i c a [ i ]. d a t a n a s c i t a. anno>p i u g i o v a n e. d a t a n a s c i t a. anno ){ 5 p i u g i o v a n e = a n a g r a f i c a [ i ] ; 52 } 5 54 } /* confronto sul mese */ 57 else{ 5 if ( p i u g i o v a n e. d a t a n a s c i t a. mese!= a n a g r a f i c a [ i ]. d a t a n a s c i t a. mese ){ 59 if ( a n a g r a f i c a [ i ]. d a t a n a s c i t a. mese>p i u g i o v a n e. d a t a n a s c i t a. mese ){ 60 p i u g i o v a n e = a n a g r a f i c a [ i ] ; 6 } 62 } 6 64 /* confronto sul giorno */ else{ 67 if ( p i u g i o v a n e. d a t a n a s c i t a. g i o r n o!= a n a g r a f i c a [ i ]. d a t a n a s c i t a. g i o r n o ){ 6 if ( a n a g r a f i c a [ i ]. d a t a n a s c i t a. giorno >p i u g i o v a n e. d a t a n a s c i t a. g i o r n o ){ 69 p i u g i o v a n e = a n a g r a f i c a [ i ] ; 70 } 7 } 72 } 7 } 74 }/* fine ciclo for */ p r i n t f ( "La persona piu giovane e %s %s\n", p i u g i o v a n e. nome, 77 p i u g i o v a n e. cognome ) ; 7 79 } 5. Dichiara una variabile intera lunghezza ed una stringa s di 0 caratteri. Inverti la stringa carattere per carattere con un ciclo. Stampa la stringa con printf( %s,...)

6 #include <s t r i n g. h> / c o n t i e n e f u n z i o n i s p e c i f i c h e per l e s t r i n g h e / 4 char s [ 0 ] ; 5 char temp ; /* variabile temporanea */ 6 int i ; 7 int lunghezza ; 9 p r i n t f ( Inserire una stringa : \n ) ; 0 s c a n f ( %s, s ) ; 2 lunghezza = s t r l e n ( s ) ; 4 for ( i =0; i <lunghezza / 2 ; i ++){ 5 temp = s [ lunghezza i ] ; 6 s [ lunghezza i ] = s [ i ] ; 7 s [ i ] = temp ; } 9 20 p r i n t f ( "\n%s< parola invertita \n", s ) ; } Se noi per esempio inserissimo la stringa ciao, lunghezza saebbe uguale a 4 ed alla prima iterazione del ciclo for avremmo che: i=0 temp = s[4-0-] = o s[4-0-] = s[0] = c s[0] = o e a questo punto s = oiac. Alla seconda iterazione del ciclo: i= temp = s[4--] = a s[4--] = s[] = i s[] = a a questo punto s= oaic, che corrisponde alla parola ciao invertita, i=2 >= lunghezza/2 e quindi il ciclo termina. Esercizi sui puntatori I codici e le soluzioni degli esercizi sono nella cartella parte2. Per ognuna delle richieste di seguito elencate scrivere una singola riga di codice. Assumi che siano giá state dichiarate due variabili in virgola mobile n e n2, e che n sia stata inizializzata al valore.4. (a) Dichiara fp che punti ad un tipo di dato float. (b) Assegna lindirizzo della variabile n a fp. (c) Visualizza il valore delloggetto puntato da fp. (d) Assegna a n2 il VALORE delloggetto puntato da fp. (e) Visualizza il valore di n2. (f) Visualizza l indirizzo di n (usare la printf con il parametro %p ).

7 (g) Visualizza l indirizzo MEMORIZZATO in fp (usare la printf con il parametro %p ) e verifica se é uguale a quello del punto (f). 4 float n, n2 ; 5 n =.4; 6 7 /* a dichiara fp che punti ad un tipo di dato float */ float fp ; 9 /* b assegna l indirizzo della varibile n a fp */ 0 fp = &n ; /* c visualizza il valore dell oggetto puntato da fp */ 2 p r i n t f ( "\n fp punta al valore -> %f \n", fp ) ; /* d assegna a n2 il valore dell oggetto puntato da fp */ 4 n2 = fp ; 5 /* e visualizza il valore di n2 */ 6 p r i n t f ( "il valore di n2 e %f \n", n2 ) ; 7 /* f visualizza l indirizzo di n ( printf col parametro "% p") */ p r i n t f ( "l indirizzo di n e %p\n",&n ) ; 9 /* g visualizza l indirizzo memorizzato in fp 20 e verifica se e uguale a quello del punto f */ 2 p r i n t f ( " indirizzo di fp e %p\n", fp ) ; 22 2 } 2. Cosa stampa il seguente codice? 2 int main ( ) { 4 5 char a [ 5 ] = { c, i, a, o,! } ; 6 char b [ ] ; 7 char p ; 9 p=a ; /* *p = a[0] */ 0 b [ 0 ] = p ; /* b[0] = a[0] = c */ p = p + ; /* *p = a[] */ 2 b [ ] = p ; /* b[] = a[] o */ p = n ; /* a[] = n */ 4 b [ 2 ] = a [ ] ; /* b[2]= n */ 5 6 p r i n t f ( "\n %c %c %c \n", b [ 0 ], b [ ], b [ 2 ] ) ; 7 p r i n t f ( " %c %c %c %c %c\n", a [ 0 ], a [ ], a [ 2 ], a [ ], a [ 4 ] ) ; 9 } Il codice stampa i caratteri c o n per larray b e c i a n! per larray a. Listruzione p = a, inizializza il puntatore p con il primo elemento dellarray a. p = p + sposta il puntatore di celle di memoria, puntando quindi al quarto elemento dellarray a (a[] = o). Listruzione p = n sovrascrive la cella di memoria puntata da p con il carattere n, e quindi aggiorna anche lelemento dellarray a che punta alla stessa cella (a[]). A questo punto quindi larray a equivale a [c, i, a, n,!].

8 . Cosa stampa il seguente codice? 4 char a [ 5 ] = { c, i, a, o,! } ; 5 char p ; 6 7 p=a ; 9 while (p<= &a [ 4 ] ) { 0 p = A ; p=p+2; 2 } 4 p r i n t f ( "%c %c %c %c %c\n", a [ 0 ], a [ ], a [ 2 ], a [ ], a [ 4 ] ) ; 5 6 } Il codice stampa A i A o A. Il ciclo while modifica tutte le celle dellarray a con indice pari con il carattere A. Invece di accedere a queste celle direttamente, laccesso avviene con il puntatore p, che viene inizializzato con lindirizzo di memoria della prima cella di a (a[0]) e ad ogni ciclo viene incrementato di 2, puntando quindi solo alle celle di indice pari. Modificare la cella a cui punta il puntatore equivale a modificare larray. 4. Cosa stampa il seguente codice, supponendo di leggere come input i numeri, 2 e?? 2 #d e f i n e MAX 00 4 int main ( ) { 5 6 int m[max] [MAX] ; 7 m[ 0 ] [ 0 ] = 0 ; 9 0 s c a n f ( "%d",&m[ 0 ] [ ] ) ; /* input valore */ s c a n f ( "%d",m[ 0 ] ) ; /* input valore 2 */ 2 s c a n f ( "%d",m[ 0 ] + 2 ) ; /* input valore */ 4 m[ ] [ 0 ] = m[ 0 ] [ 0 ] ; 5 m[ ] [ ] = m[ 0 ] [ ] + m[ 0 ] [ 2 ] ; 6 7 p r i n t f ( "%d %d\n",m[ ] [ 0 ],m[ ] [ ] ) ; 9 20 } Soluzione Il codice dichiara una matrice a due dimensioni m e legge tre numeri interi. Il primo numero viene salvato nella cella a riga 0 e colonna ; il secondo numero viene salvato nella cella a riga 0 e colonna 0 (che é nella cella di memoria data da m[0]); il terzo numero viene salvato nella cella a riga 2 e colonna 2 (che é due celle di memoria dopo la cella data da m[0]). Se leggo, 2 e, la matrice risultante sará:

9 Le operazioni successive sono quindi eseguite correttamente e la matrice risultante sará: = 4 0 Il codice stamperá quindi i numeri 2 e Cosa stampa il seguente codice? #d e f i n e MAX 0 2 typedef struct { 4 char nome [MAX] ; 5 char cognome ; 6 } Persona ; 7 9 int main ( ) { 0 char uncognome [MAX] = " Rossi" ; 2 Persona p = {"Mario", uncognome } ; Persona q ; 4 5 q=p ; 6 q. nome [0]= B ; 7 p. cognome [ 0 ] = G ; 9 p r i n t f ( "%s %s\n", q. nome, q. cognome ) ; 20 p r i n t f ( "%s %s\n", p. nome, p. cognome ) ; p r i n t f ( " indirizzo variabile uncognome =%p \n", uncognome ) ; 24 p r i n t f ( " indirizzo variabile p. cognome =%p \n", p. cognome ) ; 25 p r i n t f ( " indirizzo variabile q. cognome =%p \n", q. cognome ) ; } Il codice stampa i caratteri i due nomi Bario Gossi e Mario Rossi. Gli indirizzi delle variabili uncognome, p.cognome e q.cognome sono uguali, quindi puntano allo stesso indirizzo di memoria. Mentre la variabile q é inizializzata copiando i valori della variabile p, al suo interno ha un puntatore allelemento cognome; quindi, mentre gli elementi nome delle due variabili non sono legati luno allaltro, l elemento cognome punta alla stessa cella di memoria. Quindi loperazione p.cognome[0] = G ; cambia i cognomi di p e di q mentre loperazione q.nome[0] = B ; cambia il solo nome di q. Questo avviene perché quando in C copiamo una struttura, vengono copiati anche tutti gli elementi di questa, ma se la struttura contiene un array, avviene una cosiddetta copia in profonditá (Deep copy), ovvero viene copiato realmente l oggetto allocando nuovo spazio di memoria per contenerlo. Se la struttura contiene invece un puntatore, avviene una cosiddetta copia per indirizzo (Shallow copy), ovvero non viene copiato realmente l oggetto, ma semplicemente l indirizzo di questo, di modo che in entrambe le strutture il puntatore punti allo stesso indirizzo di memoria.

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 7 0/11/018 Esercizi sull allocazione dinamica della memoria in C 1. Cosa stampa il seguente programma? 1 #d e f i n e MAXLENGTH 0 4 typedef struct { char

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018

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.

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)

Dettagli

Esercitazione di Reti degli elaboratori

Esercitazione 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

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista

Dettagli

I tipi strutturati e i record in C++

I tipi strutturati e i record in C++ I tipi strutturati e i record in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti

Dettagli

Array. Aggragati di variabili omogenee...

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

Dettagli

Elementi di Informatica A. A. 2016/2017

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

Dettagli

Corso di Programmazione I

Corso di Programmazione I Corso di Programmazione I I puntatori in C e C++ I puntatori in C Il C prevede puntatori a funzione e puntatori a dati di qualsiasi natura, semplici o strutturati. In particolare il puntatore viene utilizzato

Dettagli

Gli Array. Dichiarazione di un array

Gli Array. Dichiarazione di un array Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato

Dettagli

Introduzione al linguaggio C Dati aggregati

Introduzione al linguaggio C Dati aggregati Introduzione al linguaggio C Dati aggregati Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 5 ottobre

Dettagli

Introduzione al C. Lez. 2. Funzioni e Puntatori

Introduzione al C. Lez. 2. Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

Introduzione al C. Lez. 2 Funzioni e Puntatori

Introduzione al C. Lez. 2 Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Stringhe e tipi di dati strutturati

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!

Dettagli

Tipi strutturati - struct

Tipi strutturati - struct Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente

Dettagli

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca

Dettagli

Esercizi. La funzione swapint() primo tentativo

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

Dettagli

Esercizi. Filtraggio

Esercizi. 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)

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 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

Dettagli

ESERCIZIO: SHIFT ARRAY (1)

ESERCIZIO: SHIFT ARRAY (1) ARRAY E STRINGHE ARRAY ESERCIZIO: SHIFT ARRAY (1) Utilizzando le funzioni scrivere un programma che: genera una sequenza di N = 20 numeri interi e li memorizza in un array ( riempi_array( )) visualizza

Dettagli

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 14 settembre 2016 COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve essere

Dettagli

Informatica 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 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

Dettagli

Puntatori e array. Violetta Lonati

Puntatori e array. Violetta Lonati Puntatori e array Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Puntatori e array

Dettagli

Introduzione al C Lez. 3. Puntatori

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

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio

Dettagli

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);

Esercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length); Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di

Dettagli

INFORMATICA A. Titolo presentazione sottotitolo. Laboratorio n 4 Dott. Michele Zanella Ing. Gian Enrico Conti

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

Dettagli

Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top10, sconti

Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top10, sconti Fondamenti di Informatica L-A (Elettronica/Automazione) A.A. 2005/2006, terzo scritto (18/1/2005) Proposta di soluzione (ragionata) dell esercizio di progetto Input/Output Input = clienti.bin, n (funzione

Dettagli

Introduzione al C Lez. 4

Introduzione al C Lez. 4 Introduzione al C Lez. 4 Allocazione Dinamica della memoria http://www.di.unipi.it/~rossano/algo1/lez4.pdf Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso

Dettagli

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

definisce 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

Dettagli

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016

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:

Dettagli

Elementi di Informatica

Elementi di Informatica Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Tipi

Dettagli

Dati strutturati in C

Dati strutturati in C Dati strutturati in C Fondamenti di Informatica Array Perchè usare gli array? float venditegennaio, venditefebbraio, venditemarzo, venditeaprile, venditemaggio, venditegiugno, venditeluglio, venditeagosto,

Dettagli

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

Non 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

Dettagli

Lab 2 Info B. Diego Carrera Ing. Gian Enrico Conti 7 Novembre 2016

Lab 2 Info B. Diego Carrera Ing. Gian Enrico Conti 7 Novembre 2016 Lab 2 Info B Diego Carrera diego.carrera@polimi.it Ing. Gian Enrico Conti gianenrico.conti@mail.polimi.it 7 Novembre 2016 Per macchine PoliMI https://virtualdesktop.polimi.it 2 Richiami: Stringhe Le stringhe

Dettagli

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

1 (4) 2 (4) 3 (7) 4 (5) 5 (5) 6 (7) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2014-2015 Proff. Danilo ARDAGNA, Antonio MIELE Prima Prova in Itinere 4.5.2016 Cognome Nome Matricola Firma

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

Lab 08 Stringhe e strutture

Lab 08 Stringhe e strutture Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 08 Stringhe e strutture Lab8 1 Esercizio 1 n Scrivere una funzione che data una stringa A calcoli la sua lunghezza.

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Esercizi C sui tipi definiti dall utente

Esercizi C sui tipi definiti dall utente Politecnico di Milano Esercizi C sui tipi definiti dall utente Typedef,, tipi enumerativi e strutturati Sinonimi: typedef int Intero; Intero a; int b; Definire un nuovo tipo typedef char Stringa[10]; Stringa

Dettagli

ARRAY 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. 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

Dettagli

Aritmetica dei puntatori

Aritmetica dei puntatori Aritmetica dei puntatori Sui puntatori si possono anche effettuare operazioni aritmetiche, con opportune limitazioni somma o sottrazione di un intero sottrazione di un puntatore da un altro Somma e sottrazione

Dettagli

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 14 settembre 2016 COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve essere

Dettagli

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci - IEIM 2017-2018 Esercitazione II Elementi di programmazione C Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 4 Dati un numero, stampare il primo numero successivo pari

Dettagli

Associazione Variabile-Indirizzo

Associazione Variabile-Indirizzo I puntatori Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

Tipi user-defined. parte dichiarativa globale:

Tipi user-defined. parte dichiarativa globale: Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano la definizione di

Dettagli

Informatica B Esercitazione 3

Informatica B Esercitazione 3 Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Dipartimento di Elettronica e Informazione Informatica B Esercitazione 3 Array e matrici Andrea Galbiati galbiati@elet.polimi.it

Dettagli

Linguaggio C: puntatori

Linguaggio C: puntatori Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa

Dettagli

Prof. G. Ascia. I puntatori. Fondamenti di Informatica

Prof. G. Ascia. I puntatori. Fondamenti di Informatica I puntatori 1 Associazione Variabile-Indirizzo Tutte le volte che in un programma si dichiarano delle variabili, l'esecutore associa alla variabile un indirizzo. Es. Dato il programma #include

Dettagli

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti Esercizi risolti 1 Esercizio Si vuole realizzare un tipo utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero intero indicante il codice di riferimento dell articolo

Dettagli

Lezione 20: Tipi derivati: struct e union

Lezione 20: Tipi derivati: struct e union Lezione 20: Tipi derivati: struct e union Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Tipi di dati derivati: strutture (struct)

Dettagli

Introduzione al C Lez. 4. Allocazione Dinamica della memoria

Introduzione al C Lez. 4. Allocazione Dinamica della memoria Introduzione al C Lez. 4 Allocazione Dinamica della memoria Allocazione dinamica memoria In C la memoria può essere anche gestita in modo dinamico, attraverso l allocazione esplicita di blocchi di memoria

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Quinto Appello 016-1 1 Luglio 01 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Tipi derivati: Array

Tipi derivati: Array Tipi derivati: Array Array Gli array (o vettori) sono composti da elementi omogenei (cioè hanno tutti lo stesso tipo base) ogni elemento è identificato all'interno dell'array da un numero d ordine detto

Dettagli

Strutture Dati per Inserimento Ordinato. Luca Abeni

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

Dettagli

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

Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int Gli array Gli array rappresentano una modalità molto compatta per accedere ad un gruppo di variabili; tale gruppo è identificato dal nome dell'array; i tipi delle variabili appartenenti al gruppo devono

Dettagli

I Dati Strutturati ed il Linguaggio C

I Dati Strutturati ed il Linguaggio C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Dati Strutturati Esigenze Vettori

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Primo Appello 01-17 8 febbraio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Fondamenti di Informatica 2

Fondamenti 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

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Record Laboratorio di Informatica Ingegneria Meccanica Lezione 9, 6 dicembre 2007 versione 18 dicembre 2007 Renato Menicocci Array: collezione di dati omogenei

Dettagli

PARTE

PARTE Programmazione CdS in Matematica Appello d esame 24 Settembre 2008 Nome.. Cognome... Matricola.. INDICARE SUBITO NOME, COGNOME, E MATRICOLA NON è permesso (pena espulsione) usare la calcolatrice e consultare

Dettagli

Linguaggio C: PUNTATORI

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

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C

Ripasso R1. Dati strutturati. Esempi. Array. Dichiarazione di un array. Dichiarazione di un array in C Ripasso R1 Dati strutturati Aggregazione di dati omogenei: gli array Spesso gli algoritmi lavorano su insiemi di dati omogenei. o l insieme dei valori reali che rappresentano le temperature medie delle

Dettagli

Allocazione dinamica memoria

Allocazione dinamica memoria Allocazione dinamica memoria Marco Casazza 11/12/2017 1 Esercizio 1 1 /* 2 Creare una lista bidirezionale di interi, ovvero una lista 3 che permette lo scorrimento in entrambe le direzioni ( dal primo

Dettagli

Fondamenti di Informatica 1 - Compito A

Fondamenti di Informatica 1 - Compito A Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 18 Giugno 2007 Esercizio (16 punti) Un programma in linguaggio C deve accedere ad un database di studenti, memorizzato in un file binario studenti.bin.

Dettagli

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

Esercizi C su array e matrici

Esercizi C su array e matrici Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]

Dettagli

IEIM Esercitazione 1I Array. Alessandro A. Nacci -

IEIM Esercitazione 1I Array. Alessandro A. Nacci - IEIM 2018-2019 Esercitazione 1I Array Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1 Leggere 3 numeri, A, B e C. Dire quale di essi é maggiore. #include

Dettagli

parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure

parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano

Dettagli

parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure

parte dichiarativa globale: dichiarazioni di costanti dichiarazioni di tipi dichiarazioni di variabili prototipi di funzioni/procedure Tipi user-defined Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano

Dettagli

Rappresentazione della memoria

Rappresentazione della memoria Lezione 9 e 10 - Segmenti di memoria e puntatori Aritmetica dei puntatori Formattazione dei dati Significato ed impiego del cast Tipi di dato strutturato Fabio Scotti Laboratorio di programmazione per

Dettagli

Il linguaggio C. Puntatori e dintorni

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;

Dettagli

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come: TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P m sul dominio D T = { D, {F 1,...,F n }, {P 1,...,P

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez /12/2018

Esercitazioni di Fondamenti di Informatica - Lez /12/2018 Esercitazioni di Fondamenti di Informatica - Lez. 0 //08 Esercizi su Python. ESAME 3/08/07 es. 6. Scrivere un programma Python 3 che definisce un apposito dizionario che contiene, attraverso le coppie

Dettagli

T = { D, {F 1,...,F n }, {P 1,...,P m } }

T = { D, {F 1,...,F n }, {P 1,...,P m } } TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme i di predicati P 1,..,P m sul ldominio i D T = { D, {F 1,...,F n }, {P

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top2, sconti.

Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top2, sconti. Fondamenti di Informatica L-A (Elettronica/Automazione) A.A. 2005/2006, quarto scritto (5/4/2005) Proposta di soluzione (ragionata) dell esercizio di progetto 1 Input/Output Input = clienti.bin, n (funzione

Dettagli

Dati aggregati. Violetta Lonati

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

Dettagli

Strutture, Unioni, Enumerazioni in C. Emilio Di Giacomo

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

Dettagli

Puntatore. Ritorniamo sul problema dell accesso alle variabili

Puntatore. Ritorniamo sul problema dell accesso alle variabili Puntatori Puntatore Ritorniamo sul problema dell accesso alle variabili Nel linguaggio di von Neumann attraverso il loro indirizzo Nei linguaggi di alto livello attraverso il loro nome Però in taluni casi

Dettagli

Esercizio 1: parole nel testo

Esercizio 1: parole nel testo Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 6 Esercitazione: 11 novembre 2005 Esercizi di riepilogo in preparazione alla prima prova intermedia Problema (tratto da

Dettagli

in alternativa Quanto spazio occupa in memoria una variabile di tipo struct? dipende...

in alternativa Quanto spazio occupa in memoria una variabile di tipo struct? dipende... Strutture Mentre un array consente di raggruppare, sotto un unico nome, vari elementi tutti dello stesso tipo, una struttura permette di gestire, mediante un unico nome, elementi di QUASI tutti i tipi.

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Dettagli

Lezione 6: Array e puntatori

Lezione 6: Array e puntatori Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci

Dettagli

Fondamenti di Programmazione

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

Dettagli