Soluzione del 15 febbraio 2016

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Soluzione del 15 febbraio 2016"

Transcript

1 Soluzione del 15 febbraio 2016 Problema 1 Un programma che effettua quanto richiesto, senza alcuna pretesa da parte di chi l avesse scritto, potrebbe essere il seguente: # include <iostream> # include <cmath> # include <cstring> using namespace std; char cifre[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,, #, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z }; template <int N, class U> char * base64(u numero, int (&x)[n]) {char * ret; U numero = numero >= 0? numero : - numero; unsigned int ordinillo, segno = numero < 0, numchar = segno; double ordine = numero? log10(numero)/log10(64) : 0; ordinillo = (unsigned int)ordine + 1; numchar += ordinillo; ret = new char[1+numchar]; ret[numchar] = 0; if(!numero) {ret[0] = 0 ; return ret;} else if(segno) ret[0] = - ; ordinillo = 1; while(numero) {unsigned int scarto = numero % 64; ret[numchar-ordinillo++] = cifre[scarto]; numero /= 64;} return ret;} template <class... U> char * base64(char *s, U... v) {return s;} unsigned int conv(char u) {try {for(unsigned int i=0; i!= 64; ++i) if(u == cifre[i]) return i; throw 0;} catch(...) {cerr << "non convertibile. Valore illegale: " << flush; throw;}} template <class U> void base10(char * s, U* uu) {U ret{}, pot{1}; unsigned int numchar = strlen(s); if(numchar == 1 && s[0] == 0 ) {*uu = ret; return;} try

2 {for(unsigned int pos = numchar-1; pos; --pos) ret += pot * conv(s[pos]), pot *= 64; if(s[0] == - ) ret *= -1; else ret += pot * conv(s[0]);} catch(...) {cerr << [ << s << "]\n" << flush; throw;} *uu = ret;} int main() {int x[1]; cout << base64(-12,x) << endl; cout << base64(8192,x) << endl; cout << base64(1000,x) << endl; cout << base64(9,x) << endl; cout << base64(-9,x) << endl; cout << base64(64,x) << endl; cout << base64(63,x) << endl; cout << base64(0xffffffffffffffff,x) << endl; cout << base64(const cast<char*>("tanto va la gatta al lardo")) << endl; cout << "\n\n\n \n\n\n"; int i; base10(const cast<char*>("fc"), &i); cout << i << endl; short int s; base10(const cast<char*>("200"), &s); cout << s << endl; base10(const cast<char*>("-c"), &i); cout << i << endl; base10(const cast<char*>("0"), &i); cout << i << endl; try {base10(const cast<char*>("@"), &i); cout << i << endl;} catch(...) {} unsigned long long int u; base10(const cast<char*>("fzzzzzzzzzz"), &u); cout << u << endl;} Naturalmente la funzione main è solo dimostrativa. L unica furbata del codice consiste nell aver introdotto una coppia di funzioni template omonime, le due base64, che si escludono vicendevolmente per evidenti type SFINAE che si producono nei diversi tentativi di istanziazione. Un codice che avrebbe comportato il 30 senza passare dal via potrebbe essere come il seguente, ampiamente autocommentato # include <iostream> # include <fstream> # include <cstring> # include <cmath> using namespace std; // le 64 cifre (ordinate) da usare per la base 64 char cifre[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N,

3 O, P, Q, R, S, T, U, V, W, X, Y, Z,, #, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z }; // una coppia di funzioni, la seconda template, // per la conversione inversa da base64 a base 10 unsigned int conv(char u) {try {for(unsigned int i=0; i!= 64; ++i) if(u == cifre[i]) return i; throw 0;} catch(...) {cerr << "non convertibile. Valore illegale: " << flush; throw;}} template <class U> void base10(char * s, U* uu) {U ret, pot1; unsigned int numchar = strlen(s); if(numchar == 1 && s[0] == 0 ) {*uu = ret; return;} try {for(unsigned int pos = numchar-1; pos; --pos) ret += pot * conv(s[pos]), pot *= 64; if(s[0] == - ) ret *= -1; else ret += pot * conv(s[0]);} catch(...) {cerr << [ << s << "]\n" << flush;} *uu = ret;} // una funzione template attivata SOLO se riceve un // argomento di tipo riconducibile a intero: in tal caso // lo converte in base 64 e lo restituisce come char*; // si tratta della prima delle due funzioni proposte nell altra soluzione template <class U> char * base64(typename enable if<is integral<u>::value, U> :: type numero) {char * ret; U numero = numero >= 0? numero : - numero; unsigned int ordinillo, segno = numero < 0, numchar = segno; double ordine = numero? log10(numero)/log10(64) : 0; ordinillo = (unsigned int)ordine + 1; numchar += ordinillo; ret = new char[1+numchar]; ret[numchar] = 0; if(!numero) {ret[0] = 0 ; return ret;} else if(segno) ret[0] = - ; ordinillo = 1; while(numero) {unsigned int scarto = numero % 64; ret[numchar-ordinillo++] = cifre[scarto]; numero /= 64;} return ret;}

4 // la controparte funzione template attivata SOLO nel caso opposto // non fa assolutamente nulla se non qualificare const il valore // restituito, per poterci prender dentro anche eventuali argomenti // trasmessi come stringhe virgolettate template <class U> const char * base64(typename enable if<!is integral<u>::value, U> :: type u) {return u;} // dichiarazioni ANTICIPATE di due classi: // servono alla definizione della successiva struct del piffero class mioistream; class mioostream; // una struct il cui stesso nome lascia capire che // l utilizzatore finale non la istanzierà mai esplicitamente. // Viene contestualmente creata una sua istanza nell ambito globale // e quindi, come ben si sa, visibile OVUNQUE cominciando da QUI. // La struct del piffero ha come unici membri due puntatori: // uno a ostream e l altro a istream. Inoltre per essa sono // dichiarati due operatori di input e output che restituiscono // riferimenti alle due classi di cui si è data dichiarazione // anticipata. Questo è possibile purché tali classi, una volta // definite, lo siano come eredi di istream e di ostream // (oppure di qualche loro erede). struct del piffero {ostream *f; istream *i; friend mioistream&operator>>(istream&, del piffero&); friend mioostream&operator<<(ostream&, del piffero&);}delpiffero; // definizione della classe mioistream come pubblica erede // di ifstream: come tale possederà tutti i metodi non privati // di quella classe (comprese tutte le segnature dei costruttori, // che sono ereditati a loro volta grazie alla direttiva using) // oltre a quello che vi si aggiunge. L averla resa erede di // ifstream, invece che di istream, implica che, almeno in questo // programma dimostrativo, non si possano leggere dati dallo standard // input tramite istanze di questa classe. Anche in questo caso // viene contestualmente istanziato un oggetto globale nomato imio. struct mioistream : public ifstream {using istream::istream; using ifstream::ifstream; // la seguente operator>>, MEMBRO di mioistream, è l aggiunta // più significativa e, in definitiva, la ragione per cui questa // classe viene definita: si osservi che si tratta di un membro // templatizzato che restituisce, provvidamente, un riferimento // alla classe stessa. template <class U> mioistream& operator >> (U& u) {// stessa struttura, mutatis mutandis,

5 // della template <class U> mioostream& operator << // definita come membro dell oggetto omio seguente char * buff; streamsize qui, qua; qui = tellg(), ignore(20000, ), qua = tellg(), seekg(qui), buff = new char[qua-qui+1], * delpiffero.i >> buff; clog << "devo interpretare come base64 ["<< buff << "]\n"; base10(buff, &u); return *this;}}imio; // la classe speculare di mioistream, dedicata alle operazioni // di scrittura. // Si osservi che le operazioni di scrittura EFFETTIVE // avvengono attraverso l oggetto puntato dal membro f di delpiffero. struct mioostream : public ofstream {using ostream::ostream; using ofstream::ofstream; template <class U> mioostream& operator << (U u) {*delpiffero.f << base64<u>(u); return *this;}}omio; // definizione della friend mioistream& operator >> // dichiarata per la struct del piffero mioistream&operator>>(istream&i, del piffero&d) {d.i = &i; // questa operator funge da "wrapper" per la operator >> di imio... return imio;} // definizione della friend mioostream& operator << // dichiarata per la struct del piffero mioostream& operator<<(ostream&o, del piffero& d) {d.f = &o; // questa operator funge da "wrapper" per la operator << di omio... return omio;} // e INFINE ecco la definizione del manipolatore auspicato // che sarà quello usato dall utilizzatore finale: si osservi // che restituisce un riferimento a del piffero del piffero& x64() {clog << "sono x64 e sono il manipolatore ATTIVANTE la base64\n"; return delpiffero;} // una breve main dimostrativa: ovviamente se si volesse utilizzare questo // manipolatore durante operazioni di lettura e scrittura di // Pappi e Cicci occorrerebbe NON SOLO che sia i Pappi sia i Cicci

6 // abbiano le loro operator<< e operator>> scritte a puntino // (il che, francamente, appare SCONTATAMENTE BANALE), ma anche // che abbiano una operator di conversione a qualche tipo intero, // altrimenti non si capirebbe il significato di una lettura o // scrittura in base 64 di un Pappo o di un Ciccio. // // Si osservi come il comportamento standard delle operazioni di I/O // si ricupera immediatamente per omissione del manipolatore. int main() {int k{-77}; char linea[201]; ofstream *ossa = new ofstream; ossa->open("peppo"); *ossa << x64() << "tanto va la gatta"; // inserimento vano del manipolatore *ossa << endl; *ossa << 200 << \n ; // scrittura della costante intera 200 // eseguite l analisi grammaticale della seguente linea di codice // e CAPITE, in base a tutto quanto è stato già detto, // COME e PERCHÉ l ambaradan funziona. *ossa << x64() << k; // scrittura di k in base64: nel file appare -1D *ossa << \n ; *ossa << k+1; // scrittura in base normale di k+1, ossia -76 *ossa << \n ; *ossa << k << endl; // scrittura in base normale di k, ossia -77 ossa->close(); ifstream *issa = new ifstream; issa->open("peppo"); issa -> getline(linea, 200), clog << "letto da file [" << linea << "]\n"; // letta correttamente la prima linea streamsize qui; qui = issa->tellg(); *issa >> k; clog << "letto da file " << k << endl; // letta correttamente la costante 200 issa->seekg(qui); *issa >> x64() >> k; clog << "letto da file " << k << endl; // riletto lo STESSO dato in base64 *issa >> x64() >> k; clog << "letto da file " << k << endl; // letto correttamente 1D in base64 *issa >> k; clog << "letto da file " << k << endl; // letto correttamente k in base normale *issa >> x64() >> k; clog << "letto da file " << k << endl; // letto correttamente k in base64 } Problema 2 Questo problema è addirittura banale: viene proposto un codice che lo risolve senza ulteriori commenti. Si lascia agli studenti l autodidattica della spiegazione. L unica annotazione che merita di essere fatta è che il trattamento delle lettere accentate necessita che la LOCALE in esercizio nella SHELL le supporti adeguatamente, altrimenti saranno attraversate come aria fresca. # include <iostream> # include <fstream>

7 # include <sstream> # include <string> using namespace std; char PencaPolla(char a) {char alfabeto minuscolo[] { $, a, d, b, e, f, h, j, g, i, *, k, l, m, n, o, #, t, s, r, q, p, &, x, y, z, u, v, w, }, alfabeto maiuscolo[] { $, A, D, B, E, F, H, J, G, I, *, K, L, M, N, O, #, T, S, R, Q, P, &, X, Y, Z, U, V, W, }; if(a >= A && a <= Z ) return alfabeto maiuscolo[a- A ]; else if(a >= a && a <= z ) return alfabeto minuscolo[a- a ]; else if(a == L à ) return alfabeto minuscolo[26]; else if(a == L À ) return alfabeto maiuscolo[26]; else if(a == L é ) return alfabeto minuscolo[27]; else if(a == L É ) return alfabeto maiuscolo[27]; else if(a == L è ) return alfabeto minuscolo[28]; else if(a == L È ) return alfabeto maiuscolo[28]; else if(a == L ì ) return alfabeto minuscolo[29]; else if(a == L Ì ) return alfabeto maiuscolo[29]; else if(a == L ò ) return alfabeto minuscolo[30]; else if(a == L Ò ) return alfabeto maiuscolo[30]; else if(a == L ù ) return alfabeto minuscolo[31]; else if(a == L Ù ) return alfabeto maiuscolo[31]; else return a;} int main(int narg, const char ** args) {if(narg == 1) return 1; ifstream is(args[1]); if(!is) return 2; streamsize q; is.seekg(0, ios::end), q = is.tellg(), is.seekg(0); char * buff = new char[q], c; is.read(buff, q), is.close(); string s(buff); istringstream iss(s); for(streamsize i=0; i!= q; ++i) iss.get(c), cout << PencaPolla(c);}

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

Concetto di stream. c i a o \0. c i a o \0. c i a o \0 Concetto di stream Uno stream è un flusso di byte che permette al programma di comunicare con l esterno (es. con periferiche di input/output) c i a o \0 c i a o \0 c i a o \0 Stream di uscita standard

Dettagli

INFORMATICA File di testo in C Roberta Gerboni

INFORMATICA File di testo in C Roberta Gerboni 2018 - Roberta Gerboni File di testo in C++ Il linguaggio C++ mette a disposizione le seguenti classi per operare sui file (è necessario includere nel programma l header ), consentendo tipo di

Dettagli

Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione stream o l input/output del C++ è basato sugli stream o gli stream sono

Dettagli

Gli stream. ios ostream. istream. iostream

Gli stream. ios ostream. istream. iostream I/O da FILE Gli stream Alla base delle operazioni di I/O, in C++, sta il concetto di stream (flusso) di byte tra la memoria principale ed i dispositivi di input (la tastiera, i file di sola lettura) e

Dettagli

File. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

Dettagli

Input / Output attraverso stream. I/O in C vs. I/O in C++

Input / Output attraverso stream. I/O in C vs. I/O in C++ Alessio Bechini - Corso di - Input / Output attraverso stream (anno accademico 2002-2003) Utilizzo di stream per I/O I/O in C vs. I/O in C++ La libreria C standard per l I/O viene acceduta con stdio.h

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

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

Input/Output. Input/Output. Lezione 16

Input/Output. Input/Output. Lezione 16 Input/Output Lezione 16 Input/Output in C++ Il linguaggio C++ non prevede istruzioni specifiche per gestire le operazioni di input ed output di un programma L input e l output può essere gestito attraverso

Dettagli

Laboratorio di Algoritmi e Strutture Dati 2001/02 1

Laboratorio di Algoritmi e Strutture Dati 2001/02 1 Lezione 16 in C++ Il linguaggio C++ non prevede istruzioni specifiche per gestire le operazioni di input ed output di un programma L input e l output può essere gestito attraverso librerie progettate in

Dettagli

#include <iostream> #include <cstring> #include <fstream> using namespace std; struct elem{ char parola[31]; elem *pun; };

#include <iostream> #include <cstring> #include <fstream> using namespace std; struct elem{ char parola[31]; elem *pun; }; #include #include #include using namespace std; struct elem{ char parola[31]; elem *pun; ; struct Dizionario{ elem *testa; ; void inizializzadizionario(dizionario &D){ D.testa

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

Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

Dettagli

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo

Dettagli

Introduzione al C++ Parte 2

Introduzione al C++ Parte 2 Introduzione al C++ Parte 2 Sommario Le differenze fra C e C++ il qualificatore const i namespace gli stream Evitare modifiche accidentali Il qualificatore const indica che la variabile non può più essere

Dettagli

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA Laboratorio di Programmazione e Calcolo Cognome:... A.A. 2017-18 Nome:... Test Finale con Soluzioni Matricola:... Roma, 18 gennaio 2018

Dettagli

Soluzione del 25 giugno 2015

Soluzione del 25 giugno 2015 Soluzione del 25 giugno 2015 Problema unico Per quanto richiesto dal problema la class Isola dovrà avere un costruttore default accessibile e marcati con la clausola delete sia i costruttori copy e move

Dettagli

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA Laboratorio di Programmazione e Calcolo A.A. 2018-19 Test Finale Roma, 17 gennaio 2019 1) Le variabili A, B e C sono dichiarate int.

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

Fondamenti di Informatica Ing. Biomedica

Fondamenti di Informatica Ing. Biomedica Fondamenti di Informatica Ing. Biomedica Esercitazione n.10 Strutture Antonio Arena antonio.arena@ing.unipi.it Ripresa esercizio per casa Fondamenti di Informatica - Esercitazione n.10 2 Scrivere una funzione

Dettagli

Uno stream rappresenta un flusso di dati da cui e' possibile

Uno stream rappresenta un flusso di dati da cui e' possibile L'I/O in C++ e' basato sul concetto di stream. Uno stream rappresenta un flusso di dati da cui e' possibile prelevare caratteri (input stream) inserire caratteri (output stream) I vari tipi di stream sono

Dettagli

C++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW

C++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non

Dettagli

BREVE INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ E MATHEMATICA

BREVE INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ E MATHEMATICA BREVE INTRODUZIONE ALLA PROGRAMMAZIONE IN C++ E MATHEMATICA 1 LA PROGRAMMAZIONE STRUTTURATA Regole formali per la costruzione del software Metodo di astrazione suddivisione del programma in parti logiche

Dettagli

Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria <iomanip> I flag di formattazione Gerarchia di dati

Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria <iomanip> I flag di formattazione Gerarchia di dati I/O da FILE Indice Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria I flag di formattazione Gerarchia di dati Creazione di file Apertura di file

Dettagli

L AMBIENTE CODE BLOCKS E L IO

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

Dettagli

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto

Dettagli

Stringhe. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

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

Le funzioni: la dichiarazione

Le funzioni: la dichiarazione Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Le regole di visibilità (scope) Il passaggio degli argomenti per valore e riferimento La funzione main() Le funzioni: la dichiarazione

Dettagli

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni: la dichiarazione

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

Passaggio di parametri per valore

Passaggio di parametri per valore Passaggio di parametri per valore #include using namespace std; int main() { int z, x = 1; z = ; cout

Dettagli

4. Accesso diretto per gli archivi con record a lunghezza costante

4. Accesso diretto per gli archivi con record a lunghezza costante 4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Programmazione modulare

Programmazione modulare Programmiamo in.. Programmazione modulare Un programma complesso si suddivide in più sottoprogrammi o funzioni. Un programma suddiviso in piccoli pezzi, è più semplice da gestire da aggiornare da correggere

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

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

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

Char e bool. 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

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato

Dettagli

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri

Dettagli

Fondamenti di Informatica II 24. Gestione I/O e File in C++

Fondamenti di Informatica II 24. Gestione I/O e File in C++ Gli stream in C++ stream è un astrazione che rappresenta un flusso di dati che scorre tra una sorgente e una destinazione idea di Stroustrup : una sequenza di caratteri Fondamenti di Informatica II 24.

Dettagli

Le classi. Classi derivate

Le classi. Classi derivate Classi derivate È possibile esprimere proprietà comuni tra le classi? I concetti che sottendono alle definizioni delle classi, sono in relazione tra loro o sono in comune? struct studente { string name;

Dettagli

Classi, oggetti e librerie per l'i/o

Classi, oggetti e librerie per l'i/o I/O da FILE Indice Gli stream Classi, oggetti e librerie per l I/O cout, cin I manipolatori di stream, la libreria I flag di formattazione Gerarchia di dati Creazione di file Apertura di file

Dettagli

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a s t u d i o t e d i o l l i b e r o.

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a s t u d i o t e d i o l l i b e r o. D. L. 2 8-0 3-2 0 0 3, n. 4 9 R i f o r m a d e l l a n o r m a t i v a i n t e m a d i a p p l i c a z i o n e d e l p r e l i e v o s u p p l e m e n t a r e n e l s e t t o r e d e l l a t t e e d e

Dettagli

c h e d o v r e b b e e s s e r e d i p r o p r i e t à d e l l ' A S L N a p o l i 3 S u d u b i c a t o p r o p r i o l ' o

c h e d o v r e b b e e s s e r e d i p r o p r i e t à d e l l ' A S L N a p o l i 3 S u d u b i c a t o p r o p r i o l ' o P R E S I D E N T E T e r z o p u n t o a l l ' o r d i n e d e l g i o r n o : i n t e r r o g a z i o n e g r u p p o c o n s i l i a r e " L i b e r i e d u g u a l i p e r S a n t ' A g n e l l o "

Dettagli

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a s t u d i o t e d i o l l i b e r o.

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a s t u d i o t e d i o l l i b e r o. D. L g s. 2 7-0 5-1 9 9 9, n. 1 6 5 S o p p r e s s i o n e d e l l ' A I M A e i s t i t u z i o n e d e l l ' A g e n z i a p e r l e e r o g a z i o n i i n a g r i c o l t u r a ( A G E A ), a n o

Dettagli

C O M U N E D I P O L I C O R O S T A T U T O D E L I B E R A N. 2 3 D E L 2 8 / 0 6 /

C O M U N E D I P O L I C O R O S T A T U T O D E L I B E R A N. 2 3 D E L 2 8 / 0 6 / C O M U N E D I P O L I C O R O S T A T U T O D E L I B E R A N. 2 3 D E L 2 8 / 0 6 / 2 0 0 2 A r t. 1 L a C o m u n i t à 1. L o r d i n a m e n t o g i u r i d i c o d e l C o m u n e è l e s p r e

Dettagli

T R I B U N A L E D I T R E V I S O B A N D O P E R L A C E S S I O N E C O M P E T I T I V A D E L C O M P E N D I O A Z I E N D A L E D E L L E

T R I B U N A L E D I T R E V I S O B A N D O P E R L A C E S S I O N E C O M P E T I T I V A D E L C O M P E N D I O A Z I E N D A L E D E L L E 1 T R I B U N A L E D I T R E V I S O B A N D O P E R L A C E S S I O N E C O M P E T I T I V A D E L C O M P E N D I O A Z I E N D A L E D E L L E O F F I C I N E M E C C A N I C H E D I P O N Z A N O

Dettagli

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++ Fondamenti di Informatica 2008 corso prof. A. Picariello Operazioni sui FILE in C++ Librerie di I/O per la gestione dei FILE Il C++ consente di utilizzare le librerie standard di I/O del C mette anche

Dettagli

File: /home/peppino/area_lavori/ese orgenti/oggetti/ohm_classe.cpp Pagina 1 di 5

File: /home/peppino/area_lavori/ese orgenti/oggetti/ohm_classe.cpp Pagina 1 di 5 File: /home/peppino/area_lavori/ese orgenti/oggetti/ohm_classe.cpp Pagina 1 di 5 * esempi_c++/sorgenti/ohm_classe.cpp * * Una classe semplice per applicare la legge di OHM * * @autore Giuseppe Talarico

Dettagli

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

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

Dettagli

Gestione dei file di dati

Gestione dei file di dati Gestione dei file di dati 1. Le classi di input/output Il linguaggio C++ non dispone di proprie istruzioni per la gestione dell interazione con l utente. Si appoggia infatti su appositi comandi scritti

Dettagli

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione L argomento della lezione Dall informazione al file Per permettere il riutilizzo di informazioni oltre la durata dei programmi che le hanno prodotte, i dati sono allocati su dispositivi in memoria secondaria.

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

Dettagli

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità

Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Funzioni I Parte Indice Le funzioni: dichiarazione, definizione e chiamata Il passaggio degli argomenti per valore e riferimento La funzione main() Le regole di visibilità Le funzioni Tutti i linguaggi

Dettagli

Programmazione I Prova scritta - 10 gennaio h20min

Programmazione I Prova scritta - 10 gennaio h20min Programmazione I Prova scritta - 10 gennaio 2019-1h20min NOTA: Nei programmi si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main, inoltre si sottintenda la presenza delle

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di

Dettagli

Tipi strutturati - struct

Tipi strutturati - struct Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

File: /home/peppino/area_lavori/ese enti/oggetti/timbro_classe.cpp Pagina 1 di 5

File: /home/peppino/area_lavori/ese enti/oggetti/timbro_classe.cpp Pagina 1 di 5 File: /home/peppino/area_lavori/ese enti/oggetti/timbro_classe.cpp Pagina 1 di 5 * esempi_c++/sorgenti/timbro_classe.cpp * * Una classe semplice per apprendere la programmazione * ad oggetti ( OOP ). *

Dettagli

Programmazione I Prova scritta - 18 febbraio h20min

Programmazione I Prova scritta - 18 febbraio h20min Programmazione I Prova scritta - 18 febbraio 2019-1h20min NOTA: Nei programmi si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main, inoltre si sottintenda la presenza delle

Dettagli

Matematica - SMID : Programmazione 20 Febbraio 2007 FOGLIO RISPOSTE

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

Dettagli

Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Dal C al C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Commenti Non aumentano la dimensione del programma eseguibile ma si rivelano utili per riassumere il comportamento

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Gli stream in C++ Laboratorio di Informatica 8. Gestione I/O e file in C++ Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni A.A. 2013-2014 2 Semestre Prof. Giovanni Pascoschi stream è un astrazione

Dettagli

Gestire le situazioni di errore

Gestire le situazioni di errore Gestire le situazioni di errore #include using namespace std; Classe VettoreDiInteri const int MAX = 10; class VettoreInteri { int v[max]; public: ; Gestire le situazioni di errore Ottenere

Dettagli

Fondamenti di Informatica Ing. Biomedica

Fondamenti di Informatica Ing. Biomedica Fondamenti di Informatica Ing. Biomedica Esercitazione n.9 Stringhe & Algoritmi di ordinamento Antonio Arena antonio.arena@ing.unipi.it Stringhe Fondamenti di Informatica - Esercitazione n.9 2 In C++ non

Dettagli

Il paradigma OO e le Classi

Il paradigma OO e le Classi Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui

Dettagli

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Struttura di un linguaggio

Struttura di un linguaggio Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

//=============================== class String { // VARIABILI DI ISTANZA char * base; int length;

//=============================== class String { // VARIABILI DI ISTANZA char * base; int length; #include using namespace std; String STRING 1 //=============================== class String { // VARIABILI DI ISTANZA char * base; int length; //METODI // metodi interni di servizio-------------------------------

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 05/02/2014/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento b) dereferenziazione e

Dettagli

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

Dettagli

String. String: Esercizio 1

String. String: Esercizio 1 1 String class String { private: // VARIABILI DI ISTANZA char * base; int length;... 2 String: Esercizio 1 Scrivere e testare i metodi di base: a. i costruttori String(), String(char * s), b. il distruttore.

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

a r t t e s e g g. l. f. c o m e n o v e l l a t e d a l d. l g s n. 5 i n v i r t ù d i

a r t t e s e g g. l. f. c o m e n o v e l l a t e d a l d. l g s n. 5 i n v i r t ù d i T r i b u n a l e C i v i l e e P e n a l e d i M a n t o v a S e z i o n e S e c o n d a C i v i l e I l T r i b u n a l e d i M a n t o v a, r i u n i t o i n C a m e r a d i C o n s i g l i o e c o

Dettagli

( 4 ) I l C o n s i g l i o e u r o p e o r i u n i t o s i a T a m p e r e i l 1 5 e 1 6 o t t o b r e h a i n v i t a t o i l C o n s i g l

( 4 ) I l C o n s i g l i o e u r o p e o r i u n i t o s i a T a m p e r e i l 1 5 e 1 6 o t t o b r e h a i n v i t a t o i l C o n s i g l R e g o l a m e n t o ( C E ) n. 4 / 2 0 0 9 d e l C o n s i g l i o, d e l 1 8 d i c e m b r e 2 0 0 8, r e l a t i v o a l l a c o m p e t e n z a, a l l a l e g g e a p p l i c a b i l e, a l r i c

Dettagli

ciclo di vita della soluzione (informatica) di un problema

ciclo di vita della soluzione (informatica) di un problema Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Strutture di dati Laboratorio di Informatica 5. Strutture / Array di oggetti / Pila&Coda in C++ Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna

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

Fondamenti di Informatica

Fondamenti di Informatica Strutture dati complesse Esempi di strutture dati complesse analizzate in questa lezione: Fondamenti di Informatica 21. Strutture di dati complesse in C++ Array di puntatori Pila (Stack) Coda (queue) Liste

Dettagli

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

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

Dettagli

ESERCIZIO 1. AZ111 milano 12:34 23 AZ222 buenos-aires 12: BA333 toronto 4:15 20 KM444 madrid 10:12 100

ESERCIZIO 1. AZ111 milano 12:34 23 AZ222 buenos-aires 12: BA333 toronto 4:15 20 KM444 madrid 10:12 100 ESERCIZIO 1 Scrivete un programma per la gestione delle informazioni relative ai voli giornalieri in partenza da un certo aeroporto. Il programma deve leggere da file le informazioni relative ai voli,

Dettagli

W I L L I A M S H A K E S P E A R E G I U L I O C E S A R E. T r a g e d i a i n 5 a t t i

W I L L I A M S H A K E S P E A R E G I U L I O C E S A R E. T r a g e d i a i n 5 a t t i W I L L I A M S H A K E S P E A R E G I U L I O C E S A R E T r a g e d i a i n 5 a t t i T r a d u z i o n e e n o t e d i G o f f r e d o R a p o n i T i t o l o o r i g i n a l e : J U L I U S C A E

Dettagli

Matematica - SMID : Programmazione Gennaio 2009 FOGLIO RISPOSTE

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

Dettagli

Classe: vettore di interi

Classe: vettore di interi Classe: ettore di interi #include using namespace std; int main() { Oggetto VettoreInteri contenente 10 elementi di tipo intero VettoreInteri ett;... return 0; Se olessimo un ettore di 20 elementi?

Dettagli

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro

Text files, streams. I file che ci interessano sono file di testo. anche se, logicamente, contengono numeri o altro Text files, streams I file che ci interessano sono file di testo anche se, logicamente, contengono numeri o altro In C/C++ ci sono anche i file binari, ma li ignoriamo file di testo = ASCII file = successione

Dettagli

Commenti. I commenti vengono ignorati dal compilatore, ovvero non vengono tradotti in codice eseguibile. /* righe multiple seconda riga */

Commenti. I commenti vengono ignorati dal compilatore, ovvero non vengono tradotti in codice eseguibile. /* righe multiple seconda riga */ Introduzione al C++ Sommario Le differenze fra C e C++ commenti parametri per funzioni funzioni inline overloading di funzione input/output nuovi header punto di dichiarazione delle variabili locali allocazione/deallocazione

Dettagli

Ingresso ed Uscita(1)

Ingresso ed Uscita(1) Ingresso ed Uscita(1) Un flusso (stream) corrisponde ad un istanza di una classe la cui parte pubblica contiene le operazioni necessarie e la parte privata le strutture dati (tra cui un buffer per memorizzare

Dettagli

struct costobiglietto { //struttura per prezzo float prezzo; float tasse; float prezzototale; };

struct costobiglietto { //struttura per prezzo float prezzo; float tasse; float prezzototale; }; /* Programma 12cppEse1.cpp Autore : Riontino Raffaele 4 informatici ITIS Molinari - Milano corso serale 2/11/2010 Testo : Si vuole realizzare un tipo struct, utilizzato per informazioni su biglietti per

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

Dettagli

La programmazione ad oggetti (OOP)

La programmazione ad oggetti (OOP) Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente

Dettagli

eccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW

eccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW eccezioni Alberto Ferrari eccezioni o C++ fornisce strumenti per gestire situazioni eccezionali o terminologia o sollevare un eccezione (to throw an exception) = segnalare una situazione eccezionale o

Dettagli

Classe Squadra. #include <iostream> using namespace std;

Classe Squadra. #include <iostream> using namespace std; Classe Squadra Si vuole scrivere un programma che gestisce la classifica di un campionato tra squadre di calcio, ognuna identificata dal proprio nome. Il programma deve essere in grado di assegnare un

Dettagli

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni

Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =

Dettagli

Fondamenti di Informatica Ing. Biomedica

Fondamenti di Informatica Ing. Biomedica Fondamenti di Informatica Ing. Biomedica Esercitazione n.8 Matrici Antonio Arena antonio.arena@ing.unipi.it Fondamenti di Informatica - Esercitazione n.8 2 Matrici In C++ viene trattata come array multi-dimesionale.

Dettagli

Sintassi: FORTRAN vs C/C++

Sintassi: FORTRAN vs C/C++ Sintassi: FORTRAN vs C/C++ Struttura del programma In C/C++ non è necessario un particolare formato il codice PROGRAM PROGRAM TEST TEST C esempio esempio di di programma programma spazi END END Il C/C++

Dettagli

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a m a i t e d i o l i. c o m

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a m a i t e d i o l i. c o m C o n v e n z i o n e d e l l A j a 2 5-1 0-1 9 8 0 C o n v e n z i o n e s u g l i a s p e t t i c i v i l i d e l l a s o t t r a z i o n e i n t e r n a z i o n a l e d i m i n o r i P r e a m b o l

Dettagli

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a m a i t e d i o l i. c o m

1 S t u d i o l e g a l e T e d i o l i v i a F r a t t i n i, M a n t o v a m a i t e d i o l i. c o m C o n v e n z i o n e E u r o p e a d e l L u s s e m b u r g o, 2 0-0 5-1 9 8 0. C o n v e n z i o n e e u r o p e a s u l r i c o n o s c i m e n t o e l ' e s e c u z i o n e d e l l e d e c i s i o

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

Dettagli