Aggregati di dati eterogenei: il tipo struct

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Aggregati di dati eterogenei: il tipo struct"

Transcript

1 Aggregati di dati eterogenei: il tipo struct

2 Definizione di tipi e variabili struct Introduzione agli aggregati eterogenei Definizione di un tipo struct Variabili struct 5

3 Definizione di tipi e variabili struct

4 Perché dati eterogenei? Sono frequenti le informazioni composte da parti di tipo diverso (es.: dati studente) cognome Rossi nome Mario matricola media

5 Aggregato di dati eterogenei Più informazioni eterogenee possono essere unite come parti (campi) di uno stesso dato dato (aggregato) studente cognome: Rossi nome: Mario matricola: media:

6 I tipi struct Il dato aggregato in C è detto struct. In altri linguaggi si parla di record Una struct (struttura) è un dato costituito da campi I campi sono di tipi (base) noti (eventualmente altre struct) Ogni campo all interno di una struct è accessibile mediante un identificatore (anziché un indice, come nei vettori) 9

7 Definizione di tipi e variabili struct

8 Come creare un tipo struct Definire un tipo struct corrisponde a creare un nuovo tipo di dato, caratterizzato da Parola chiave struct Un nome (un identificatore) unico Es. struct studente I campi di una struct sono definiti alla stregua di variabili locali alla struct Le struct sono di solito dichiarate nell intestazione di un file sorgente C Il nuovo tipo definito potrà essere utilizzato per dichiarare variabili o campi di altre strutture 11

9 Un esempio di tipo struct struct studente { char cognome[max], nome[max]; int matricola; float media; }; 12

10 Un esempio di tipo struct struct studente { char cognome[max], nome[max]; int matricola; float media; }; Nuovo tipo di dato Il Il nuovo tipo definito è struct studente La parola chiave struct è obligatoria 13

11 Un esempio di tipo struct struct studente { char cognome[max], nome[max]; int matricola; float media; }; Nuovo tipo di dato Nome del tipo aggregato Stesse regole che valgono per i i nomi delle variabili I nomi di di struct devono essere diversi da nomi di di altre struct (possono essere uguali a nomi di di variabili) 14

12 Un esempio di tipo struct struct studente { char cognome[max], nome[max]; int matricola; float media; }; Campi (eterogenei) Nuovo tipo di dato Nome del tipo aggregato I campi corrispondono a variabili locali di di una struct Ogni campo è quindi caratterizzato da un tipo (base) e da un identificatore (unico per la la struttura) 15

13 Definizione di tipi e variabili struct

14 Dichiarazione di variabili struct struct studente { char cognome[max], nome[max]; int matricola; float media; };... struct studente s, t; Dichiarazione delle variabili s e t di tipo struct studente 17

15 Schemi di dichiarazione alternativi (1/5) 1. Schema proposto struct studente { char cognome[max], nome[max]; int matricola; float media; };... struct studente s, t; 18

16 Schemi di dichiarazione alternativi (2/5) 2. Dichiarazione/definizione contestuale di tipo struct e variabili Tipo struct e variabili vanno definiti nello stesso contesto (globale o locale) struct studente { char cognome[max], nome[max]; int matricola; float media; } s, t; 19

17 Schemi di dichiarazione alternativi (3/5) 3. (uso raro) Dichiarazione/definizione contestuale di tipo struct (senza identificatore) e variabili Il tipo struct viene utilizzato unicamente per le variabili definite contestualmente NON si possono definire variabili dello stesso tipo in altre istruzioni dichiarative o in funzioni struct { char cognome[max], nome[max]; int matricola; float media; } s, t; 20

18 Schemi di dichiarazione alternativi (4/5) 4. Sinonimo di struct studente introdotto mediante typedef typedef struct studente { char cognome[max], nome[max]; int matricola; float media; } Studente;... Studente s, t; 21

19 Schemi di dichiarazione alternativi (5/5) 5. Sinonimo introdotto mediante typedef: variante senza identificatore di struct typedef struct studente { char cognome[max], nome[max]; int matricola; float media; } Studente;... Identificatore inutilizzato Studente s, t; 22

20 Schemi di dichiarazione alternativi (5/5) 5. Sinonimo introdotto mediante typedef: variante senza identificatore di struct typedef struct studente { char cognome[max], nome[max]; int matricola; float media; } Studente;... Identificatore inutilizzato Studente s, t; 23

21 Schemi di dichiarazione alternativi (5/5) 5. Sinonimo introdotto mediante typedef: variante senza identificatore di struct typedef struct { char cognome[max], nome[max]; int matricola; float media; } Studente;... Studente s, t; 24

22 Strutture annidate Una struttura può includerne una o più altre come campi struct data { int g, m, a; }; struct studente { char cognome[max], nome[max]; int matricola; float media; struct data datadinascita; }; 25

23 Uso di variabili struct Si accede ai singoli campi di una variabile struct come a singole variabili, con la notazione: <identificatore struct>.<identificatorecampo> Sono possibili assegnazioni (globali) tra strutture struct studente s, t;... scanf ( %s%s,s.cognome,s.nome); scanf ( %d,&s.matricola); scanf ( %f,&s.media); t = s;... 26

24 Esempio (1/4) struct studente { char cognome[max], nome[max]; int matricola; float media; }; int main(void) { struct studente s, t, tmp;... 27

25 Esempio (2/4)... int main(void) { struct studente s, t, tmp; printf( dati studente: ); scanf ( %s%s,s.cognome,s.nome); scanf ( %d,&s.matricola); scanf ( %f,&s.media); 28

26 Esempio (3/4)... printf( dati studente: ); scanf ( %s%s,t.cognome,t.nome); scanf ( %d,&t.matricola); scanf ( %f,&t.media); if (s.media < t.media) { tmp=s; s=t; t=tmp; } 29

27 Esempio (4/4)... printf( studenti ordinati ); printf( secondo media decrescente\n ); printf( %s %s, s.cognome, s.nome); printf( %d %f\n, s.matricola, s.media); } printf( %s %s, t.cognome, t.nome); printf( %d %f\n, t.matricola, t.media); 30

28 Inizializzazione di variabili struct struct studente s = { Rossi, Mario, , }; Una struct può essere inizializzata nell istruzione di dichiarazione (come i vettori), mediante elenco esplicito di valori Assegnazione compatta, non ammessa altrove! 31

29 Assegnazione errata struct studente s;... s = { Rossi, Mario, , }; La notazione proposta (compatta) NON è ammessa in una qualunque assegnazione 32

30 Assegnazione errata struct studente s;... s = { Rossi, Mario, , }; La notazione proposta (compatta) NON è ammessa in una qualunque assegnazione 33

31 Assegnazione corretta struct studente s;... strcpy (s.cognome, Rossi ); strcpy (s.nome, Mario ); s.matricola = ; s.media = 27.25; Per inizializzare i campi al di fuori della dichiarazione, sono necessarie assegnazioni ai singoli campi 34

32 Aggregati di dati eterogenei: il tipo struct

33 Utilizzo avanzato dei tipi struct struct e funzioni struct e vettori 2

34 Utilizzo avanzato dei tipi struct

35 Parametri struct Una struct puo essere Passata come parametro a una funzione Ritornata come risultato da una funzione Il passaggio di parametri avviene by value (per valore) Una struct (dato aggregato) rappresenta quindi uno strumento per passare ad una funzione più dati in un unico parametro, o per restituire più risultati 4

36 Esempio (1/2) void stampastudente(struct studente s) { printf( %s %s, s.cognome, s.nome); printf( %d %f\n, s.matricola, s.media); } struct studente leggistudente(void) { struct studente x; printf( dati studente: ); scanf ( %s%s,x.cognome,x.nome); scanf ( %d,&x.matricola); scanf ( %f,&x.media); return x; } 5

37 Esempio (1/2) void stampastudente(struct studente s) { printf( %s %s, s.cognome, s.nome); printf( %d %f\n, s.matricola, s.media); } struct studente leggistudente(void) { struct studente x; printf( dati studente: ); scanf ( %s%s,x.cognome,x.nome); scanf ( %d,&x.matricola); Funzione che stampa i dati relativi a scanf ( %f,&x.media); uno studente, ricevuto come parametro return x; (per valore) } 6

38 Esempio (1/2) void stampastudente(struct studente s) { Funzione che restituisce una printf( %s %s, struttura, s.cognome, dopo averne s.nome); acquisito i printf( %d %f\n, s.matricola, dati in input s.media); } struct studente leggistudente(void) { struct studente x; printf( dati studente: ); scanf ( %s%s,x.cognome,x.nome); scanf ( %d,&x.matricola); scanf ( %f,&x.media); return x; } 7

39 Esempio (2/2) int main(void) { struct studente s, t, tmp; } s = leggistudente(); t = leggistudente(); if (s.media < t.media) { tmp=s; s=t; t=tmp; } printf( studenti ordinati ); printf( secondo media decrescente\n ); stampastudente(s); stampastudente(t); 8

40 Utilizzo avanzato dei tipi struct

41 struct e vettori a confronto Analogia Sono entrambi tipi di dati aggregati Differenze Dati eterogenei (struct) / omogenei (vettori) Accesso per nome (struct) / indice (vettori) Parametri per valore (struct) / per riferimento (vettori) Accesso parametrizzato non ammesso (struct) / ammesso (vettori) 10

42 Accesso parametrizzato a vettori I vettori sono frequentemente utilizzati per accesso parametrizzato a dati numerati (es. in costrutti iterativi) Esempio: for (i=0; i<n; i++) {... dati[i] =...;... } 11

43 Accesso parametrizzato a struct (1/3) Ai campi di una struct NON si può accedere in modo parametrizzato Errore! char campo[20];... scanf( %s,campo); printf( %s,s.campo); 12

44 Accesso parametrizzato a struct (1/3) Ai campi di una struct NON si può accedere in modo parametrizzato Errore! char campo[20];... scanf( %s,campo); printf( %s,s.campo); campo è una variabile! 13

45 Accesso parametrizzato a struct (2/3) Soluzione: utilizzare una funzione (da realizzare) per il passaggio da identificatore (variabile) di campo a struttura char campo[20];... scanf( %s,campo); stampacampo(s,campo); 14

46 Accesso parametrizzato a struct (3/3) void stampacampo( struct studente s, char id[]) { if (strcmp(id, cognome )==0) printf( %s,s.cognome); else if(strcmp(id, nome )==0) printf( %s,s.nome); else if(strcmp(id, matricola )==0) printf( %d,s.matricola);... } 15

47 Vettori come campi di struct Una struct può avere uno o più vettori come campi Esempio: cognome e nome in struct studente Attenzione! Una struct viene passata per valore a una funzione, mentre un vettore sarebbe passato per riferimento Se una struct ha come campo un vettore di MOLTI elementi, passare la struct come parametro richiede molto tempo (per copiare dati) 16

48 Vettori di struct Un vettore di struct può essere la soluzione migliore, come struttura dati, nei casi di collezioni (numerabili) di aggregati eterogenei Esempio: gestione di un elenco di studenti Attenzione! Una vettore (anche se di struct) viene passato per riferimento a una funzione Una funzione può quindi modificare il contenuto di un vettore (ad esempio ordinare i dati) 17

49 Vettori di struct: esempio int main(void) { struct studente elenco[nmax]; int i, n; } printf( quanti studenti(max %d)?,nmax); scanf( %d,&n); for (i=0; i<n; i++) { elenco[i] = leggistudente(); } ordinastudenti(elenco,n); printf( studenti ordinati per media\n ); for (i=0; i<n; i++) { stampastudente(elenco[i]); } 18

50 Aggregati di dati eterogenei: il tipo struct

51 Esercizi proposti Esercizio Archivio studenti Esercizio Punti del piano 2

52 Esercizi proposti

53 Esercizio Archivio studenti Gestione di un archivio di studenti. Per ciascuno studente l archivio memorizza: cognome e nome (stringhe prive di spazi), numero di matricola (intero) e votazione media degli esami sostenuti (reale) Il programma effettua le seguenti operazioni: Lettura (da file) dei dati relativi a tutti gli studenti (la prima riga del file contiene il numero di studenti, al massimo 100) Ordinamento dei dati secondo media decrescente Scrittura dei dati, nell ordine ottenuto, su file 4

54 Struttura dati (1/2) Vettore di struct studente Il vettore è necessario in quanto occorre ordinare i dati. Non è infatti possibile operare sui singoli dati, secondo lo schema (input manipolazione output) La dimensione del vettore è 100 (numero massimo di studenti previsto). Il numero effettivo di dati è acquisito dal file in ingresso 5

55 Struttura dati (2/2) Formato dei file Stesso formato per file di ingresso e uscita. I dati relativi a uno studente sono Output: su una sola riga Input: possono essere su più righe, in quanto, usando fscanf(f, "%s%s%d%f, ), spazi e a- capo sono equivalenti 6

56 Analisi Algoritmo: si segue lo schema Input dei dati (tutti) da file a vettore Ordinamento del vettore Output dei dati da vettore a file Funzioni (scomposizione del programma in sottoprogrammi) Il programma principale (main) non vede i né dettagli di I/O relative ai singoli dati, né l ordinamento Sottoprogrammi: inputstudente, outputstudente, ordinastudenti 7

57 Archivio studenti (1/5) #define NMAX 100 #define MAXRIGA 30 struct studente { char cognome[maxriga], nome[maxriga]; int matricola; float media; };... int main(void) { char nomefile[maxriga]; FILE *fp;... printf( nome file in ingresso: ); scanf( %s, nomefile); fp = fopen(nomefile, r ); fscanf(fp, %d, &n);... } studenti.c 8

58 Archivio studenti (2/5)... struct studente inputstudente(file *f); void ordinastudenti( struct studente el[],int n);... int main(void) {... struct studente elenco[nmax]; int i, n;... for (i=0; i<n; i++) { elenco[i] = inputstudente(fp); } fclose (fp); ordinastudenti(elenco,n);... } 9

59 Archivio studenti (3/5)... void outputstudente(struct studente s, FILE *f);... int main(void) {... printf( nome file in uscita: ); scanf( %s, nomefile); fp = fopen(nomefile, w ); fprintf(f, %d\n, n); for (i=0; i<n; i++) { outputstudente(elenco[i], fp); } fclose (fp); } 10

60 Archivio studenti (4/5) struct studente inputstudente(file *f) { struct studente x; fscanf (f, %s%s%d%f,x.cognome,x.nome, &x.matricola,&x.media); return x; } void outputstudente( struct studente s, FILE *f) { fprintf(f, %s %s %d %f\n, s.cognome, s.nome, s.matricola, s.media); } 11

61 Archivio studenti (5/5) /* ordinamento per media decrescente mediante algoritmo di selection sort */ void ordinastudenti(struct studente el[],int n) { int i, j, max; struct studente tmp; } for (i=0; i<n-1; i++) { /* cerca massimo nell intervallo i..n-1 */ max = i; for (j=i+1; j<n; j++) if (el[j].media > el[max].media) max = j; /* scambia con dato in posizione i */ tmp = el[i]; el[i] = el[max]; el[max] = tmp; } 12

62 Esercizi proposti

63 Esercizio Punti del piano (1/2) Data una struct che rappresenta un punto nel piano cartesiano a due dimensioni: typedef struct point { double x; double y; } Point; Scrivere le seguenti funzioni che operano su oggetti di tipo Point: double distanzadaorigine (Point p); double distanza (Point p1, Point p2); int quadrante (Point p); /* in quale quadrante si trova il punto */ 14

64 Esercizio Punti del piano (2/2) Scrivere un programma principale che, ricevuta in input, da tastiera, una sequenza di punti (di numero non noto a priori, la sequenza termina ripetendo due volte lo stesso punto), calcoli La lunghezza della spezzata definita dalla sequenza di punti La media aritmetica delle distanze dei punti dall origine Il numero di punti presenti in ognuno dei quadranti 15

65 Funzioni double distanzadaorigine (Point p) { return sqrt(p.x*p.x + p.y*p.y); } double distanza (Point p1, Point p2) { return sqrt((p1.x-p2.x)*(p1.x-p2.x) + (p1.y-p2.y)*(p1.y-p2.y)); } int quadrante (Point p) { if (p.x >= 0 && p.y >= 0) return 1; if (p.x < 0 && p.y >= 0) return 2; if (p.x <= 0 && p.y < 0) return 3; if (p.x > 0 && p.y < 0) return 4; } punti.c 16

66 Funzioni double distanzadaorigine (Point p) { return I quadranti sqrt(p.x*p.x sono numerati + p.y*p.y); da 1 a 4. I punti } sugli assi sono arbitrariamente assegnati double dando distanza precedenza (Point al quadrante p1, Point di numero p2) { inferiore return sqrt((p1.x-p2.x)*(p1.x-p2.x) + (p1.y-p2.y)*(p1.y-p2.y)); } int quadrante (Point p) { if (p.x >= 0 && p.y >= 0) return 1; if (p.x < 0 && p.y >= 0) return 2; if (p.x <= 0 && p.y < 0) return 3; if (p.x > 0 && p.y < 0) return 4; } punti.c 17

67 Programma principale: struttura dati (1/2) Non è necessario un vettore di punti. Il problema può essere risolto utilizzando i punti man mano che vengono acquisiti 2 variabili di tipo Point (p, p0) E necessario conoscere il punto appena acquisito e il precedente, per individuare la fine dei dati 18

68 Programma principale: struttura dati (2/2) 2 variabili float (lungh, sommadist) Per lunghezza della spezzata e per somma/media delle distanze dall origine 4 contatori di punti (uno per quadrante) e uno globale Soluzione: vettore di 4 interi (q) e intero (np) 19

69 Programma principale: analisi (1/2) Inizializzazioni Iterazione controllata da confronto tra gli ultimi due dati, nella quale si eseguono Input di un punto Aggiornamento di lungh e sommadist, mediante calcolo delle distanze Dall origine Dal punto precedente 20

70 Programma principale: analisi (2/2) NOTA: Il primo e l ultimo punto vanno gestiti in modo particolare Il primo non ha predecessore L ultimo (indica fine dati) non va conteggiato Output finale dei risultati 21

71 Punti del piano: main (1/2) int main(void) { Point p, p0; double lungh=0.0, sommadist=0.0; int q[4] = {0,0,0,0}, np=0, i; punti.c printf( sequenza di punti\n ); printf( (punto ripetuto = FINE)\n ); ); /* input primi 2 dati */ scanf( %lf%lf, &p0.x, &p0.y); scanf( %lf%lf, &p.x, &p.y); /* gestione primo punto */ sommadist += distanzadaorigine(p0); q[quadrante(p0)-1]++; np++; 22

72 Punti del piano: main (2/2) int main(void) { punti.c... while (p.x!=p0.x p.y!=p0.y) { lungh += distanza(p,p0); sommadist += distanzadaorigine(p); q[quadrante(p)-1]++; np++; p0 = p; scanf( %lf%lf, &p.x, &p.y); } printf( spezzata: %lf\n, lungh); printf( media: %lf\n, sommadist/np); for (i=0; i<4; i++) printf( pt. in q. %d: %lf\n, i+1, q[i]); } 23

73 Esempio di esecuzione sequenza di punti (punto ripetuto = FINE) spezzata: media: pt. in q. 1: 1 pt. in q. 2: 2 pt. in q. 3: 1 pt. in q. 4: 1 24

74 Aggregati di dati eterogenei: il tipo struct

75 Argomenti trattati Definizione di tipi e variabili struct Gli aggregati eterogenei Definizione di tipi e variabili struct Uso di variabili struct Utilizzo avanzato dei tipi struct struct e funzioni struct e vettori 2

76 Tecniche di programmazione Gestione di dati eterogenei, articolati in campi Stili di definizione di un tipo struct Aggregati come parametri e valori di ritorno di funzioni Archivi di dati eterogenei 3

77 Suggerimenti (1/2) Utilizzare struct, anziché variabili separate, ogniqualvolta si gestiscano più informazioni (eterogenee) che caratterizzano una stessa informazione Vantaggi Maggior chiarezza e rappresentazione gerarchica dei dati E possibile assegnare (o passare a/da una funzione) tutte le parti di un aggregato in un unico dato 4

78 Suggerimenti (2/2) Uniformare lo stile di definizione di struct typedef struct è lo stile più frequente, in quanto più compatto (non richiede di usare ulteriormente la parola chiave struct) struct (meno frequente) viene utilizzato per evidenziare in modo più esplicito che si tratta di un tipo aggregato. 5

79 Materiale aggiuntivo Sul CD-ROM Testi e soluzioni degli esercizi trattati nei lucidi Scheda sintetica Esercizi risolti Esercizi proposti Esercizi proposti da altri libri di testo 6

80 Programmazione in C

81 Aggregati di dati eterogenei: il tipo struct Definizione di tipi e variabili struct Utilizzo avanzato dei tipi struct Esercizi proposti Sommario 2

82 Riferimenti al materiale Testi Kernighan & Ritchie: capitolo 6 Cabodi, Quer, Sonza Reorda: capitolo 9 Dietel & Dietel: capitolo 10 Dispense Scheda: Il tipo struct 3

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Funzioni Esercizio 1 Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x. Creare un altra funzione, di nome float cube(float x), che restituisce invece il

Dettagli

4 GLI ARRAY E LE STRINGHE

4 GLI ARRAY E LE STRINGHE 13 4 GLI ARRAY E LE STRINGHE 4.1 Gli array monodimensionali Un array è un insieme di variabili dello stesso tipo, cui si fa riferimento mediante uno stesso nome. L accesso ad un determinato elemento si

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,

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

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Gestione di files Motivazioni

Gestione di files Motivazioni Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)

Dettagli

Input/output in C e in C++

Input/output in C e in C++ FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

IL CONCETTO DI FILE. È illecito operare oltre la fine del file.

IL CONCETTO DI FILE. È illecito operare oltre la fine del file. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007

Files in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007 Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)

Dettagli

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

Dettagli

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti

Dettagli

Sommario. Note alla traduzione... xix

Sommario. Note alla traduzione... xix Sommario Prefazione... xv L utilizzo del linguaggio C per insegnare a sviluppare programmi...xv Puntatori e organizzazione del testo...xvi Concetti di ingegneria del software...xvi Aspetti pedagogici...xvii

Dettagli

Mini-Corso di Informatica

Mini-Corso di Informatica Mini-Corso di Informatica CALCOLI DI PROCESSO DELL INGEGNERIA CHIMICA Ing. Sara Brambilla Tel. 3299 sara.brambilla@polimi.it Note sulle esercitazioni Durante le esercitazioni impareremo a implementare

Dettagli

Array multidimensionali e stringhe

Array multidimensionali e stringhe Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) gianfranco.rossi@unipr.it Indice 1 Introduzione

Dettagli

float somma_float(float a, float b) int get_ascii(char c)

float somma_float(float a, float b) int get_ascii(char c) Una funzione è caratterizzata da: Tipo di dato restituito void (non restituisce nulla) int, una struttura definita dal programmatore ecc Nome della funzione Elenco parametri in ingresso, specifica: il

Dettagli

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1 - Esercizi Comandi Unix - 2 Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato

Dettagli

INTRODUZIONE ALLE BASI DATI RELAZIONALI

INTRODUZIONE ALLE BASI DATI RELAZIONALI INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE

Dettagli

La disposizione estetica della lettera commerciale

La disposizione estetica della lettera commerciale La disposizione estetica della lettera commerciale Gli elementi costitutivi della lettera commerciale vengono disposti sul foglio secondo stili diversi: ogni a- zienda, infatti, caratterizza la sua immagine

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

Problema: calcolare il massimo tra K numeri

Problema: calcolare il massimo tra K numeri Problema: calcolare il massimo tra K numeri Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L algoritmo deve restituire il valore massimo tra quelli introdotti

Dettagli

Funzioni condizionali

Funzioni condizionali Excel Base- Lezione 4 Funzioni condizionali Sono funzioni il cui risultato è dipendente dal verificarsi o meno di una o più condizioni. Esempio: SE CONTA.SE SOMMA.SE E, O 1 Funzione SE La funzione SE serve

Dettagli

06AZN - Fondamenti di Informatica (GES, LOP, ORG) Esercitazione di laboratorio n. 8 (1/12/09)

06AZN - Fondamenti di Informatica (GES, LOP, ORG) Esercitazione di laboratorio n. 8 (1/12/09) La presente esercitazione presuppone conoscenza delle seguenti parti del linguaggio C: main, return, commenti, variabili, identificatori, tipi scalari, assegnazione, costanti letterali, printf (base),

Dettagli

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno. Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere

Dettagli

Esempi di attribuzione dei seggi

Esempi di attribuzione dei seggi Esempi di attribuzione dei seggi Al fine di chiarire il funzionamento dei meccanismi previsti per l attribuzione dei seggi e l ordine delle relative operazioni, vengono presentati due esempi di attribuzione

Dettagli

PIANO DI LAVORO. a.s. 2015 / 2016

PIANO DI LAVORO. a.s. 2015 / 2016 PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

RICERCA DI UN ELEMENTO

RICERCA DI UN ELEMENTO RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. ACCESS Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati. Database Relazionale: tipo di database attualmente più diffuso grazie alla

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Introduzione al Linguaggio C ed all IDE DEV-C++

Introduzione al Linguaggio C ed all IDE DEV-C++ Microsoft Windows e Dev-C++ Introduzione al Linguaggio C ed all IDE DEV-C++ 1 Le Esercitazioni in Laboratorio! MTA + MLAB1/2: Edificio Via Valotti, primo piano e piano interrato! Orario: Giovedì 14:30-17:30!

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Elezioni comunali 2014. Esempi di attribuzione dei seggi

Elezioni comunali 2014. Esempi di attribuzione dei seggi Elezioni comunali 2014 4 Esempi di attribuzione dei seggi Esempi di attribuzione dei seggi Al fine di chiarire il funzionamento dei meccanismi previsti per l attribuzione dei seggi e l ordine delle relative

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013

Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Laboratorio di Programmazione: Linguaggio C Lezione 9 del 27 novembre 2013 Damiano Macedonio Giochi d Azzardo Note Iniziali Per generare un numero casuale basta includere la libreria stdlib.h e utilizzare

Dettagli

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/2002 4.1 Modelli di Base Dati 4 Un DBMS: Access a.a. 2001/2002 4.1 DBMS 4.2 DBMS = Data Base Management System Software per la costruzione e la gestione di una base dati Esempi di DBMS: Oracle, MySQL, SQLServer,

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Manipolazioni elementari di flussi di testo strutturati

Manipolazioni elementari di flussi di testo strutturati Manipolazioni elementari di flussi di testo strutturati L output di molti comandi è costituito da flussi di testo strutturati: ogni riga rappresenta una parte del risultato ed è divisa in campi (fields)

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

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi

Dettagli

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Dettagli

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

IEIM Esercitazione IX Ordinamento vettori e Struct Complesse. Alessandro A. Nacci -

IEIM Esercitazione IX Ordinamento vettori e Struct Complesse. Alessandro A. Nacci - IEIM 2015-2016 Esercitazione IX Ordinamento vettori e Struct Complesse Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Ordinamento di vettori Il lancio dei dadi 2 Lancio dei dadi

Dettagli

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito.

SQL Server 2008. Architettura Client-Server. SQL Server 2008. Introduzione all uso di SQL Server 2008. Dutto Riccardo. http://dbdmg.polito. SQL Server 2008 Introduzione all uso di SQL Server 2008 Dutto Riccardo http://dbdmg.polito.it SQL Server 2008 Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL Server Business

Dettagli

Informatica A a.a. 2010/ /02/2011

Informatica A a.a. 2010/ /02/2011 Politecnico di Milano Dipartimento di Elettronica e Informazione Informatica A a.a. 2010/2011 23/02/2011 Cognome Matricola Nome Firma dello studente Istruzioni Non separate questi fogli. Scrivete la soluzione

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case

Dettagli

Gli Operatori. Università degli Studi di Brescia

Gli Operatori. Università degli Studi di Brescia Linguaggio C Gli Operatori 1 Gli operatori! Costruiscono le espressioni del C! Specificano come devono essere manipolati gli operandi dell espressione! Il C definisce una moltitudine di operatori, quali

Dettagli

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Concetti chiave Struct Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct

Dettagli

Strutture Dinamiche. Fondamenti di Informatica

Strutture Dinamiche. Fondamenti di Informatica Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));

Dettagli

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste 4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1

Dettagli

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa) Architettura CPU Dispositivi di ingresso Memoria principale (RAM) Dispositivi di uscita Memoria secondaria (memoria di massa) Architettura a tre livelli (ANSI-SPARC 78) Schema Est 1 Schema Est 2... Schema

Dettagli

1.2d: La codifica Digitale dei caratteri

1.2d: La codifica Digitale dei caratteri 1.2d: La codifica Digitale dei caratteri 2 Bibliografia Curtin, 3.6 (vecchie edizioni) Curtin, 2.5 (nuova edizione) CR pag. 9-14 Questi lucidi 3 La codifica dei caratteri Un testo è rappresentato attraverso

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Consideriamo un vettore allocato dinamicamente

Consideriamo un vettore allocato dinamicamente Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero

Dettagli

Informatica d ufficio

Informatica d ufficio Informatica d ufficio Anno Accademico 2008/2009 Lezione N 3 Microsoft Word - prima parte Microsoft Word E un Word processor,cioè un programma che consente di creare e modificare documenti. Prevede numerose

Dettagli

Modulo 2 Data Base - Modello Relazionale

Modulo 2 Data Base - Modello Relazionale Modulo 2 Data Base - Modello Relazionale Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Modello Relazionale

Dettagli

Home Page. Title Page. Contents. Laboratorio di LATEX. Page 1 of 16. Go Back. maggio 2013. Full Screen. Close. Quit

Home Page. Title Page. Contents. Laboratorio di LATEX. Page 1 of 16. Go Back. maggio 2013. Full Screen. Close. Quit Laboratorio di LATEX Page 1 of 16 maggio 2013 Comandi di interruzione linea, interruzione pagina e di spaziatura \newline (o\\), come detto, servono per forzare un interruzione di linea, ma non servono

Dettagli

Definizione di metodi

Definizione di metodi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 9 Definizione di metodi Carla Limongelli Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di metodi 1 Contenuti

Dettagli

Sono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n').

Sono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n'). I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un

Dettagli

FILE E INDICI Architettura DBMS

FILE E INDICI Architettura DBMS FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le

Dettagli

Laboratorio di Informatica L-A 1. ne: M se macchina, P se parte Nel caso di macchina seguono: L identificatore

Laboratorio di Informatica L-A 1. ne: M se macchina, P se parte Nel caso di macchina seguono: L identificatore Azienda meccanica Un azienda artigianale monta macchine per conto terzi ed acquista le parti costituenti da ditte esterne. Una macchina è caratterizzata da un valore intero che identifica la macchina e

Dettagli

3. Terza esercitazione autoguidata: progetto gestione voli

3. Terza esercitazione autoguidata: progetto gestione voli 9 3. Terza esercitazione autoguidata: progetto gestione voli Qui ci occupiamo di scrivere un programma abbastanza lungo, dedicato alla gestione di una tabella di dati. Una tabella e una struttura dati

Dettagli

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato. Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

Modulo 1: Le I.C.T. UD 1.2d: La codifica Digitale dei caratteri

Modulo 1: Le I.C.T. UD 1.2d: La codifica Digitale dei caratteri Modulo 1: Le I.C.T. : La codifica Digitale dei caratteri Prof. Alberto Postiglione Corso di Informatica Generale (AA 07-08) Corso di Laurea in Scienze della Comunicazione Università degli Studi di Salerno

Dettagli

I database. Introduzione alla teoria delle basi di dati

I database. Introduzione alla teoria delle basi di dati I database Introduzione alla teoria delle basi di dati 1 Cosa sono e a cosa servono i Database Un database (o base di dati) e' una raccolta organizzata di dati correlati. Il principale scopo di un database

Dettagli

Progettazione logica

Progettazione logica Progettazione logica Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E- R in modo corretto ed efficiente. Richiede

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

Strutturare il codice: sottoprogrammi

Strutturare il codice: sottoprogrammi Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Motivazioni Alcuni problemi si presentano frequentemente durante lo sviluppo di un programma

Dettagli

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 4 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 4 anno accademico 2015-2016 Mario Verdicchio Numeri primi Si definisce primo un numero intero maggiore di 1 che ha due soli divisori: se stesso e 1 Esempi di numeri primi:

Dettagli

Esame Informatica Generale 13/04/2016 Tema A

Esame Informatica Generale 13/04/2016 Tema A Esame Informatica Generale 13/04/2016 Tema A! 1/! Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; void fz(int[], double[], double*); // puntatori void fz(int[],

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Il generatore di numeri casuali

Il generatore di numeri casuali Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1 1) Il bus in un computer trasporta a) solo dati b) solo istruzioni c) sia dati sia istruzioni 2) In una sequenza

Dettagli

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Istruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

Dettagli

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi Il DOS diagramma di flusso Inizio Bootstrap I comandi del DOS Fondamenti di Informatica Anno Accademico 2000-01 1 Stampa prompt Leggi comando Esegui comando 2 I comandi: vista funzionale Parametri input

Dettagli

AE RZT QSO RKPT SQZC

AE RZT QSO RKPT SQZC Laboratorio di Informatica Lezione 1: Introduzione al corso Prof. Riccardo Cassinis Dott. Marzia Tassi Siete seduti nel posto giusto? AE RZT QSO RKPT SQZC PRFGE BERTSZ KDTVSU ZQRPDE 2 1 Prima di cominciare,

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Allocazione Dinamica della Memoria

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

Dettagli

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette. 3.5 STAMPA UNIONE Le funzioni della stampa unione (o stampa in serie) permettono di collegare un documento principale con un elenco di nominativi e indirizzi, creando così tanti esemplari uguali nel contenuto,

Dettagli

Manutenzione periodica al PIANO DEI CONTI

Manutenzione periodica al PIANO DEI CONTI Manutenzione periodica al PIANO DEI CONTI La nuova gestione Utilità Piano dei Conti Premessa... 2 La creazione di un nuovo sottoconto... 3 1. Nuovo sottoconto tramite duplica da piano dei conti standard...

Dettagli