Programmazione Procedurale in Linguaggio C++
|
|
- Sabina Mele
- 6 anni fa
- Visualizzazioni
Transcript
1 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 (o Strutture ) Descrizione del Modello Sintassi e Semantica Utilizzo dei Record (o Strutture ) Sintassi e Semantica Nidificazione 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 Metodologicamente 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 no (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 un equazione di II grado richiede 3 numeri >> equazioni4lib.cpp 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 specificati nel modello più una variabile per il record nel suo complesso nome delle variabili costituito da due parti nome della variabile <nomevar> nome dell attributo <nomeattributo> ovvero: <nomevar>.<nomeattributo> 10
6 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Esempio #99 struct equazione { float a, b, c; #100 #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 delle Variabili Esempio struct partita { string squadracasa; #99 #100 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 12
7 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 ; 13 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 14
8 Tipi Strutturati: Record >> Dichiarazione di Record Dichiarazione delle Variabili Esempio equazione eq = {5, 2, 5 partita p = { Juventus, Inter, 4, 0, 1 15 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 passaggio dei parametri 16
9 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; 17 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 Differenza con gli array passaggio dei parametri avviene in modo ordinario è possibile sia il passaggio per valore che il passaggio per riferimento 18
10 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 19 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 20
11 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; 21 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 22
12 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 23 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 #100 #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 #100 24
13 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 25 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); 26
14 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; necessaria per rimuovere il carattere \n dal flusso prima della lettura della stringa successiva 27 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; 28
15 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; 29 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 30
16 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 31 Tipi Strutturati: Record >> Nidificazione Esempio: Sovrapp. di Rettangoli struct punto { float x, y; struct rettangolo { punto v1, v2; rettangolo r1, r2; #99 #100 #101 #102 #103 #104 #105 #106 #107 #108 r1 r2 r1.v1 r1.v2 r2.v1 r2.v2 r1.v1.x r1.v1.y r1.v2.x r1.v2.y r2.v1.x r2.v1.y r2.v2.x r2.v2.y record che contiene al suo interno due record >> rettangoli2.cpp 32
17 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 33 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 34
18 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]; 35 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 36
19 Tipi Strutturati: Record >> Sommario Riassumendo Record dichiarare oggetti con struttura complessa Dichiarazione descrizione del modello (ATTENZIONE) dichiarazione delle variabili Utilizzo i vantaggi principali: passaggio dei parametri Nidificazione profonda 37
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à
DettagliProgrammazione 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
DettagliBreve 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...
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)
DettagliProgrammazione 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
DettagliProgrammazione 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à
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 2
DettagliProgrammazione 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)
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliProgrammazione 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
DettagliFunzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliEsercizi 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
DettagliCostanti 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
DettagliIstruzioni 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
DettagliESECUZIONE 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
DettagliGestione 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)
DettagliCorso 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
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
Dettagli1) 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++:
DettagliElementi 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
DettagliINTRODUZIONE 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
DettagliUniversità 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
DettagliESECUZIONE 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
DettagliProgrammazione 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
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
DettagliInformatica 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)
DettagliUniversità 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
DettagliTipi 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
DettagliProgrammazione 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)
DettagliProgrammazione 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
DettagliIntroduzione 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
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
DettagliLezione 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,
DettagliImplementazione 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
Dettaglinome (lista_parametri) Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti
Università di Roma Tor Vergata L9-1 Funzioni funzioni predefinite: sqrt(x) log(x) usare queste funzioni significa: specificare il valore degli argomenti utilizzare il valore restituito quanti argomenti
DettagliCorso 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
DettagliUn 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
DettagliLinguaggio 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,
DettagliLinguaggio 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
DettagliIntroduzione 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
DettagliStruttura 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
DettagliStrutture 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;
DettagliDefinizione 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
DettagliSottoprogrammi: astrazione procedurale
Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j
DettagliCorso 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
DettagliLaboratorio 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
DettagliLezione 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
DettagliUniversità 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
DettagliFondamenti 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
DettagliProgrammazione 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
DettagliComplementi. - 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
Dettagli9 - 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
DettagliFunzioni 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)
DettagliUtilizza 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
Dettagliuguale 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
DettagliInformatica 3. LEZIONE 2: Sintassi e semantica
Informatica 3 LEZIONE 2: Sintassi e semantica Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4: Routine Convenzioni dei nomi Informatica
Dettagliarray: strumento per costruire rappresentazioni di tipi strutturati omogenei
array: strumento per costruire rappresentazioni di tipi strutturati omogenei ogni elemento è un aggregato di componenti elementari tutti dello stesso tipo (caso tipico: sequenze di numeri, nomi, ) ogni
DettagliArray 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
DettagliCalcolatori 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
DettagliAppunti, esempi ed esercizi sui linguaggi C/C++
Appunti, esempi ed esercizi sui linguaggi C/C++ Dispense e materiale didattico su http://www.eclecticforce.com/ Ambiente di sviluppo Dev C++ http://www.bloodshed.net/devcpp.html // commento su una linea
DettagliIntroduzione a Matlab
INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi
DettagliIl linguaggio C Strutture
Il linguaggio C Strutture Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C -- Strutture 2 Ringraziamenti Questi
DettagliLinguaggio 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
DettagliC: 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
DettagliCapitolo 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
DettagliAggregati 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
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliArray multidimensionali e stringhe
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Array uni-dimensionali (richiami) Dichiarazione: int vet[100]; float x[50]; Gli elementi
Dettagli#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
DettagliTipi 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
DettagliEsercizi. 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
DettagliInformatica 3. Informatica 3. LEZIONE 2: Sintassi e semantica. Lezione 2- Modulo 1. Le componenti di un linguaggio di programmazione
Informatica 3 Informatica 3 LEZIONE 2: Sintassi e semantica Lezione 2- Modulo 1 Modulo 1: Introduzione ai concetti di sintassi e semantica Modulo 2: Il concetto di binding Modulo 3: Variabili Modulo 4:
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliFunzioni, 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
DettagliModulo 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
DettagliLa classe std::vector della Standard Template Library del C++
La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliQualsiasi 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
DettagliEsercitazione 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
DettagliStruct, enum, Puntatori e Array dinamici
Struct, enum, Puntatori e Array dinamici Tratti dal corso del Dr. Francesco Fabozzi Corso di Informatica Tipi di dato in C Abbiamo esaminato diversi tipi di dato che il C mette a disposizione dell utente
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliA. 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),
DettagliLinguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin
Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica
DettagliTipi di dato. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliCompendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
DettagliDati 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
DettagliFondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012
Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliScope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano
Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di
DettagliArgomenti 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
DettagliProgrammazione ad oggetti
Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliStringhe 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!
DettagliLinguaggio C Struct e union
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struct e union 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliProgrammazione 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