Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria"

Transcript

1 Esercitazione 10 Strutture ed Enumerazioni Allocazione dinamica di memoria

2 ESERCIZIO Scrivere una funzione che, dato un array di interi bidimensionale di dimensione n n, calcoli e stampi la somma degli elementi che stanno sotto, sopra e sulla diagonale principale somma degli elementi sotto la diagonale: somma degli elementi sopra la diagonale: somma degli elementi sulla diagonale:

3 Funzione somma */ la funzione somma utilizza i puntatori per restituire i tre valori richiesti. */ void somma (int a [ MAX_N][MAX_N], int n, int *somma_sotto, int *somma_sopra, int *somma_diag) { int i, j; */ inizializzazione delle variabili per le somme */ *somma_sotto = 0; *somma_sopra = 0; *somma_diag = 0;

4 */ somma degli elementi sotto la diagonale principale */ for (i=1; i<n; i++) for (j =0; j<i ; j++) *somma_sotto +=a[i][j]; */ somma degli elementi sopra la diagonale principale */ for (i=0; i<n-1; i++) for (j =i+1; j<n ; j++) *somma_sopra +=a[i][j]; */ somma degli elementi sulla diagonale principale */ for (i=0; i < n; i++) *somma_diag +=a[i][i]; return ; }

5 Typedef La parola chiave typedef viene usata per assegnare un alias a un qualsiasi tipo, fondamentale o derivato. Esempio typedef char * Stringa; Stringa s1, s2; Il tipo char *, cioè il tipo puntatore a carattere, viene ribattezzato Stringa. Quindi si definiscono due variabili, s1 e s2 di tipo Stringa.

6 Typedef typedef int Interi; // Il tipo int viene ribattezzato Interi typedef Stringa Lista_spesa[30]; Lista_spesa tab; tab[0]= pane ; tab[1]= latte ; Lista_spesa è il tipo array di 30 puntatori a carattere. La variabile tab di tipo Lista_spesa è un array di puntatori a carattere, di cui inizializzo i prime due.

7 Tipi derivati A partire dai tipi fondamentali (int, float, double, char) è possibile costruire nuovi tipi, detti tipi derivati. Gli array e i puntatori sono esempi di tipi derivati, nel senso che per essere specificati hanno bisogno di riferirsi a un tipo base. Altri esempi di tipi derivati sono i tipi structure (strutture) i tipi enumerazione

8 Tipi structure Esempio Il seguente tipo struttura rappresenta il concetto di data. struct Data { int giorno; char *mese; int anno; } ; /* dichiarazione del tipo data */ Questa dichiarazione introduce un nuovo tipo, il tipo Data. È ora possibile dichiarare variabili di tipo struct Data nel seguente modo: struct Data ieri, oggi; /* ieri e oggi sono variabili di tipo struct Data */ La variabile oggi è una variabile strutturata composta di tre campi: due di tipo int - giorno e anno - e una di tipo stringa - mese.

9 Tipi structure La sintassi generale per la definizione di un tipo struttura è: struct nome_struttura { tipo_campo1 nome_campo1; tipo_campo2 nome_campo2;... tipo_campon nome_campon; } ; Gli elementi di una struttura sono detti campi; essi sono identificati da un nome e da un tipo che può essere sia fondamentale che derivato. La struttura così definita è un nuovo tipo a tutti gli effetti. Si possono definire variabili di tipo struct nome_struttura come segue: struct nome_struttura nome_variabile;

10 typedef e tipi structure Esempio typedef struct { int giorno; char *mese; int anno; } Data ; /* dichiarazione del tipo Data */ Questa dichiarazione introduce un nuovo nome per il tipo struttura. È ora possibile dichiarare variabili di tipo Data nel seguente modo: Data ieri, oggi; /* ieri e oggi sono variabili di tipo Data */

11 Esempio La seguente definizione introduce la struttura Automobile. Vengono dichiarate quindi due variabili di tipo Automobile, a1 e a2. typedef struct { char *marca; char *modello; int numero_vendute; } Automobile; Automobile a1, a2;

12 Tipi structure Per accedere ai campi di una variabile di tipo struttura si fa uso dell operatore punto (.) ESEMPIO Si consideri la struttura Data e le variabili ieri e oggi di tipo Data. Possiamo inizializzare le variabili ieri e oggi nel seguente modo: oggi.giorno = 30; oggi.mese = Novembre ; oggi.anno = 2007; ieri.anno = oggi.anno; printf( %d %s %d, oggi.giorno, oggi.mese, oggi.anno);

13 Operazioni su strutture Si possono assegnare variabili di tipo struttura a variabili dello stesso tipo struttura. Data d1, d2;... d1 = d2; Nota: questo permette di assegnare interi vettori. typedef struct { int a[12]; char b; } Prova x, y;... x = y; Non è possibile effettuare il confronto tra due variabili di tipo struttura. Data d1, d2; if (d1 == d2)... Errore!

14 Esempio /* definizione della struttura Automobile */ #define <stdio.h> typedef struct { char *marca; char *modello; int numero_vendute; } Automobile; int main ( ) { Automobile a1, a2; (continua)

15 a1.marca = FERRARI ; a1.modello = F40 ; a1.numero_vendute = 200; a2.marca = OPEL ; a2.modello = ASTRA ; a2.numero_vendute = 2000; printf ( marca auto = %s\n, a1.marca); printf ( modello auto = %s\n, a1.modello); printf ( vendute = %d\n, a1.numero_vendute); printf ( marca auto = %s\n, a2.marca); printf ( modello auto = %s\n, a2.modello); printf ( vendute = %d\n, a2.numero_vendute); }

16 ESERCIZIO Stabilire se il seguente codice e sintatticamente corretto e, in tal caso, cosa produce a video. typedef struct { int a; } S1; typedef struct { int a; } S2; S1 bob, ric; S2 gio; bob.a = 30; ric = bob; gio = bob; printf ( %d, %d, %d \n, bob.a, ric.a, gio.a);

17 SOLUZIONE typedef struct { int a; } S1; typedf struct { int a; } S2; S1 bob, ric; S2 gio; bob.a = 30; ric = bob; gio = bob; /* errore: non si può assegnare una variabile di tipo S1 a una di tipo S2 */ printf ( %d, %d, %d \n, bob.a, ric.a, gio.a);

18 ESERCIZIO Stabilire se il seguente codice e sintatticamente corretto e, in tal caso, cosa produce a video. typedef struct { int giorno; char *mese; int } Data; anno; Data *pd, compleanno; pd = &compleanno; *pd.giorno = 30; *pd.mese = Novembre ; *pd.anno = 2007; printf ( Il mio compleanno e il: %d, %s, %d \n, compleanno.giorno, compleanno.mese, compleanno.anno);

19 SOLUZIONE typedf struct { int giorno; char *mese; int anno; } Data; Data *pd, compleanno; pd = &compleanno; *pd.giorno = 30; /* errore: poiché l operatore. ha priorità *pd.mese = Novembre ; maggiore rispetto all operatore * bisogna *pd.anno = 2007; usare le parentesi: (*pd).giorno..., (*pd).mese..., (*pd).anno... */ printf ( Il mio compleanno e il: %d, %s, %d \n, compleanno.giorno, compleanno.mese, compleanno.anno);

20 ESERCIZIO Stabilire se il seguente codice e sintatticamente corretto e, in tal caso, cosa produce a video. typedef struct { int giorno; char *mese; int anno; } Data; Data compleanno = { 30, Novembre, 2007 }; Data *pd; pd = &compleanno; pd -> giorno = compleanno -> giorno; pd -> mese = compleanno -> mese; pd -> anno = compleanno -> anno; printf ( Il mio compleanno : %d, %s, %d \n, pd.giorno, pd.mese, pd.anno);

21 SOLUZIONE typedef struct { int giorno; char *mese; int anno; } Data; Data compleanno = { 30, Novembre, 2007 }; Data *pd; pd = &compleanno; pd -> giorno = compleanno -> giorno; pd -> mese = compleanno -> mese; pd -> anno = compleanno -> anno; / / errore: compleanno.giorno / / errore: compleanno.mese / / errore: compleanno.anno printf ( Il mio compleanno : %d, %s, %d \n, pd.giorno, pd.mese, pd.anno); / / errore: pd->giorno, pd->mese, pd->anno

22 Esercizio Scrivere una funzione che, dato un puntatore a una variabile di tipo Data, restituisce il numero del mese relativo alla data puntata dal puntatore in caso di errore, restituisce 0.

23 SOLUZIONE int numero_mese (Data *pd) { if (! strcmp(pd -> mese, Gennaio )) /* l operatore -> permette return (1); di accedere direttamente ai campi di una variabile strutturata puntata da un puntatore */ if (! strcmp (pd -> mese, Febbraio )) return (2);... if (! strcmp (pd -> mese, Dicembre )) return (12); return (0); }

24 Strutture di Strutture In C è possibile definire strutture di strutture Regola: le strutture che compaiono nei campi di una struttura devono essere state definite prima della struttura che le contiene.

25 Esempio Definire una struttura utile per la gestione di un autosalone. typedef struct { int giorno; char *mese; int anno; } Data; typedef struct { char *marca; char *modello; int numero_vendute; Data data_prima_produzione; } Automobile; Automobile salone[100];

26 Esempio Definire una struttura utile per la gestione di un conto corrente. typedef struct { int giorno; char *mese; int anno; } Data; typedef struct { int numero_conto; char nome[80]; float bilancio; Data ultimo_movimento; } Conto_corrente;

27 Tipi enumerazione Spesso si ha l esigenza di definire un insieme finito di valori alternativi da associare ad un oggetto. Ad esempio i 4 semi delle carte da poker sono cuori, fiori, quadri, picche. In genere si memorizzano questi valori associando un numero costante univoco a ciascuno. Perciò si potrebbe scrivere const int cuori = 1; const int fiori = 2; const int quadri = 3; const int picche = 4; Questa tecnica ha dei punti deboli. Il principale è che non c e modo di restringere l insieme dei valori assegnabili ad una variabile ai soli cuori, fiori, quadri, picche.

28 Tipi enumerazione I tipi enumerazione forniscono un metodo alternativo non solo per definire ma anche per raggruppare insiemi di costanti. Ad esempio: enum Seme {cuori = 1, fiori, quadri, picche} ; Così ho dichiarato un nuovo tipo enum Seme, che è un tipo enumerazione. I valori che appartengono al tipo enum Seme sono solo quattro: cuori, fiori, quadri, picche, e corrispondono agli interi 1,2,3 e 4. Nota: per default, al primo enumeratore è assegnato il valore 0 e ai successivi i valori 1,2,ecc... Noi abbiamo assegnato a cuori il valore 1. A fiori è assegnato automaticamente il valore 2, a quadri il valore 3 e a picche il valore 4.

29 typedef e tipi enumerazione Esempio: typedef enum Seme {cuori = 1, fiori, quadri, picche} Seme ; Seme p, s; Così ho rinominato il tipo enum Seme con il nuovo nome Seme. p ed s sono due variabili di tipo Seme.

30 Tipi enumerazione Oggetti di tipo enumerazione possono essere definiti, prendere parte a espressioni ed essere passati come argomenti a funzioni. Un oggetto di tipo enumerazione può essere inizializzato con - oppure è possibile assegnargli - solo un oggetto dello stesso tipo enumerazione. Esempio typedef enum Seme {cuori = 1, fiori, quadri, picche} Seme; Seme s = quadri; /* corretto, corrisponde a s = 3 */ Seme p = 4; /* corretto (ma brutto ), equivale a p = picche */ s = p; /* corretto */

31 Tipi enumerazione Non è possibile stampare i nomi effettivi degli enumeratori. Esempio typedef enum Seme {cuori = 1, fiori, quadri, picche} Seme; Seme s = quadri; printf( s = %d, s); /* stampa s = 3 */

32 Esercizio Dire cosa stampa il seguente frammento di codice. typedef enum Seme {cuori = 1, fiori, quadri, picche} Seme; typed struct { Seme seme; int numero; } Carta; Carta carta1, carta2; carta1.seme = cuori; carta1.numero = 1; carta2.seme = quadri; carta2.numero = 10; carta1 = carta2; printf( seme carta 1 = %d\n, carta1.seme); printf( numero carta 1 = %d\n, carta1.numero);

33 Soluzione typedef enum Seme {cuori = 1, fiori, quadri, picche} Seme; typedef struct { Seme seme; int numero; } Carta; stampa Carta carta1, carta2; carta1.seme = cuori; seme carta 1 = 3 carta1.numero = 1; numero carta 1 = 10 carta2.seme = quadri; carta2.numero = 10; carta1 = carta2; printf( seme carta 1 = %d\n, carta1.seme); printf( numero carta 1 = %d\n, carta1.numero);

34 Esercizio Consideriamo il seguente tipo di dato: typedef struct Student{ char cognome[15]; char nome[15] int voto; } Studente; Vogliamo costruire delle procedure che ci permettano di lavorare con tabelle di studenti: riempirle (con dati immessi dall utente), ordinarle in ordine alfabetico, stamparle, ecc.

35 void leggi(studente classe[], int nstudenti){ int i; for ( i = 0 ; i < nstudenti ; i++ ){ } } printf("\ncognome = "); scanf("%s", classe[i].cognome); printf("nome = "); scanf("%s", classe[i].nome); printf("voto = "); scanf("%d", &classe[i].voto) ; Viene passato il riferimento all array (nessuna copia!) void scrivi(studente classe[], int nstudenti){ int i; for ( i = 0 ; i < nstudenti ; i++ ){ printf("\n cognome = %s classe[i].cognome); printf("\n nome = %s", classe[i].nome); printf("\n voto = %d\n", classe[i].voto); } }

36 Ordinamento per inserzione passi successivi 0 1 i-1 i Parte già ordinata Elemento da considerare adesso

37 Ordinamento per inserzione passi successivi 0 1 i-1 i temp 5 Elemento da considerare adesso

38 Ordinamento per inserzione passi successivi 0 1 i-1 i temp 5

39 Ordinamento per inserzione passi successivi 0 1 i-1 i temp 5

40 Ordinamento per inserzione passi successivi 0 1 i-1 i Parte già ordinata temp Prossimo elemento da considerare

41 Torniamo all esercizio... La tecnica di ordinamento per inserzione si applica ad array di qualsiasi tipo. In questo caso particolare, due elementi stud1 e stud2 dell array sono ordinati se stud1.cognome < stud2.cognome oppure stud1.cognome == stud2.cognome e stud1.nome < stud2.nome rispetto all ordine lessicografico (quello dell elenco telefonico!)

42 Ordinamento int maggiore(studente p, Studente q){ return (strcmp(p.cognome, q.cognome)>0 (strcmp(p.cognome, q.cognome)==0 && strcmp(p.nome, q.nome)>0)); } void inserisci( Studente a[], int i ){ int h; Studente temp = a[i] ; for ( h = i ; h > 0 && maggiore(a[h-1],temp); h-- ){ a[h] = a[h-1]; } a[h] = temp ; } void ordina(studente a[], int nstudenti){ int i; for (i=1; i<nstudenti; i++) inserisci(a,i); }

43 Fine esercizio... A questo punto non rimane che scrivere il programma principale... #include<stdio.h> #include <string.h> #define NUM_STUDENTI int main(void){ Studente classe[num_studenti]; int nstud = 120; } leggi(classe, nstud); scrivi(classe, nstud); ordina(classe, nstud); scrivi(classe,nstud);

44 Esercizio Dichiarare un tipo enumerazione Colore che rappresenta i due colori delle pedine degli scacchi (bianco e nero), ed un tipo enumerazione Personaggio che rappresenta i diversi tipi di pedina (re, regina, alfiere, cavallo, torre e pedone). typedef enum Colore { bianco, nero } Colore; typedef enum Personaggio { re, regina, alfiere, cavallo torre, pedone } Personaggio;

45 Esercizio Dichiarare un tipo record Pedina, che rappresenta una pedina degli scacchi, con due campi: colore e personaggio, di tipo Colore e Personaggio, respettivamente. typedef struct { Colore colore; Personaggio personaggio; } Pedina;

46 Esercizio Dichiarare un tipo record Casella, che rappresenta una casella della scacchiera, ed è un record di due campi: colore (il colore della casella, di tipo Colore) e pezzo, un riferimento ad una variabile di tipo Pedina (il riferimento sarà NULL se la casella non contiene nessuna pedina, altrimenti conterrà l indirizzo di una variabile di tipo Pedina). typedef struct { Colore colore; Pedina *pezzo; } Casella;

47 Esercizio Dichiarare il tipo Scacchiera, i cui elementi sono tabelle bidimensionali di dimensione 8 per 8 aventi come tipo base il tipo Casella. Un valore di tipo Scacchiera rappresenta una possibile configurazione della scacchiera. typedef Casella Scacchiera [8][8]; Scacchiera s;

48 Esercizio Utilizzando i tipi definiti precedentemente, inizializzare una variabile s di tipo Scacchiera in modo che rappresenti una scacchiera in cui tutte le caselle sono nere e sia presente solo il re bianco in posizione (0,0). Scacchiera s; int i, j; Pedina *king; for (i=0; i<8; i++) for (j=0; j<8; j++) { s[ i ][ j ].colore = nero; s[ i ][ j ].pezzo = NULL; } king = (Pedina*) malloc(sizeof(pedina)); king ->colore = bianco; king ->personaggio = re; s[0][0].pezzo = king;

49 Esercizio Utilizzando il modello ambiente-memoria, descrivere graficamente la situazione al termine dei comandi necessari a realizzare quanto richiesto dall esercizio precedente. ambiente memoria Scacchiera s Pedina *king stack nero nero NULL nero NULL heap bianco re nero NULL...

50 Esercizio Utilizzando i tipi definiti negli esercizi precedenti, scrivere la definizione di una funzione che, prendendo come parametro attuale un valore s di tipo Scacchiera verifica se la torre nera è presente nella scacchiera s. La funzione restituisce 1 se la torre nera è presente, altrimenti restituisce 0.

51 Soluzione int cercatorrenera (Scacchiera s) { int i, j; for (i=0; i<8; i++) for (j=0; j<8; j++) if ((s[i][j].pezzo!= NULL) && ((s[i][j].pezzo)->colore == nero) && ((s[i][j].pezzo)->personaggio == torre) ) return 1; } return 0;

52 Allocazione dinamica typedef struct { char titolo[30]; char autore[15]; } Libro; Libro titolo Libro *lib; lib = (Libro *) malloc (sizeof(libro)); printf( Inserisci titolo senza spazi: ); scanf( %s, lib -> titolo); printf( Inserisci autore: ); scanf( %s, lib -> autore); autore

53 Allocazione dinamica typedef struct { char titolo[30]; char autore[15]; } Libro; Libro titolo /* altro modo di inizializzare */ Libro *lib; lib = (Libro *) malloc (sizeof(libro)); autore strcpy( lib -> titolo, La divina commedia ); strcpy( lib -> autore, Dante ); NOTA: Se inserisco Harry Potter e l ordine della fenice, si esce dai limiti!!! E se inserisco Iliade spreco spazio

54 Allocazione dinamica typedef struct { char *titolo; char *autore; } Libro; Libro *lib; Libro lib = (Libro *) malloc (sizeof(libro)); /* così ho allocato spazio solo per due puntatori */ titolo /* prima di inserire le stringhe per titolo e autore autore occorre allocare lo spazio necessario a contenerle */

55 Allocazione dinamica typedef struct { char *titolo; char *autore; } Libro; Libro titolo Libro *lib; lib = (Libro *) malloc (sizeof(libro)); lib->titolo =(char *) malloc (sizeof(char)*40); autore lib->autore =(char *) malloc (sizeof(char)*15); strcpy( lib->titolo, Harry Potter e l ordine della fenice ); strcpy( lib->autore, J.K. Rowling );

56 Allocazione dinamica /* così posso usare la memoria in modo efficiente: */ Libro *lib2; lib2 = (Libro *) malloc (sizeof(libro)); lib2->titolo =(char *) malloc (sizeof(char)*7); lib2->autore =(char *) malloc (sizeof(char)*6); strcpy( lib2->titolo, Iliade ); Libro strcpy( lib2->autore, Omero ); titolo I l i a d e \0 O m e r o \0 autore

Esercitazione 9. Strutture ed Enumerazioni. Allocazione dinamica di memoria

Esercitazione 9. Strutture ed Enumerazioni. Allocazione dinamica di memoria Esercitazione 9 Strutture ed Enumerazioni Allocazione dinamica di memoria Typedef La parola chiave typedef viene usata per assegnare un alias a un qualsiasi tipo, fondamentale o derivato. Esempio typedef

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

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica I tipi strutturati: gli array e le strutture Claudio De Stefano - Corso di Fondamenti di Informatica 1 arrays un array (o vettore) è una sequenza di oggetti dello stesso

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

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Record in C: il costruttore struct.

Record in C: il costruttore struct. Record in C: il costruttore struct. Le variabili di tipo record e i nuovi tipi record si dichiarano in C tramite il costruttore di tipo struct:. ::= ;

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

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

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

http://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

http://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( ) 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

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore

Dettagli

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di

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

Appello di Informatica B

Appello di Informatica B Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

INFORMATICA - I puntatori Roberta Gerboni

INFORMATICA - I puntatori Roberta Gerboni 1 2 I puntatori in C++ Il puntatore un tipo di dato scalare, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

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

Esame del 3 febbraio 2010

Esame del 3 febbraio 2010 Fondamenti di Informatica CdL in Ingegneria Gestionale a.a. 2009/2010 Docente: Andrea Prati Esame del 3 febbraio 2010 Esercizio 1 Vettori Sia data un vettore (array monodimensionale) di interi: int VETT[N];

Dettagli

Grammatica di base: Pointers

Grammatica di base: Pointers Grammatica di base: Pointers Esistono I puntatori a funzioni. Bisogna esplicitare esattamente il tipo di ritorno e il tipo di argomento. Per evitare ambiguità con il prefisso * nel declarator, il nome

Dettagli

Lab 11 Gestione file di testo"

Lab 11 Gestione file di testo Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 11 Gestione file di testo" Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome

Dettagli

Esempio: Array di struct

Esempio: Array di struct Esempio: Array di struct Scrivere un programma C che definisca la struttura esame, composta dal nome dell esame (stringa) e dal voto (intero). Si leggano poi da terminale n esami, con n definito dall utente

Dettagli

puntatori Lab. Calc. AA 2007/08 1

puntatori Lab. Calc. AA 2007/08 1 puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015 COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: Rappresentare i numeri 43 e 81 (in base 10) in notazione binaria in complemento

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

Linguaggio C - Stringhe

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

Dettagli

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015 COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Le stringhe. Le stringhe

Le stringhe. Le stringhe Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è

Dettagli

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili

Indirizzo di una funzione. Puntatori a funzioni. Definizione di variabili. Definizione di variabili Indirizzo di una funzione 2 Puntatori a funzioni Ver. 2.4 Si può chiamare una funzione utilizzando l indirizzo di memoria dal quale inizia il codice eseguibile della funzione stessa L indirizzo di memoria

Dettagli

Gestione delle stringhe in C

Gestione delle stringhe in C Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

void funzioneprova() { int x=2; cout<<dentro la funzione x=<<x<<endl; } FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Puntatori. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Puntatori Anno Accademico 2010/2011 Francesco Tortorella Variabili, registri ed indirizzi Abbiamo visto che la definizione di una variabile implica l allocazione (da parte del compilatore)

Dettagli

Esercizio 1. Esercizio 2

Esercizio 1. Esercizio 2 Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Definizione di nuovi tipi in C

Definizione di nuovi tipi in C Definizione di nuovi tipi in C typedef Ancora sui tipi di dato Ogni elaboratore è intrinsecamente capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe

Dettagli

Compito di Fondamenti di Informatica

Compito di Fondamenti di Informatica Compito di Fondamenti di Informatica In un magazzino viene utilizzato un archivio informatico, nel quale vengono memorizzate le informazioni relative ai prodotti contenuti nel magazzino e che ne permette

Dettagli

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere

Dettagli

Esercizio 1. Esercizio 1

Esercizio 1. Esercizio 1 Esercizio 1 Un registratore di cassa registra su di un file binario alcuni dati relativi agli scontrini emessi. In particolare, tramite una struttura dati di nome scontrino, il registratore di cassa tiene

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

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

EXCEL FUNZIONI PRINCIPALI

EXCEL FUNZIONI PRINCIPALI EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")

Dettagli

Caratteri e stringhe Esercizi risolti

Caratteri e stringhe Esercizi risolti Esercizi risolti 1 Esercizio: Conta vocali e consonanti Scrivere un programma in linguaggio C che legga una frase introdotta da tastiera. La frase è terminata dall introduzione del carattere di invio.

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

http://www.programmiamo.altervista.org/c/oop/o...

http://www.programmiamo.altervista.org/c/oop/o... PROGRAMMIAMO Programma per la gestione di un conto corrente C++ - Costruttore e distruttore C++ Home Contatti Supponiamo ora di voler scrivere un programma a menu per la gestione di un conto corrente bancario.

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti) (Esercizi Tratti da Temi d esame degli ordinamenti precedenti) Esercizio 1 L'agenzia viaggi GV - Grandi Viaggi vi commissiona l'implementazione della funzione AssegnaVolo. Tale funzione riceve due liste

Dettagli

Strutture dati in C e loro traduzione in assembler MIPS 1 Direttive assembler per l'allocazione dei dati Prima di iniziare a trattare il problema dell'allocazione delle varie strutture dati, introduciamo

Dettagli

Il tipo di dato astratto Pila

Il tipo di dato astratto Pila Il tipo di dato astratto Pila Il tipo di dato Pila Una pila è una sequenza di elementi (tutti dello stesso tipo) in cui l inserimento e l eliminazione di elementi avvengono secondo la regola seguente:

Dettagli

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

Esercizio: gestione di un conto corrente

Esercizio: gestione di un conto corrente Esercizio: gestione di un conto corrente Si realizzi un conto corrente bancario mediante: - una ASTRAZIONE DI DATO - un TIPO DI DATO ASTRATTO Il conto corrente è caratterizzato dalle seguenti informazioni:

Dettagli

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente.

Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Ricorsione Funzioni ricorsive Una funzione è detta ricorsiva se chiama, direttamente o indirettamente, se stessa. In C tutte le funzioni possono essere usate ricorsivamente. Un esempio di funzione ricorsiva

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Operazioni su Liste Doppie e Circolari 2 1 Indice Liste puntate semplici: Gli elementi sono

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Laboratorio di Fondamenti di Informatica anno accademico 2015-2016. Esercizi proposti il 09-12-2015

Laboratorio di Fondamenti di Informatica anno accademico 2015-2016. Esercizi proposti il 09-12-2015 Laboratorio di Fondamenti di Informatica anno accademico 2015-2016 Esercizi proposti il 09-12-2015 ESERCIZI GUIDATI Gli esercizi saranno svolti in aula dal docente di laboratorio per illustrare alcuni

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Linguaggio C - Funzioni

Linguaggio C - Funzioni Linguaggio C - Funzioni Funzioni: Il linguaggio C è di tipo procedurale; ogni programma viene suddiviso in sottoprogrammi, ognuno dei quali svolge un determinato compito. I sottoprogrammi si usano anche

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Programmazione. Laboratorio. Roberto Cordone DI - Università degli Studi di Milano

Programmazione. Laboratorio. Roberto Cordone DI - Università degli Studi di Milano Gestione della memoria p. 1/11 Programmazione Laboratorio Roberto Cordone DI - Università degli Studi di Milano Tel. 02 503 16235 E-mail: roberto.cordone@unimi.it Ricevimento: su appuntamento Lezioni:

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il

Dettagli

Puntatori Passaggio di parametri per indirizzo

Puntatori Passaggio di parametri per indirizzo Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Puntatori Passaggio di parametri per indirizzo Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica

Dettagli

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015. Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.V.2015 VINCENZO MARRA Indice Parte 1. Input/Output standard dalla console 2 Esercizio 1 2 Eco

Dettagli

MANUALE EDICOLA 04.05

MANUALE EDICOLA 04.05 MANUALE EDICOLA 04.05 Questo è il video che si presenta avviando il programma di Gestione Edicola. Questo primo video è relativo alle operazioni di carico. CARICO Nello schermo di carico, in alto a sinistra

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente

Dettagli

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni Esercizio 1 Nella classe definita di seguito indicare quali sono le variabili di istanza, quali sono le variabili

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli