Funzioni. Unità 5. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
|
|
- Antonino Romano
- 5 anni fa
- Visualizzazioni
Transcript
1 Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi
2 Docenti Metodi Numerici prof. Vittoria Bruni Programmazione prof. Domenico Daniele Bloisi Sito del corso Nota: %7E corrisponde alla tilde ~ Pagina 2
3 Orario delle Lezioni Lunedì Martedì Giovedì Venerdì Aula 15, Via Scarpa 14 Pagina 3
4 Informazioni Generali Ing. Domenico Daniele Bloisi, PhD Dipartimento di Ingegneria Informatica Automatica e Gestionale Via Ariosto 25 (adiacente Piazza Dante, A fermate Manzoni, Vittorio Emanuele, Tram 3 fermata via Labicana) mailto:bloisi@dis.uniroma1.it Pagina 4
5 Ricevimento Martedì DIS via Ariosto 25 Aula docenti adiacente aula A4 Si consiglia di inviare una per conferma e di controllare preventivamente la bacheca degli avvisi Pagina 5
6 Sommario Definizione di funzioni Passaggio dei parametri Esecuzione di una funzione Variabili dichiarate in una funzione: campo di azione Overloading di funzioni Organizzazione di un programma Domini definiti induttivamente Ricorsione e funzioni ricorsive Gestione della memoria a run-time Ricorsione multipla Pagina 6
7 Astrazione sulle operazioni: funzioni L'astrazione sulle operazioni è supportata da tutti i linguaggi di programmazione attuali (Java, C#, C++, C, Pascal, Fortran, Lisp, ecc.). In C++ l'astrazione sulle operazioni si realizza attraverso la nozione di funzione. Una funzione può essere vista come una scatola nera che prende dei parametri in ingresso e restituisce dei risultati o compie delle azioni. Pagina 7
8 Definizione di funzioni Sintassi intestazione blocco intestazione è l intestazione della funzione ed ha la seguente forma: tiporisultato nomefunzione (parametriformali) dove tiporisultato è il tipo del risultato restituito dalla funzione oppure void se non viene restituito alcun risultato nomefunzione è il nome della funzione parametriformali è una lista di dichiarazioni di parametri (tipo e nome) separate da virgola; ogni parametro è una variabile; la lista di parametri può anche essere vuota blocco è il corpo della funzione contenente le istruzioni che saranno eseguite all invocazione della funzione stessa; esso ha la forma: { istruzioni Pagina 8
9 Semantica L'intestazione indica il nome della funzione, il numero e il tipo dei parametri formali e il tipo dell'eventuale valore restituito. Il corpo della funzione specifica le istruzioni che devono essere eseguite quando essa viene attivata. I parametri formali servono a passare informazioni da elaborare nel corpo della funzione. I parametri formali vengono utilizzati nel corpo della funzione esattamente come variabili già inizializzate. L'eventuale risultato restituito è il valore dell'invocazione della funzione. Pagina 9
10 Esempio La funzione main ha la forma int main () {... che equivale a int main (void) {... Pagina 10
11 Risultato di una funzione: l istruzione return Sintassi return espressione ; dove espressione è un espressione il cui valore è compatibile con il tipo del risultato dichiarato nell intestazione della funzione. Pagina 11
12 Semantica L istruzione return eseguita all interno di una funzione termina l esecuzione della stessa e restituisce il risultato alla parte di programma dove è stata invocata la funzione. Pagina 12
13 Esempi int main() { return 0; // terminazione normale del programma Se il tipo del risultato della funzione è void, l istruzione return si può omettere, oppure può essere usata semplicemente per interrompere l esecuzione della funzione stessa. La sintassi dell istruzione è in questo caso: return; Nota: l'esecuzione dell'istruzione return fa sempre terminare la funzione, anche se ci sono altre istruzioni che seguono. Pagina 13
14 Mancato return #include <iostream> #include <cmath> using namespace std; double radice(double x) { double r = sqrt(x); 1) Verificare se il compilare g++ segnala eventuali errori 2) In caso di avvenuta compilazione, provare ad eseguire il programma int main() { cout << radice(4.0) << endl; Pagina 14
15 Esempi di definizione di funzioni Esempio 1 void stampasaluto() { cout << "Buon giorno!" << endl; Esempio 2 double dist(double x1, double y1, double x2, double y2) { return sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2)); Pagina 15
16 Esempio: potenza tramite definizione di due funzioni int moltiplicazione(int moltiplicando, int moltiplicatore) { int prodotto = 0; while (moltiplicatore > 0) { moltiplicatore--; prodotto = prodotto + moltiplicando; return prodotto; Pagina 16
17 Esempio: potenza tramite definizione di due funzioni int potenza(int base, int esponente) { int risultato = 1; while (esponente > 0) { esponente--; risultato = moltiplicazione(risultato, base); return risultato; Pagina 17
18 Passaggio dei parametri La definizione di una funzione presenta nell intestazione una lista di parametri formali. Questi parametri sono utilizzati come variabili all interno del corpo della funzione. L invocazione di una funzione contiene i parametri da utilizzare come argomenti della funzione stessa. Questi parametri sono detti parametri attuali, per distinguerli dai parametri formali presenti nell intestazione della definizione della funzione. Quando, attraverso una invocazione, attiviamo una funzione, i parametri attuali devono essere legati ai parametri formali. Esistono diversi modi possibili di effettuare questo legame. Pagina 18
19 Passaggio dei parametri C++ prevede tre modi per il passaggio dei parametri: passaggio per valore passaggio per riferimento passaggio mediante puntatori Pagina 19
20 Passaggio dei parametri per valore Sia pa un parametro attuale presente nell invocazione della funzione e pf il corrispondente parametro formale nella definizione della funzione: legare pa a pf per valore significa, al momento della attivazione della funzione: 1. valutare il parametro attuale pa (che in generale è un espressione) 2. associare una locazione di memoria al parametro formale pf 3. inizializzare tale locazione con il valore di pa. Pagina 20
21 Passaggio dei parametri per valore Il parametro formale pf si comporta esattamente come una variabile creata al momento dell attivazione della funzione e inizializzata con il valore del parametro attuale pa. Alla fine dell esecuzione del corpo della funzione la memoria riservata per il parametro formale viene rilasciata e il suo valore si perde. Nota: i valori delle variabili che compaiono nell espressione pa non vengono alterati dall esecuzione della funzione. Pagina 21
22 Esempio di passaggio per valore int raddoppia(int x) { x = x * 2; return x; int main() { int a, b; a = 5; b = raddoppia(a + 1); cout << a << " " << b << endl; Pagina 22
23 Esempio di passaggio per valore 1. vengono definite due variabili intere a, b e a viene inizializzata al valore 5; 2. vengono valutati i parametri attuali: nel nostro caso il parametro attuale è l espressione a + 1 che ha come valore 6; 3. viene individuata la funzione da eseguire, cercando la definizione di una funzione il cui prototipo sia conforme alla invocazione: il nome della funzione deve essere lo stesso e i parametri attuali devono corrispondere in numero e tipo ai parametri formali: nel nostro caso la funzione che cerchiamo deve avere la segnatura raddoppia(int); Pagina 23
24 Esempio di passaggio per valore 4. viene sospesa l esecuzione dell unità di programma chiamante: nel nostro caso la funzione main; 5. viene allocata la memoria per i parametri formali (considerati come variabili) e le variabili definite nella funzione (vedremo in seguito): nel nostro caso viene allocata la memoria per il parametro formale x; 6. viene assegnato il valore dei parametri attuali ai parametri formali: nel nostro caso il parametro formale x viene inizializzato con il valore 6; Pagina 24
25 Esempio di passaggio per valore 7. vengono eseguite le istruzioni del corpo della funzione invocata (a partire dalla prima): nel nostro caso il valore di x viene moltiplicato per 2 e diventa 12; 8. l esecuzione della funzione invocata termina (o per l esecuzione dell istruzione return o perché non ci sono altre istruzioni da eseguire): nel nostro caso incontriamo l istruzione return x; 9. viene deallocata la memoria utilizzata per i parametri formali e le variabili della funzione, perdendo qualsiasi informazione ivi contenuta: nel nostro caso viene eliminata la locazione di memoria corrispondente al parametro formale x; Pagina 25
26 Esempio di passaggio per valore 10. se la funzione restituisce un risultato, tale risultato diviene il valore dell espressione costituita dall invocazione nell unità di programma chiamante: nel nostro caso il risultato è 12; 11. si riprende l esecuzione dell unità di programma chiamante dal punto in cui era stata interrotta dall invocazione: il valore 12 viene assegnato alla variabile b. Nel passaggio di parametri per valore il contenuto delle variabili usate come parametri attuali non viene mai modificato. Il programma illustrato stampa quindi Pagina 26
27 Vantaggi del passaggio per valore E sicuro: le variabili del chiamante e del chiamato sono completamente disaccoppiate. Consente di ragionare per componenti e servizi: la struttura interna dei singoli componenti è irrilevante (la funzione può anche modificare il contenuto dei parametri formali, senza che ciò abbia alcun impatto sui valori dei parametri attuali nell ambiente del chiamante). Pagina 27
28 Limiti del passaggio per valore Il passaggio per valore ha una SEMANTICA PER COPIA Impedisce a priori di scrivere funzioni che abbiano come scopo quello di modificare i dati passati dall ambiente chiamante. Impedisce di restituire più di un risultato all ambiente chiamante (es. non è possibile creare una funzione che restituisca quoziente e resto di una divisione). Pagina 28
29 Esempio di passaggio per valore void swapval(int a, int b) { int temp; temp = a; a = b; b = temp; Cosa stampa questo programma? int main() { int x = 12, y = 27; cout << "x = " << x << " y = " << y << endl; swapval(x, y); cout << "x = " << x << " y = " << y << endl; Pagina 29
30 Passaggio dei parametri per riferimento La versione corretta del programma C++ che realizza l'effettivo scambio di valore delle variabili passate come parametri attuali necessita di un passaggio per riferimento Occorre un metodo per consentire alla funzione di poter manipolare le (fare riferimento alle) variabili dell ambiente del chiamante Pagina 30
31 Principi del passaggio per riferimento Una funzione deve poter dichiarare, nella sua intestazione, che un parametro costituisce un riferimento In tal caso: il parametro formale indicato come riferimento non è più una variabile locale inizializzata al valore del parametro attuale, ma è un riferimento alla variabile originale (parametro attuale) nell ambiente della funzione chiamante ogni modifica fatta al parametro formale, in realtà viene effettuata sul parametro attuale della funzione chiamante (le modifiche fatte dall ambiente chiamato si propagano all ambiente chiamante). Pagina 31
32 Passaggio parametri per riferimento Nel passaggio dei parametri per riferimento il parametro attuale fornito alla funzione è il riferimento (cioè l'indirizzo di memoria) di una variabile. La dichiarazione di un parametro passato per riferimento avviene usando il carattere & davanti al nome del parametro formale. void scambia(int &a, int &b) {... Pagina 32
33 Esempio: scambio di valori tra due variabili void swapref (int &i, int &j) { int temp; temp = j; j = i; i = temp; return; Pagina 33
34 Esempio: scambio di valori tra due variabili int main (){ int i = 1; int j = 2; cout << "i = " << i << endl; cout << "j = " << j << endl; swapref(i, j); cout << "after swapref" << endl; cout << "i = " << i << endl; cout << "j = " << j << endl; return 0; Pagina 34
35 Variabili locali Il corpo di una funzione può contenere dichiarazioni di variabili. Tali variabili vengono dette variabili locali. Una variabile ha due aspetti fondamentali campo d azione (è una nozione statica, che dipende dal testo del programma) tempo di vita (è una nozione dinamica, che dipende dall esecuzione del programma) Pagina 35
36 Campo d azione delle variabili locali Il campo d'azione (o scope) di una variabile è l'insieme delle unità di programma in cui la variabile è visibile (cioè accessibile ed utilizzabile). Il campo di azione di una variabile locale è il corpo della funzione in cui essa è dichiarata. Più in generale, una variabile dichiarata in un qualsiasi blocco ( istruzione {... ) è visibile in quel blocco (inclusi eventuali blocchi interni), ma non è visibile all'esterno del blocco stesso. Una variabile non può essere utilizzata nel corpo della funzione prima di essere dichiarata. Pagina 36
37 Esempio: campo di azione di variabili locali int raddoppia (int x) { return x*2; void stampa() { cout << a << endl; //ERRORE a non è definita int main() { int a = 5; a = raddoppia(a); stampa(); cout << a << endl; nella funzione stampa la variabile a non è visibile (perché definita nella funzione main). Pagina 37
38 Variabili globali In C++ le variabili globali, cioè definite al di fuori di una definizione di funzione, sono visibili in tutte le funzioni. In ogni funzione sono visibili le variabili dichiarate localmente e le variabili globali. Pagina 38
39 Esempio int a = 1; // dichiarazione globale di a void f1 () { cout << "In f1" << endl; cout << "a = " << a << endl; // cout << "b = " << b << endl; return; Errore in compilazione int main () { int b = 1; f1(); cout << "In main" << endl; cout << "a = " << a << endl; return 0; Pagina 39
40 Tempo di vita delle variabili Il tempo di vita di una variabile è il tempo in cui la variabile rimane effettivamente accessibile in memoria durante l'esecuzione. Le variabili locali ad una funzione vengono create al momento dell'attivazione della funzione (come i parametri formali) e vengono distrutte al momento dell'uscita dall'attivazione. Le variabili globali restano in vita per tutta la durata dell'esecuzione del programma. Il tempo di vita di una variabile è un concetto rilevante a tempo di esecuzione. Da esso dipende l insieme delle variabili utilizzabili in ciascun punto del programma. Pagina 40
41 Esempio: tempo di vita delle variabili locali int raddoppia (int x) { int temp = x*2; return temp; void stampa(int b) { cout << b << endl; int main() { int a = 5; a = raddoppia(a); a = raddoppia(a); stampa(a); cout << a << endl; Pagina 41
42 Esempio: tempo di vita delle variabili locali La variabile a inizia ad essere in vita quando viene eseguita la sua dichiarazione nella funzione main. Il parametro x della funzione raddoppia (che corrisponde ad una variabile locale) e la variabile locale temp iniziano ad essere in vita quando viene invocata la funzione raddoppia e muoiono, al termine della sua esecuzione. Ad ogni esecuzione di raddoppia corrispondono in esecuzione, diverse istanze di variabili. Analogamente il parametro x della funzione stampa nasce e muore con l esecuzione di stampa. Pagina 42
43 Nota: tempo di vita delle variabili locali Durante le esecuzioni delle funzioni raddoppia e stampa la variabile a rimane in vita anche se non è visibile. Pagina 43
44 Overloading (sovraccarico) delle funzioni C++ distingue le funzioni attraverso l intera segnatura e non solo dal nome. Quindi possiamo definire nella stessa classe più funzioni con lo stesso nome che si differenziano per il numero e tipo dei parametri formali (nota: l identificatore utilizzato per i parametri formali non è rilevante). Pagina 44
45 Overloading (sovraccarico) delle funzioni int somma(int x, int y) { return x+y; int somma(double x, double y) { return (int)(x+y); int somma(int x, int y, int z) { return x+y+z; Pagina 45
46 Organizzazione di un programma Programmi complessi possono essere organizzati in più file. Questo consente una maggiore leggibilità e possibilità di riuso. I file contenenti specifiche di programmi si distinguono in file di intestazione o header (estensione.h) file di implementazione (estensione.cpp) Nei file header vengono inserite solamente le dichiarazioni delle funzioni, mentre nei file di implementazione anche il corpo che implementa la funzione (definizione). Pagina 46
47 Organizzazione di un programma Solitamente la funzione main si trova in un file separato da quello in cui vengono definite altre funzioni. Ogni file che usa funzioni definite altrove deve includere il relativo file header (non il file con l implementazione.cpp!) Pagina 47
48 Esempio File f.h // dichiarazione delle funzioni // radicequadrata e stampa double radicequadrata(double x); void stampa(double x); Pagina 48
49 Esempio File f.cpp #include <iostream> #include <cmath> //implementazione della funzione radicequadrata double radicequadrata(double x) { return sqrt(x); // implementazione della funzione stampa void stampa(double x) { std::cout << x << std::endl; Pagina 49
50 Esempio File main.cpp #include "f.h" // implementazione della funzione main int main() { stampa(radicequadrata(25)); Pagina 50
51 Compilazione File multipli devono essere compilati indicando tutti (e soli) i file.cpp Esempio g++ -o test f.cpp main.cpp Pagina 51
52 Esercizi Esercizio 5.1 Scrivere una funzione che calcoli il volume di una sfera, dato il raggio. Scrivere un programma di prova che usi tale funzione, leggendo da tastiera il valore del raggio e stampando il volume della sfera con tale raggio. Esercizio 5.2 Scrivere una funzione che dati due valori reali a e b restituisca il massimo tra i due. Scrivere un programma di prova per tale funzione, leggendo l input da tastiera. Pagina 52
Funzioni. Unità 5. 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
DettagliIntroduzione al C. Unità 5 Funzioni
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 5 Funzioni D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 5 Definizione
DettagliFunzioni. Unità 1. 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
DettagliIstruzioni di Ciclo. Unità 4. 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
DettagliDefinizione di classi
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
DettagliVariabili. 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
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione
DettagliGestione della memoria
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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliFor e do. Unità 4. 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
DettagliSwitch. Unità 3. 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
DettagliVariabili. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale
DettagliPassaggio parametri puntatore
Passaggio parametri puntatore Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it
DettagliEreditarietà. Unità 9. 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
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliVariabili. Unità 2. 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
DettagliFunzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliTipi di dato. 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
DettagliGestione della memoria
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliPreprocessore. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Si ringrazia Raffaele Nicolussi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica,
DettagliTempo di vita e scope delle variabili
Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):
DettagliLinguaggio C: Funzioni Valeria Cardellini
Linguaggio C: Funzioni Valeria Cardellini Corso di Calcolatori Elettronici A.A. 2018/19 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Funzioni in
DettagliArray. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliRicorsione. Unità 5. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliIstruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliControllo del flusso
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliEsercizi Array. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliMatrici. Unità 7. 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
DettagliPassaggio parametri puntatore Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliConcetto 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
DettagliChar. Unità 2. 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
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
DettagliEsercizi Array Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliEsercitazione 6. 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
DettagliIstruzioni 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
DettagliMatrici. Parte 7. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
DettagliStringhe. Unità 8. 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
DettagliVisibilità e tempo di vita delle variabili. (più sintesi di alcuni concetti della prima parte del corso)
Visibilità e tempo di vita delle variabili (più sintesi di alcuni concetti della prima parte del corso) Struttura dei programmi C/C++ Un programma C/C++ deve essere contenuto in uno o più file (per ora
DettagliEsercizi con Array. Unità 7. 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
DettagliEsercitazione 6. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR. Domenico Daniele Bloisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliFor e do. Parte 4. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliPassaggio parametri puntatore
Passaggio parametri puntatore Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale
DettagliHeader. Unità 9. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale
DettagliLe funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità
Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliFUNZIONI. attribuire un nome ad un insieme di istruzioni parametrizzare l esecuzione del codice
Funzioni FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvono parti specifiche di un problema Una funzione permette di attribuire un nome ad un insieme di istruzioni
DettagliIstruzioni Condizionali
Istruzioni Condizionali Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio
DettagliFunzioni. Unità 1. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Alberto Pretto
Corso di Laboratorio di Informatica Ingegneria Clinica BCLR Domenico Daniele Bloisi Alberto Pretto Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica
DettagliDo...While() Break Continue Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Do...While() Break Continue Concetto di Funzione e Procedura METODI in Java Prof.Angela Bonifati 1 Istruzione while int vet1[] = new int[20]; int vet2[] = new int[20]; for(int
Dettagliint main(){ int numero; /* numero di cui voglio calcolare il fattoriale */ int fatt; /* memorizzo il fattoriale di numero */ int somma=0;
Problema: CALCOLARE LA SOMMA DEI FATTORIALI DEI PRIMI 100 NUMERI NATURALI 0!+1!+2! + 99! #include int fattoriale(int); Calcolo fattoriale int main(){ int numero; /* numero di cui voglio calcolare
DettagliFunzioni. (Passaggio dei parametri per riferimento) Passaggio dei parametri
Funzioni (Passaggio dei parametri per riferimento) Passaggio dei parametri Per passaggio dei parametri si intende l associazione fra parametri attuali e parametri formali che avviene al momento della chiamata
DettagliInformatica (A-K) 12. Linguaggio C -3
Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i
DettagliDefinizione 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
DettagliMETODI in Java. Prof.Angela Bonifati. Metodi e Sottoprogrammi
Fondamenti di Informatica METODI in Java Prof.Angela Bonifati 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile definire nuovi tipi di dati, tramite i metodi è possibile
DettagliElementi di Informatica
Corso di Laurea triennale in Ingegneria Chimica in condivisione con Corso di Laurea triennale in Ingegneria Navale e Scienze dei Materiali Elementi di Informatica A.A. 2016/17 prof. Mario Barbareschi Sottoprogrammi
DettagliEsercitazione 5. Unità Domenico Daniele Bloisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Unità 6-7-8 Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
Dettaglisqrt #include <iostream> #include <cmath> using namespace std; int main() { int x; cout << Inserire un numero \n ; cin >> x; int main()
Funzioni Fondamenti di Informatica C++: Funzioni Prof. Francesco Lo Presti #include int ; cout > ; double radice=sqrt(); cout
DettagliFondamenti di Informatica II 3. Funzioni in C++ (parte 1)
Introduzione alle funzioni in C++ Fondamenti di Informatica II 3. Funzioni in C++ (parte 1) Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2 Semestre Corso (A-M) int main() int n, fattoriale=1;
DettagliLe Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia
Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il
DettagliLe classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:
Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata
DettagliStringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliIl linguaggio C funzioni e puntatori
Salvatore Cuomo Il linguaggio C funzioni e puntatori Lezione n. 8 Parole chiave: Linguaggio C, procedure, funzioni. Corso di Laurea: Informatica Insegnamento: Programmazione II, modulo di Laboratorio Email
DettagliModularizzazione del software
Modularizzazione del software Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Subroutine e function DIS - Dipartimento di informatica e sistemistica
DettagliProgrammazione (imperativa)
Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00
DettagliFUNZIONI: IL MODELLO A RUN-TIME!
FUNZIONI: IL MODELLO A RUN-TIME! Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali
DettagliFor e do. 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
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliFunzioni. Unità 1. 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
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni
Dettaglinome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti
Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti
DettagliFunzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
DettagliVariabili. Programma principale: funzione main. Funzioni
Un programma descrive al computer, in estremo dettaglio, la sequenza di passi (istruzioni) necessari a svolgere un determinato compito o risolvere un particolare problema. Un linguaggio di programmazione
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliVariabili e Funzioni. Informatica 1 / 19
Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:
Dettaglipassaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad una funzione, in
I Parametri di tipo vettore I Il meccanismo del passaggio per valore di un indirizzo consente il passaggio di vettori come parametri di funzioni/procedure. I Quando si passa un vettore come parametro ad
DettagliInformatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento
DettagliFUNZIONI: IL MODELLO A RUN-TIME
FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali si
DettagliFUNZIONI. Esempi (pseudo-c): dare un nome a una espressione rendere tale espressione parametrica. float f(){ * sin(0.75); } float f1(int x) {
Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliLezione 6. Visibilità degli identificatori e tempo di vita degli oggetti
Lezione 6 Visibilità degli identificatori e tempo di vita degli oggetti Programmazione I Paolo Valente - 2009/2010 Ripasso dichiarazioni oggetti Finora abbiamo scritto le dichiarazioni di variabili e costanti
DettagliOperazioni sulle stringhe Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliNel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni
INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliPuntatori. Unità 6. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria
DettagliOOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi
OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 4
DettagliInizio programma principale. Preparare antipasto. Preparare. pasta. Sottoproblema 1 Sottoproblema 2
I SOTTOPROGRAMMI Inizio programma principale Apparecchiare la tavola antipasto primo secondo torta Servire dolci e liquori Fine Inizio sottoprogramma torta rompere le uova ungere la teglia Fine Approccio
DettagliElementi DI INFORMATICA. Linguaggio C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Elementi DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:
Dettagli