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++ Tipi Strutturati Parte 3 Record versione 2.1 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina) G. Mecca Università della Basilicata mecca@unibas.it Tipi Strutturati: Record >> Sommario Sommario Introduzione Dichiarazione di Record (o Strutture ) Descrizione del Modello Sintassi e Semantica Utilizzo dei Record (o Strutture ) Sintassi e Semantica Nidificazione Nidificazione e Passaggio dei Parametri 2

2 Tipi Strutturati: Record >> Introduzione Introduzione Record (o Strutture ) funzionalità dei linguaggi di programmazione che consente di rappresentare in un prg. oggetti attraverso varie componenti (variabili) Differenze nell uso un array serve a rappresentare una collezione di dati tutti dello stesso tipo un record serve a rappresentare un unico dato con struttura complessa 3 Tipi Strutturati: Record >> Introduzione Introduzione Differenze con gli array in un record, le componenti possono non essere dello stesso tipo ogni componente ha un nome (identificatore) e non un indice intero gli array sono una funzionalità essenziale dei linguaggi di programmazione procedurali i record non sono essenziali (in alcuni linguaggi, es: FORTRAN 77, non esistono) 4

3 Tipi Strutturati: Record >> Introduzione Introduzione Principale utilità dei record semplificazione del codice (dichiarazione di meno variabili, minor numero di parametri) maggiore leggibilità del codice (le variabili che rappresentano un oggetto sono raggruppate e quindi meglio identificabili) Un esempio: equazioni di II grado >> equazioni4lib.h >> equazioni4lib.cpp >> equazioni4.cpp un equazione di II grado richiede 3 numeri 5 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione di Record Processo a due passi I passo: descrivo il modello del record che voglio utilizzare II passo: utilizzo il modello come nuovo tipo di dato per dichiarare variabili Modello del record descrizione della struttura del record può essere utilizzato dovunque sia previsto un tipo di dato in aggiunta a quelli di base 6

4 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione di Record: Esempi struct equazione { float a, b, c; ; equazione eq1, eq2; struct partita { string squadracasa, squadratrasferta; int golcasa, goltrasferta; char segno; ; partita partite[n]; descrizione del modello di record dichiarazione di 2 variabili secondo il modello descrizione del modello di record dichiarazione di un array di variabili secondo il modello 7 Tipi Strutturati: Record >> Dichiarazione di Record Descrizione del Modello di Record Sintassi struct <nome> {<elencoattributi>; Dove ATTENZIONE: errore frequente <nome> è un identificatore <elencoattributi> è l elenco delle componenti del record, detti attributi (o campi ) una lista di dichiarazioni del genere <tipoattributo> <nomeattributo>; 8

5 Tipi Strutturati: Record >> Dichiarazione di Record Descrizione del Modello di Record Semantica la descrizione del modello diventa un nuovo identificatore di tipo si aggiunge ai tipi di base (int, float, char, ecc.) e ai tipi predefiniti (string, ofstream ecc.) Di conseguenza può essere utilizzato per dichiarare variabili, costanti e parametri 9 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Sintassi ordinaria <nomemodello> <nomevar>; Semantica ha l effetto di dichiarare un numero di variabili pari agli attributi del modello più una variabile per il record nel suo complesso nome delle variabili costituito da due parti ovvero: <nomevar>.<nomeattributo> 10

6 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Esempio #99 struct equazione { float a, b, c; ; #101 #102 #103 eq1 eq1.a eq1.b eq1.c eq2.a equazione eq1, eq2; #104 #105 eq2 eq2.b eq2.c #106 in totale: 8 variabili 11 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione di Record Attenzione in questo caso avrei potuto anche dichiarare due array (componenti dello stesso tipo) Esempio float eq1[3], eq2[3]; a quale coefficiente corrisponde eq1[0]? (a, b o c) a quale coefficiente corrisponde eq1[1]? (a, b o c) a quale coefficiente corrisponde eq1[2]? (a, b o c) E una soluzione metodologicam. inappropriata 12

7 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Esempio struct partita { string squadracasa; #99 string squadratrasferta; #101 int goalcasa; #102 int goaltrasferta; #103 char segno; #104 ; #105 p p.squadracasa p.squadratrasferta p.goalcasa p.goaltrasferta p.segno partita p; in totale: 6 variabili 13 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Un annotazione importante differenza fondamentale tra descrizione del modello e dichiarazione (di var. o param.) la descrizione del modello NON produce effetti sulla memoria, la dichiarazione sì la descrizione del modello ha solo l effetto di rendere il modello un nuovo tipo di dato ATTENZIONE: Errore frequente la descrizione del modello deve finire con ; 14

8 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Inizializzazione anche in questo caso è possibile inizializzare gli attributi alla dichiarazione Sintassi <modello> <nomevar> = {<listavalori>; Dove <listavalori> è un elenco di valori di tipo opportuno, uno per ogni attributo del record, separati da virgole 15 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Esempio equazione eq = {5, 2, 5; partita p = { Juventus, Inter, 4, 0, 1 ; 16

9 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Regola generale come gli array, di norma le operazioni sui record si effettuano attributo per attributo ovvero lavorando singolarmente sulle variabili che rappresentano gli attributi Alcune eccezioni istruzioni di assegnazione utilizzo nei sottoprogrammi 17 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Istruzioni di assegnazione attributo per attributo oppure tutto in una volta Esempio struct equazione { float a, b, c; ; void main() { equazione eq1 = {5, 2, 5; equazione eq2; eq2 = eq1; equivalente a: eq2.a = eq1.a; eq2.b = eq1.b; eq2.c = eq1.c; 18

10 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Passaggio dei parametri la variabile che rappresenta il record nel suo complesso può essere usata come argomento per i sottoprogrammi Parametro di tipo record tanti parametri, uno per ciascun attributo Differenza con gli array passaggio dei parametri avviene in modo ordinario, sia per valore che per riferimento 19 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Passaggio dei parametri standard nello spazio di memoria del parametro viene copiato il valore del record argomento, attributo per attributo Passaggio dei parametri per riferimento nello spazio di memoria del parametro viene copiato l indirizzo del primo registro del record utilizzato come argomento 20

11 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Equazioni void leggidatiequazione (equazione &eq) { cout << "Inserisci i coefficienti dell'equazione \n"; cin >> eq.a; cin >> eq.b; cin >> eq.c; return; void stampadatiequazione (equazione eq) { cout << " Equazione \n"; cout << eq.a << "x2+"<< eq.b <<"x+" << eq.c << "=0 \n"; return; float discriminante (equazione eq) { return eq.b*eq.b-4*eq.a*eq.c; parametro per riferimento parametri standard 21 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Equazioni void leggidatiequazione (equazione &eq) { cout << "Inserisci coeff."; cin >> eq.a; cin >> eq.b; cin >> eq.c; return; #99 #101 #102 #103 #104 eq1 eq2 eq1.a eq1.b eq1.c eq2.a eq2.b void main() { equazione eq1, eq2; leggidatiequazione(eq1); leggidatiequazione(eq2); if (discriminante(eq1)>=0 && discriminante(eq2)>=0) { #105 #106 eq eq2.c 22

12 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Equazioni #99 float discriminante (equazione eq) { return eq.b*eq.b-4*eq.a*eq.c; #101 #102 #103 eq1 eq1.a eq1.b eq1.c eq2.a #104 eq2 eq2.b 2 void main() { equazione eq1, eq2; leggidatiequazione(eq1); leggidatiequazione(eq2); if (discriminante(eq1)>=0 && discriminante(eq2)>=0) { #105 #106 #107 #108 eq eq2.c eq.a eq.b eq.c Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Risultato delle funzioni le funzioni possono restituire come risultato dei record (ulteriore differenza con gli array) Esempio: calcolo delle radici reali struct radicireali { float x, y; ; radicireali calcolaradici (equazione eq) { radicireali rr; rr.x=(-eq.b+sqrt(discriminante(eq)))/(2*eq.a); rr.y=(-eq.b-sqrt(discriminante(eq)))/(2*eq.a); return rr; NOTA: una funzione del genere può essere usata solo in una assegnazione del tipo: radicireali radici1; radici1 = calcolaradici(eq1) 24

13 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo dei Record Per il resto le operazioni sui record (lettura, stampa ecc.) vengono fatte attributo per attributo Differenza rispetto agli array nel caso degli array, è possibile utilizzare cicli per rendere più compatto il codice nel caso dei record questo vantaggio non esiste; le istruzioni devono essere scritte per ciascun attributo separatamente 25 Tipi Strutturati: Record >> Utilizzo di Record Utilizzo di Record Record e array i record possono essere combinati con gli array per rappresentare collezioni di dati con struttura complessa Esempio: Partite di Serie A dati i risultati di una giornata di serie A, calcolare e stampare i segni in schedina un array di 9 partite 26

14 Tipi Strutturati: Record >> Dichiarazione di Record Esempio: Partite di Serie A const int N=9; struct partita { ; string squadracasa; string squadratrasf; int goalcasa; int goaltrasferta; char segno; partita partite[n]; in totale: 55 variabili -1 array -9 componenti -5 attributi per componente #99 #101 #102 #103 #104 #140 #141 #142 #143 #144 #145 partite partite[0] partite[8] partite[0].squadracasa partite[0].squadratrasf partite[0].goalcasa partite[0].goaltrasferta partite[0].segno partite[8].squadracasa partite[8].squadratrasf partite[8].goalcasa partite[8].goaltrasferta partite[8].segno 27 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Partite di Serie A Nota la definizione del modello di record partita, così come la costante N, devono essere dichiarati a livello di file visibilità globale, perché vengono usati sostanzialmente in tutti i moduli del programma questo non contravviene all indicazione di non usare variabili globali, visto che non si tratta di variabili 28

15 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Partite di Serie A struct partita { string squadracasa, squadratrasferta; int goalcasa, goaltrasferta; char segno; ; const int N=9; void leggipartite(partita partite[n]); void stampapartite(partita partite[n]); void calcolasegni(partita partite[n]); void main() { partita partite[n]; leggipartite(partite); calcolasegni(partite); stampapartite(partite); 29 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Partite di Serie A void leggipartite(partita partite[n]){ int i; for (i=0; i<n; i++) { leggipartita(partite[i]); return; void leggipartita(partita &p){ cout << "Squadra in casa : "; getline(cin, p.squadracasa); cout << "Squadra in trasferta : "; getline(cin, p.squadratrasferta); cout << "Goal squadra in casa : "; cin >> p.goalcasa; cout << "Goal squadra in trasferta: "; cin >> p.goaltrasferta; cin.ignore(); return; ha l effetto di chiamare N volte la procedura leggipartita i=0 leggipartita(partite[0]) i=1 leggipartita(partite[1]) necessaria per rimuovere il carattere \n dal flusso prima della lettura della stringa successiva 30

16 Tipi Strutturati: Record >> Dichiarazione di Record Esempio: Partite void leggipartita(partita &p){ getline(cin, p.squadracasa); partite #102 partite[0] partite[0].goalcasa 0 void leggipartite #103 partite[0].goaltrasferta 0 (partita partite[n]){ #104 partite[0].segno int i; for (i=0; i<n; i++) { #140 partite[8].squadracasa leggipartita(partite[i]); partite[8] return; #144 partite[8].segno #145 partite void main() { #146 i 01 partita partite[n]; #147 p #105 leggipartite(partite); 31 #99 #101 partite[0].squadracasa Juve partite[0].squadratrasf Inter Tipi Strutturati: Record >> Utilizzo di Record Esempio: Partite di Serie A void calcolasegni(partita partite[n]){ int i; for (i=0; i<n; i++) { if (partite[i].goalcasa > partite[i].goaltrasferta) { partite[i].segno='1'; else { if (partite[i].goalcasa<partite[i].goaltrasferta) { partite[i].segno='2'; else { partite[i].segno='x'; return; 32

17 Tipi Strutturati: Record >> Utilizzo di Record Esempio: Partite di Serie A void stampapartite(partita partite[n]){ int i; for (i=0; i<n; i++) { stampapartita(partite[i]); return; void stampapartita(partita p){ cout << p.squadracasa << "- << p.squadratrasferta << " \t"; cout << p.goalcasa << "-" << p.goaltrasferta << " \t" << p.segno << endl; return; ha l effetto di chiamare N volte la procedura stampapartita i=0 stampapartita(partite[0]) i=1 stampapartita(partite[1]) 33 Tipi Strutturati: Record >> Dichiarazione di Record Esempio: Partite void stampapartita(partita p){ void stampapartite (partita partite[n]){ int i; for (i=0; i<n; i++) { stampapartita(partite[i]); return; void main() { partita partite[n]; stampapartite(partite); #146 #147 #148 #149 #150 Juve Inter #151 p.segno X 34 #99 #101 #102 #103 #104 #140 #144 #145 partite partite[0] partite[8] partite i p partite[0].squadratrasf partite[0].goalcasa partite[0].goaltrasferta partite[0].segno partite[8].squadracasa partite[8].segno partite[0].squadracasa Juve p.squadracasa p.squadratrasf p.goalcasa p.goaltrasferta Inter 0 0 X 0 0 0

18 Tipi Strutturati: Record >> Nidificazione Nidificazione Due categorie di tipi di dato tipi di base (int, float, double, char, bool) e assimilati (string, ifstream, ofstream) tipi strutturati Tipi strutturati costruiti utilizzando array e record array e record possono essere liberamente nidificati 35 Tipi Strutturati: Record >> Nidificazione Nidificazione Un esempio sovrapposizione di rettangoli Rettangolo oggetto rappresentato da due punti nel piano cartesiano Punto oggetto rappresentato da due coordinate reali nel piano cartesiano 36

19 Tipi Strutturati: Record >> Nidificazione Esempio: Sovrapp. di Rettangoli struct punto { float x, y; ; #99 #101 r1 r1.v1 r1.v1.x r1.v1.y struct rettangolo { punto v1, v2; ; #102 #103 #104 r1.v2 r2.v1 r1.v2.x r1.v2.y r2.v1.x #105 r2 r2.v1.y rettangolo r1, r2; #106 #107 r2.v2 r2.v2.x r2.v2.y #108 record che contiene al suo interno due record >> rettangoli2.cpp 37 Tipi Strutturati: Record >> Nidificazione Nidificazione Nidificazioni profonde sono possibili array e record che al loro interno contengono altri record ed altri array utile ad esempio per rappresentare collezioni (array) di oggetti (record) i quali contengono al loro interno ulteriori oggetti (record) o collezioni (array) di valori in questo caso l unica attenzione da prestare è al meccanismo dei nomi delle variabili 38

20 Tipi Strutturati: Record >> Nidificazione Nidificazione In particolare per i nomi delle componenti degli array: [ ] per i nomi degli attributi dei record:. Esempio partite del campionato di serie A con risultato squadre complete di formazioni data della partita 39 Tipi Strutturati: Record >> Nidificazione Nidificazione struct giocatore { string nome; int maglia; ; struct squadra { string nome; giocatore formazione[11]; ; struct data { int giorno, mese, anno; ; struct partita { squadra sq1, sq2; int goal1, goal2; data d; ; partita p[9]; 40

21 Tipi Strutturati: Record >> Nidificazione #10 p[0].sq1.nome #11 p[0].sq1.formazione[0] #12 p[0].sq1 #13 #14 p[0].sq1.formazione[10] #15 #16 p[0].sq2.nome #17 p[0].sq2.formazione[0] #18 p[0] p[0].sq2 #19 #20 p[0].sq2.formazione[10] #21 p[0].sq1.formazione[0].nome p[0].sq1.formazione[0].maglia p[0].sq1.formazione[10].nome p[0].sq1.formazione[10].maglia p[0].sq2.formazione[0].nome p[0].sq2.formazione[0].maglia p[0].sq2.formazione[10].nome p[0].sq2.formazione[10].maglia #22 p[0].goal1 #23 p[0].goal2 #24 p[0].data.giorno #25 p[0].data p[0].data.mese #26 p[0].data.anno #27 p[1] p[1].sq1 p[1].sq1.nome #28 Juventus Buffon 1 Nedved 11 Inter Toldo 1 Recoba Lazio 41 Tipi Strutturati: Record >> Nidificazione Nidificazione e Passaggio dei Param. Attenzione in questi casi NON conviene passare i dati per valore: la copia richiederebbe tempo Nel caso degli array il passaggio avviene comunque per riferimento Nel caso dei record possono esserci problemi 42

22 Tipi Strutturati: Record >> Nidificazione Nidificazione e Passaggio dei Param. Esempio: squadra la variabile s non dovrebbe mai essere passata per valore per evitare che venga effettuata la copia di tutte le componenti dell array struct squadra { string nome; string giocatori[30]; ; void leggi(squadra &s); void stampa (squadra &s); void main() { squadra s; leggi (s); stampa (s); 43 Tipi Strutturati: Record >> Nidificazione Nidificazione e Passaggio dei Param. NOTA questo vale solo nel caso di record che contengono array e solo se gli array hanno un numero alto di componenti in tutti gli altri casi bisogna scegliere il tipo di parametro più appropriato (standard o per riferimento) 44

23 Tipi Strutturati: Record >> Sommario Riassumendo Record dichiarare oggetti con struttura complessa Dichiarazione descrizione del modello (ATTENZIONE) dichiarazione delle variabili Utilizzo i vantaggi principali: dichiarazioni e parametri Nidificazione profonda Passaggio dei Parametri 45 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. 46

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

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++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi

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 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 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 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++ Concetti Introduttivi Parte 2 Linguaggi di Programmazione versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative 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 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++ 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 Test e Correzione: Introduzione versione 1.0 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 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

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

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

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 Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

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 Ruoli e Responsabilità: Introduzione versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

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

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

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni 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

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

Strategie di programmazione

Strategie 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

Dettagli

Introduzione al linguaggio C Puntatori

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

Dettagli

Il problema dello zaino

Il problema dello zaino Il problema dello zaino (knapsack problem) Damiano Macedonio mace@unive.it Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed

Dettagli

Esercizi C sui tipi definiti dall utente

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

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, 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

Dettagli

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella

Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico 2008/2009 Francesco Tortorella Corso di Fondamenti di Informatica Tipi strutturati: Strutture typedef Anno Accademico Francesco Tortorella Le strutture Gli array permettono la sola aggregazione di variabili dello stesso tipo. Quindi

Dettagli

Strutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16

Strutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16 Strutture Dati Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Strutture Dati 1 / 16 Introduzione Fino ad ora nei nostri programmi abbiamo usato Variabili;

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio 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

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Gestione di files Motivazioni

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

Dettagli

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -

Complementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

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

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio soluzione di un problema 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio rappresentazioni disponibili in C++:

Dettagli

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

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

C: panoramica. Violetta Lonati

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

Dettagli

Istruzioni semplici e strutturate

Istruzioni semplici e strutturate Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

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 b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Capitolo 10 - Strutture

Capitolo 10 - Strutture 1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la

Dettagli

Università di Roma Tor Vergata L12-1

Università di Roma Tor Vergata L12-1 Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

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

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

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Framework per il Modello 2 Struts versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

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

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07

Funzioni, puntatori, strutture. Lab. Calc. AA 2006/07 Funzioni, puntatori, strutture sommario In questa lezione integriamo le informazioni fornite su puntatori e funzioni approfondendo i seguenti punti Puntatori a puntatori Puntatori e array come parametri

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Array Anno Accademico 2010/2011 Francesco Tortorella Gli array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto

Dettagli

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)

Funzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x) Funzioni di libreria Richiedono tutte #include x x a x fabs(x) sqrt(x) pow(x,a) x e ln(x) exp(x) log(x) log 10 ( x ) log10(x) sen(x) cos(x) tg(x) arcsen(x) arccos(x) arctg(x) senh(x) cosh(x) tgh(x)

Dettagli

Reti di calcolatori Introduzione al corso

Reti di calcolatori Introduzione al corso Reti di calcolatori Introduzione al corso Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ RETI DI CALCOLATORI Introduzione al corso - 1 Copyright Quest opera è protetta dalla licenza

Dettagli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli

Calcolatori Elettronici Lezione A4 Programmazione a Moduli Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

uguale livello gerarchico non vi sono funzioni più importanti di altre main main

uguale livello gerarchico non vi sono funzioni più importanti di altre main main FUNZIONI in C/C++ Un programma C++ è un insieme di funzioni indipendenti e di uguale livello gerarchico (nel senso che non vi sono funzioni più importanti di altre o dotate, in qualche modo, di diritti

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

nome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti

nome (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

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array 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 Laurea

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica

Corso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare

Dettagli

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:

Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: 1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Linguaggio C++ Linguaggi di terza generazione

Linguaggio C++ Linguaggi di terza generazione Linguaggio C++ Linguaggi di terza generazione Insieme di primitive ad alto livello, ognuna traducibile in una sequenza di primitive in linguaggio macchina Es.: pesolordo pesocarico + pesoveicolo Due load,

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

Dettagli

Tecnologie di Sviluppo per il Web

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

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Operatore? Tipo di dato: struct La ricorsione Funzioni ricorsive Esercizi proposti 26/04/2012 2 Operatore? L'operatore? può essere

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore)

Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Un esecutore di un linguaggio simbolico e costituito dalla coppia Compilatore, processore (o Interprete, processore) Macchina astratta: un linguaggio di programmazione trasforma un calcolatore in una macchina

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Ordinamento Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)

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 b versione 2.3 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

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

Tipi 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

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio C: le funzioni. Introduzione e sintassi ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella

Università degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali

Dettagli

Array k-dimensionali

Array k-dimensionali Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per

Dettagli

Stringhe e tipi di dati strutturati

Stringhe e tipi di dati strutturati Stringhe e tipi di dati strutturati Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Marzo 2013 Info sui Labs http://tinyurl.com/ieimlabextra Ricordate di portare un adattatore!

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica

Array in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

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

Dettagli

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Dettagli

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

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

Dettagli

Programmazione in Python. Moreno Marzolla

Programmazione in Python. Moreno Marzolla Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative

Dettagli