Programmazione Procedurale in Linguaggio C++

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Procedurale in Linguaggio C++"

Transcript

1 Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 3 Programmazione Modulare (a) versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Sottoprogrammi: Programmazione Modulare >> Sommario Sommario Introduzione Diagramma delle Chiamate Regole di Visibilità Dati Locali e Dati Globali Compilazione Separata File di Intestazioni ( Header ) Librerie e Riuso Interfaccia e Implementazione 2

2 Sottoprogrammi: Programmazione Modulare >> Introduzione Introduzione Programmazione modulare un applicazione è fatta di una serie di moduli programma principale (main) sottoprogrammi (procedure e funzioni) Funzionamento si inizia con l esecuzione del main i vari moduli si chiamano a vicenda comunicando attraverso i parametri 3 Sottoprogrammi: Programmazione Modulare >> Introduzione Introduzione Nella lezione precedente aspetti tecnologici della programmazione modulare cosa offre la tecnologia dei sottoprogrammi In questa lezione aspetti metodologici legati alla programmazione modulare come è opportuno utilizzare i sottoprogrammi 4

3 Sottoprogrammi: Programmazione Modulare >> Introduzione Introduzione Aspetti metodologici a) albero delle chiamate b) regole di visibilità e utilizzo dei dati c) compilazione separata e riuso del codice Successivamente d) metodologia di sviluppo per raffinamenti successivi e) linee guida per la scrittura di codice di qualità 5 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Diagramma delle Chiamate In un programma modulare i moduli dipendono gli uni dagli altri per ogni chiamata il chiamante dipende dal chiamato Diagramma delle chiamate diagramma che rappresenta le relazioni di dipendenza tra i moduli ogni modulo è un elemento gli archi descrivono le dipendenze 6

4 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Esempio: Equazioni di II Grado main procedura leggiequazione funzione primaradice funzione secondaradice procedura stamparadici funzione discriminante 7 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Diagramma delle Chiamate Perché è importante aiuta a ragionare sul livello di accoppiamento tra i moduli e sulla logica applicativa del programma Livello di accoppiamento di un modulo numero di moduli del programma da cui il modulo dipende cioè che chiama direttamente o indirettamente 8

5 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Esempio: La Morra Cinese main iniziogioco gioca schermofinale schermo schermoiniziale nuovapartita schermovittorie MenuPrincipale schermo MenuPartita nuovamano schermo EsitoPartita genera GiocataComputer controllaesito schermo EsitoMano 9 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Diagramma delle Chiamate In generale è importante che il diagramma sia organizzato per livelli (vedi metodologia) i moduli a livello più alto dipendono da quelli a livello più basso ai livelli più bassi l accoppiamento deve diminuire progressivamente 10

6 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Un Diagramma Disordinato main modulo A modulo D modulo C modulo B modulo E 11 Sottoprogrammi: Programmazione Modulare >> Diagramma delle Chiamate Diagramma delle Chiamate Inoltre si tratta di un ottimo strumento per studiare il funzionamento di un programma scritto da altri Metodo costruire il diagramma (specificando anche i parametri dei sottoprogrammi) seguire il diagramma per studiare il funzionamento 12

7 Regole di Visibilità Struttura di un applicazione insieme di moduli ogni modulo può utilizzare gli altri moduli ogni modulo utilizza un insieme di dati (costanti, variabili, parametri) Regole di visibilità insieme di regole che stabiliscono cosa può essere utilizzato in ciascun modulo 13 Regole di Visibilità Utilizzare un dato utilizzare una costante, una variabile o un parametro in una istruzione ovvero effettuare un operazione sul corrispondente spazio nella memoria Utilizzare un sottoprogramma utilizzare una funzione o una procedura ovvero chiamare il sottoprogramma 14

8 Regole di Visibilità Regola di visibilità n.1 prima dichiarare e poi usare un dato o un sottoprogramma può essere utilizzato solo se è stato precedentemente dichiarato Significato di precedentemente nelle istruzioni che precedono il punto in cui l oggetto deve essere usato 15 Regole di Visibilità In altri termini il compilatore ha bisogno di conoscere informazioni su cosa viene usato per verificare la correttezza dell uso Esempio: variabile è necessario verificarne il nome è necessario verificarne il tipo la regola enunciata era già scontata 16

9 Regole di Visibilità Per quanto riguarda i sottoprogrammi il compilatore deve verificare che la chiamata sia corretta deve verificare il nome deve verificare il numero ed il tipo dei parametri deve verificare la natura dei parametri (standard o per riferimento) deve verificare l eventuale tipo del risultato 17 Regole di Visibilità Soluzione n.1 >> equazioni1.cpp l ordine in cui sono definiti i sottoprogrammi rispecchia l ordine delle chiamate Soluzione sgradevole obbliga a preoccuparsi dell ordine di valutazione è innaturale (non rispecchia l organizzazione del diagramma delle chiamate, dal più generale al più particolare) 18

10 Regole di Visibilità Soluzione n.2 le informazioni necessarie sono tutte contenute nell intestazione (o prototipo) viene usato il prototipo per annunciare il sottoprogramma la definizione viene fornita successivamente In questo modo posso organizzare i sottoprogrammi più liberamente >> equazioni2.cpp 19 Regole di Visibilità Prototipo di un sottoprogramma intestazione del sottoprogramma seguita da ; serve ad annunciare l esistenza del sottoprogramma al compilatore descrive il modo in cui può essere utilizzato ATTENZIONE deve esserci il ; finale successivamente deve comparire la definizione completa del sottoprogramma 20

11 Regole di Visibilità Regola di visibilità n.2 riguarda i dati visibili in ciascun modulo di programma Prima di enunciarla dettagli sulle dichiarazioni dei dati dati locali dati globali 21 Dati Locali e Dati Globali Dati locali dati dichiarati all interno di un modulo corrispondono ad uno spazio di memoria costanti simboliche, variabili, parametri Ogni modulo ha i suoi dati locali i dati sono indipendenti : i dati di un modulo non sono visibili all interno di un altro possono avere nomi uguali corrispondono a spazi di memoria diversi 22

12 Dati Locali e Dati Globali Spazi diversi nella memoria void leggiequazione (float &a, float &b, float &c) { cout << "Inserisci i coefficienti dell'equazione \n"; cin >> a; cin >> b; cin >> c; return; } float primaradice (float a, float b, float c){ float x; x=(-b+sqrt(discriminante(a,b,c)))/(2*a); return x; } float secondaradice (float a, float b, float c){ float x; x=(-b-sqrt(discriminante(a,b,c)))/(2*a); } return x; Spazi diversi nella memoria Dati locali -3 parametri per riferimento (a,b,c) Dati locali -3 parametri standard (a,b,c) -1 variabile (x) Dati locali -3 parametri standard (a,b,c) -1 variabile (x) 23 Dati Locali e Dati Globali Dati globali costanti e variabili dichiarate al di fuori di tutti i moduli (dichiarate a livello di file ) sono comuni a tutti i moduli Utilizzo tipico costanti utilizzate da molti moduli è utile poterle definire una volta per tutte >> morracinese2.cpp 24

13 Dati Locali e Dati Globali const int MANI=3; void main() { string nome; iniziogioco(nome); gioca(nome); schermofinale(nome); } void iniziogioco(string& nome) { int seme = time(null); srand(seme); schermoiniziale(nome); return; } int generagiocatacomputer() { int giocata; giocata = rand()/100%3 + 1; return giocata; Spazi diversi nella } memoria Dati locali - 1 variabile (nome) Dati globali - 1 costante (MANI) Dati locali - 1 parametro per riferimento (nome) - 1 variabile (seme) Dati globali - 1 costante (MANI) Dati locali - 1 variabile (giocata) Dati globali - 1 costante (MANI) 25 Dati Locali e Dati Globali A questo punto è possibile enunciare la regola generale Regola di visibilità n.2 in ciascun modulo sono sempre visibili tutti i dati locali i dati globali sono visibili a meno che nel modulo non sia dichiarato un dato locale con lo stesso nome 26

14 Dati Locali e Dati Globali const int n=1000; void main() { int numero; cin >> numero; if (numero<=n) cout << cubo(numero); } float cubo (float numero) { float n; n = numero*numero*numero; return n; } Dati locali - 1 variabile intera (numero) Dati globali - 1 costante intera (n) Dati locali - 1 parametro standard (numero) - 1 variabile reale (n) In questo modulo NON è visibile la costante n 27 Dati Locali e Dati Globali ATTENZIONE è possibile definire anche variabili globali consente ai moduli del programma di comunicare attraverso le variabili globali un modulo può cambiare il valore di una var globale e questo cambiamento è visibile negli altri moduli es: nome nella Morra Cinese >> morracinese4.cpp >> morracinese6.cpp 28

15 Esempio: La Morra Cinese main >> morracinese6.cpp controllaesito schermovittorie iniziogioco gioca schermofinale schermo schermoiniziale nuovapartita schermovittorie MenuPrincipale schermo MenuPartita nuovamano schermo EsitoPartita genera GiocataComputer controllaesito schermo EsitoMano 29 Dati Locali e Dati Globali In effetti si tratta di una forma di comunicazione tra i moduli che non usa i parametri aumenta molto il livello di accoppiamento se usata sistematicamente rende di difficile comprensione il codice Metodologicamente non utilizzeremo MAI variabili globali è opportuno invece utilizzare costanti globali 30

16 Dati Locali e Dati Globali Riassumendo le linee guida sui dati i sottoprogrammi possono utilizzare costanti e variabili locali le funzioni è opportuno che abbiano solo parametri standard le procedure possono avere sia parametri standard che per riferimento è possibile utilizzare costanti globali non è opportuno utilizzare variabili globali 31 Compilazione Separata Organizzazione del codice sorgente può essere organizzato in vari file i file possono essere compilati separatamente e poi collegati assieme successivamente Esempio tipico un file per i sottoprogrammi un file per il programma principale 32

17 Compilazione Separata Per effettuare la compilazione separata nel file del prog. devono esserci i prototipi dei sottoprogrammi chiamati Soluzione tipica creare un file di intestazioni ( header ) con tutti i prototipi dei sottoprogrammi tipicamente il file ha estensione.h includere il file delle intestazioni per effettuare correttamente la compilazione >> morracinese5.cpp 33 Direttiva #include Per le librerie di sistema: parentesi acute #include <iostream.h> #include <string.h> il file.h viene cercato tra le cartelle di sistema (specificate nel file di configuraz.) Per le librerie dell utente: virgolette #include morracinese5lib.h il file.h deve essere nella stessa cartella in cui c è il file in cui compare la include 34

18 Direttiva #include Semantica della #include ha l effetto di includere letteralmente il contenuto del file specificato all interno del file in cui compare istruzione per istruzione Esempio: morracinese5.cpp #include morracinese5lib.h è come se il file morracinese5.cpp contenesse i prototipi dei sottoprogrammi 35 Compilazione Separata In effetti la Morra Cinese è poco interessante uso più interessante: creazione di librerie Libreria collezione di sottoprogrammi utilizzabili in applicazioni diverse Esempio libreria per l analisi di equazioni di II grado >> equazioni3lib.cpp 36

19 Compilazione Separata Esempio: equazioni3.cpp un applicazione su equazioni di II grado (main più eventuali altri sottoprogrammi) utilizza la libreria equazioni3lib.cpp include il file di intestazioni equazioni3lib.h può essere compilato indipendentemente dalla libreria al termine deve essere collegato con il codice oggetto della libreria 37 Compilazione Separata programma principale equazioni3.cpp #include<iostream.h> #include equazioni3lib.h void main() {... } bcc32 -c Compilazione codice oggetto equazioni3.obj In alternativa: posso compilare e collegare contemporaneamente usando solo bcc32 ilink32 void leggiequazione (float&a, float&b, float&c); float discriminante (float a, float b, float c);... equazioni3lib.h #include<iostream.h> bcc32 -c Collegamento codice eseguibile equazioni3.exe void leggiequazione (float&a, float&b, float&c) { cout << Coefficienti: ; cin >> a;... equazioni3lib.cpp Compilazione codice oggetto equazioni3lib.obj 38

20 Compilazione Separata Concludendo una libreria C/C++ è fatta normalmente di due file un file con le intestazioni dei sottoprogrammi un file con le definizioni dei sottoprogrammi Terminologia file di intestazioni: interfaccia della libreria file di definizioni: implementazione della lib. 39 Compilazione Separata Interfaccia tutte le informazioni che è necessario conoscere per chiamare i sottoprogrammi Implementazione tutte le informazioni che è necessario conoscere per eseguire i sottoprogrammi Il programmatore deve conoscere necessariamente la prima e non la seconda 40

21 Compilazione Separata Idealmente un programmatore scrive un applicazione sulla libreria basandosi sull interfaccia utilizza inizialmente una specifica implementazione successivamente l implementazione può essere cambiata (migliorata, corretta) senza che sia necessario cambiare il codice dell applicazione scritta (basta ricompilare) 41 Compilazione Separata Idea alla base di questo meccanismo riuso del codice (un mito informatico) sviluppare il codice è costoso per quanto possibile, bisognerebbe evitare di sviluppare di nuovo soluzioni già esistenti Utilità delle librerie collezione di sottoprogrammi di utilizzo sufficientemente generale di correttezza verificata 42

22 Compilazione Separata In generale è importante puntare al riuso del codice è una filosofia a cui deve essere improntata tutta l attività di programmazione In realtà, però il principale limite dei linguaggi procedurali è che non consentono un riuso adeguato anche per questo sono stati soppiantati dai linguaggi orientati agli oggetti 43 Sottoprogrammi: Programmazione Modulare >> Sommario Riassumendo Programmazione Modulare applicazione fatta di moduli che si chiamano a vicenda Aspetti Metodologici diagramma delle chiamate comunicazione tra moduli e dati (locali e globali) compilazione separata 44

23 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copiadella licenza, è possibile visitare oppure inviare una lettera all indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 45

Programmazione Procedurale in Linguaggio C++

Programmazione 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)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 4 Conclusioni versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 5 Conclusioni versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 1 Introduzione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 7 Dettagli e Approfondimenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 1 Introduzione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 6 Metodologia di Sviluppo - b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 4 Conclusioni versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 8 Dettagli e Approfondimenti versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 6 Il FORTRAN versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 3 Istruzioni Iterative (Cicli) versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 2 Istruzioni Condizionali versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 5 Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Le Stringhe versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Concetti Avanzati versione 2.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Strumenti di Sviluppo: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: Convenzioni di Stile versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Qualità del Codice: Convenzioni di Stile versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: Introduzione versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - d Regole Sintattiche e Semantiche versione 1.2 Questo lavoro è concesso in uso secondo i termini di

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web JavaScript Concetti Fondamentali versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Introduzione versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Introduzione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 2 La Lista versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Conclusioni parte b versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Strati Applicativi versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Concetti Avanzati Tecniche di Test e Correzione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ereditarietà e Polimorfismo: Polimorfismo - a Programmare con il Polimorfismo versione 1.2 Questo lavoro è concesso in uso secondo i termini di

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 3 (b) Metodologia di Sviluppo versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: Strato di Persistenza versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Procedurale

Programmazione Procedurale Programmazione Procedurale Concetti Introduttivi Strumenti di Sviluppo versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Elementi di base di un programma Dichiarazione dei dati in un programma Sommario Panoramica Elementi di Base di un Programma Struttura Direttive Elementi Sintattici di Base Commenti

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Aspetti Metodologici versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: C# versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 4 Lettura e Stampa dei Dati versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Conclusioni versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Eccezioni: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione su XML: C# versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Presentazione del Corso Anno Accademico 2003-2004 http://www.db.unibas.it/users/mecca/corsi/progoggettii versione 1.0 Questo lavoro è concesso in

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurae in Linguaggio C++ Strutture di Dati La Lista parte b versione 2.4 Questo avoro è concesso in uso secondo i termini di una icenza Creative Commons (vedi utima pagina) G. Mecca

Dettagli

STRUTTURA DI UN PROGRAMMA!

STRUTTURA DI UN PROGRAMMA! STRUTTURA DI UN PROGRAMMA! File prova1.c Area globale #include ... int m; int f(int); int g(int x){.../*ambiente locale a g*/} int main(){...} int f(int x){.../*ambiente locale a f*/} Direttive

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Concetti Introduttivi Parte 1 Architettura del Calcolatore versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 5 Metodologia di Sviluppo - a versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

STRUTTURA DI UN PROGRAMMA

STRUTTURA DI UN PROGRAMMA STRUTTURA DI UN PROGRAMMA File prova1.c #include ... int m; int f(int); int g(int x){ Area globale Direttive Dichiarazioni globali e prototipi di funzioni Definizioni di funzioni.../*ambiente

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Conclusioni versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Incapsulamento versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Uso dei Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati La Matrice versione. Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

Progetti su più File Sorgenti

Progetti su più File Sorgenti Progetti su più File Sorgenti Sono considerate applicazioni di piccola dimensione, applicazioni con qualche migliaio di linee di codice Un applicazione anche di piccola dimensione non può essere sviluppata

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java : Conclusioni versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università

Dettagli

deve conoscerne solo l interfaccia:

deve conoscerne solo l interfaccia: Progetti su più File Sorgenti Sono considerate applicazioni i i di piccola dimensione, applicazioni con qualche migliaio di linee di codice Un applicazione anche di piccola dimensione non può essere sviluppata

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Introduzione Architettura di Riferimento versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

f2.obj compilatore compilatore linker f3.obj compilatore

f2.obj compilatore compilatore linker f3.obj compilatore ...quando il gioco si fa duro Sono considerate applicazioni i i di piccola dimensione, applicazioni con qualche migliaio di linee di codice Un applicazione anche di piccola dimensione non può essere sviluppata

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it

Dettagli

PROGETTI SU PIU` FILE

PROGETTI SU PIU` FILE PROGETTI SU PIU` FILE Un applicazione complessa non può essere fatta in un unico file.c: sarebbe ingestibile Meglio dividerla in vari moduli, che si occupano di aspetti diversi Ordinamento Interfaccia

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 3 Record G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Record >> Sommario Sommario Introduzione Dichiarazione di Record

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: Incapsulamento versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Linguaggi di Programmazione Sintassi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Test e Correzione: C# Parte a versione 1.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Introduzione ai Calcolatori Elettronici

Introduzione ai Calcolatori Elettronici Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi

Dettagli

Esercitazione. Uso di funzioni e librerie di funzioni

Esercitazione. Uso di funzioni e librerie di funzioni Esercitazione Uso di funzioni e librerie di funzioni Prof. Paolo Mancarella Informatica I Corso di Laurea in Fisica A.A. 2007/2008 1 Uso di funzioni e librerie di funzioni Funzioni 1.1 Funzioni Il meccanismo

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Organizzazione del Codice Parte b versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica: C# Parte a versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: Tecnologie versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Date versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti Sintassi e Semantica Parte b: Peculiarità di Java versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Ruoli e Responsabilità: C# versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G.

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Classi Interne versione 1.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 7 Dettagli e Approfondimenti versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Dati Parte 2 La Lista G. Mecca M. Samela Università della Basilicata Strutture di Dati: Lista >> Sommario Sommario Introduzione Definizione di

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Introduzione alle lezioni in laboratorio Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

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

Dettagli