Laboratorio di Algoritmi e Strutture Dati. Esercizi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di Algoritmi e Strutture Dati. Esercizi"

Transcript

1 Laboratorio di Algoritmi e Strutture Dati Esercizi Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro 1

2 LAB_WORK 2

3 Realizzazione ed uso di librerie statiche, astrazione funzionale, astrazione dati, strutture e classi Breve guida al Dev-C++: Creazione di un progetto, Creazione e linking di librerie, Il processo di compilazione, Debugging Creazione ed uso di librerie statiche Realizzazione di una struttura dati e relative funzioni per la sua manipolazione (Rettangolo - Time) Realizzazione in C++ della struttura dati matrice (interi/reali allocazione statica/dinamica) 3

4 Classe Rettangolo Definire Classe Rettangolo: Attributi: lunghezza ed ampiezza (ognuno dei quali per default vale 1) Funzioni membro: area, perimetro, set e get per settare/ visualizzare lunghezza ed ampiezza e per verificare che i valori di lunghezza ed ampiezza siano numeri a virgola mobile compresi fra 0.0 e

5 Definizione di Classe e suo utilizzo, es.: classe Rettangolo Class Rettangolo { private: double Base; double Altezza; public: void NuovoRettangolo (double ValoreBase, double ValoreAltezza); double Area(void); double Perimetro(void); ; Rettangolo.h #include "Rettangolo.h" void Rettangolo::NuovoRettangolo(double ValoreBase, double ValoreAltezza){ Base=ValoreBase; Altezza=ValoreAltezza; double Rettangolo::Area(void){ return (Base*Altezza) double Rettangolo::Perimetro(void){ return (2.0*Base + 2.0*Altezza) Rettangolo.cpp 5

6 Definizione di Classe e suo utilizzo, es.: classe Rettangolo int main () { Rettangolo R1; double ValoreBase, ValoreAltezza; cout << "Base: "; cin >> ValoreBase; cout << "Altezza: "; cin >> ValoreAltezza; R1.NuovoRettangolo(ValoreBase,ValoreAltezza); cout << "L area è: " << R1.Area() << '\n'; cout << "Il perimetro è: " << R1.Perimetro() << '\n'; return 0; TestRettangolo.cpp Nell implementazione delle classi si usa l operatore di risoluzione di visibilità (scope resolution) costituito dai due punti doppi "::" per individuare le operazioni proprie della classe e distinguere eventuali funzioni con lo stesso nome di altre classi. 6

7 Classe Time2 // Time abstract data type definition class Time { public: Time( int = 0, int = 0, int = 0 ); // default constructor // set functions void settime( int, int, int ); // set hour, minute, second void sethour( int ); // set hour (after validation) void setminute( int ); // set minute (after validation) void setsecond( int ); // set second (after validation) // get functions int gethour(); // return hour int getminute(); // return minute int getsecond(); // return second void printuniversal(); // output time in universal-time format void printstandard(); // output time in standard-time format private: int hour; // 0-23 (24-hour clock format) int minute; // 0-59 int second; // 0-59 ; // end class Time Time.h 7

8 Classe Time2 #include <iostream> #include <iomanip> #include "Time.h" // include definition of class Time from Time.h using namespace std; // Costruttore Time::Time( int hr, int min, int sec ) { settime( hr, min, sec ); // validate and set time void Time::setTime( int h, int m, int s ){ sethour( h ); // set private field hour setminute( m ); // set private field minute setsecond( s ); // set private field second void Time::setHour( int h ){ hour = ( h >= 0 && h < 24 )? h : 0; // validate hour void Time::setMinute( int m ){ minute = ( m >= 0 && m < 60 )? m : 0; // validate minute void Time::setSecond( int s ){ second = ( s >= 0 && s < 60 )? s : 0; // validate second... Time.cpp 8

9 Classe Time2... int Time::getHour(){ return hour; int Time::getMinute(){ return minute; int Time::getSecond(){ return second; void Time::printUniversal(){ cout << setfill( '0' ) << setw( 2 ) << gethour() << ":" << setw( 2 ) << getminute() << ":" << setw( 2 ) << getsecond(); void Time::printStandard(){ cout << ( ( gethour() == 0 gethour() == 12 )? 12 : gethour() % 12 ) << ":" << setfill( '0' ) << setw( 2 ) << getminute() << ":" << setw( 2 ) << getsecond() << ( hour < 12? " AM" : " PM" ); Time.cpp 9

10 Classe Time2 #include <iostream> #include "Time.h" // include definition of class Time from Time.h using namespace std; int main(){ Time t1; // all arguments defaulted Time t2( 2 ); // hour specified; minute and second defaulted Time t3( 21, 34 ); // hour and minute specified; second defaulted Time t4( 12, 25, 42 ); // hour, minute and second specified Time t5( 27, 74, 99 ); // all bad values specified cout << "Constructed with:\n\nt1: all arguments defaulted\n "; t1.printuniversal(); // 00:00:00 cout << "\n "; t1.printstandard(); // 12:00:00 AM cout << "\n\nt2: hour specified; minute and second defaulted\n "; t2.printuniversal(); // 02:00:00 cout << "\n "; t2.printstandard(); // 2:00:00 AM cout << "\n\nt3: hour and minute specified; second defaulted\n "; t3.printuniversal(); // 21:34:00 cout << "\n "; t3.printstandard(); // 9:34:00 PM cout << "\n\nt4: hour, minute and second specified\n "; t4.printuniversal(); // 12:25:42 cout << "\n "; t4.printstandard(); // 12:25:42 PM cout << "\n\nt5: all invalid values specified\n "; t5.printuniversal(); // 00:00:00 cout << "\n "; t5.printstandard(); // 12:00:00 AM cout << endl; TimeTest.cpp 10

11 Classe Time2 Evoluzione Classe Time2: Estensione con funzione membro tick che incrementa l'orario di un oggetto Time di una unità al secondo. L'oggetto Time deve sempre restare in uno stato consistente Scrivere un programma di test che verifichi la funzione in un ciclo visualizzando l'orario in formato standard. Verificare il corretto funzionamento per: Incremento al minuto successivo Incremento all'ora successiva Incremento al giorno successivo (da 11:59:59 PM a 12:00:00 AM) 11

12 void incrementminutes(time &tt, const int count) { cout << "Incrementing minute " << count << " times:\nstart time: "; tt.printstandard(); for ( int i = 0; i < count; i++ ) { tt.setminute( ( tt.getminute() + 1 ) % 60); if ( tt.getminute() == 0 ) tt.sethour( ( tt.gethour() + 1 ) % 24); cout << "\nminute + 1: "; tt.printstandard(); cout << endl; 12

13 void incrementminutes( Time &, const int ); int main() { // Test funzione incremento Time t; t.settime( 11, 58, 0 ); incrementminutes( t, 3 ); return 0; 13

14 Classe Matrice Specifica sintattica Tipi: matrice, intero, tipoelem Operatori: CreaMatrice() matrice LeggiMatrice(intero, intero) tipoelem ScriviMatrice(intero, intero, tipoelem) matrice Somma(matrice) matrice // somma m1 ad m2, m1 è la matrice su cui il metodo è invocato Prodotto(matrice) matrice // moltiplica m1 x m2, m1 è la matrice su cui il metodo è invocato 14

15 Classe Matrice class Matrice { public: // Costruttore Distruttore Matrice(indice, indice); ~Matrice(); indice getnrighe(); indice getncolonne(); tipoelem leggimatrice(indice,indice); void scrivimatrice(indice,indice,tipoelem); Matrice somma(matrice); Matrice prodotto(matrice); private: indice righe; indice colonne; ; 15

16 HOME_WORK 16

17 Evoluzione classe Rettangolo: Versione che rappresenta il rettangolo mediante le coordinate cartesiane (x,y) dei quattro angoli Costruttore: chiama set che accetta 4 coppie di coordinate e verifica che ognuna di esse ricada nel primo quadrante (x e y >0) e che tutti I valori delle coppie non siano maggiori di 20.0 Set verifica anche se le coordinate specificate individuano effettivamente un rettangolo Altre funzioni membro: calcolo lunghezza (la più grande fra le due dimensioni), ampiezza, area, perimetro Funzione square: determina se il rettangolo è un quadrato 17

18 Definizione nuovi metodi per la classe Matrice: AquisisciMatrice prodottoscalare(double scalare) che moltiplica ogni elemento della matrice con uno scalare trasposta(), che restituisce la trasposta di una matrice 18

Laboratorio di Algoritmi e Strutture Dati. Esercizi

Laboratorio di Algoritmi e Strutture Dati. Esercizi Laboratorio di Algoritmi e Strutture Dati Esercizi Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro 1 Revisione Esercizi lezione precedente 2 Classe

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Introduzione alla OOP Dal C al C++ C++ Orientato agli Oggetti Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari

Dettagli

Lezione 4. Costruttori

Lezione 4. Costruttori Lezione 4 Costruttori e distruttori Costruttori Quando si crea un oggetto di una classe è possibile inizializzarne i membri tramite il costruttore di classe Il costruttore è una funzione membro che ha

Dettagli

Indice. Il qualificatore const Le funzioni friend Il puntatore this Gli operatori new e delete I membri static La composizione di classi

Indice. Il qualificatore const Le funzioni friend Il puntatore this Gli operatori new e delete I membri static La composizione di classi Le Classi II Parte Indice Il qualificatore const Le funzioni friend Il puntatore this Gli operatori new e delete I membri static La composizione di classi Le classi ed il qualificatore const Il qualificatore

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Esercizi

Laboratorio di Algoritmi e Strutture Dati. Esercizi Laboratorio di Algoritmi e Strutture Dati Esercizi Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro 1 Operatori Indispensabili Ogni Classe che

Dettagli

Esercitazioni sulle classi

Esercitazioni sulle classi Esercitazioni sulle classi Armando Stellato stellato@info.uniroma2.it 1 Classi Possiamo vederle, da un punto di vista sintattico, come una estensione delle strutture, ma sono caratterizzate da notevoli

Dettagli

I membri e le restrizioni di accesso

I membri e le restrizioni di accesso I membri e le restrizioni di accesso Sommario I membri Le restrizioni di accesso Separazione interfaccia da implementazione Accedere ai membri di una classe La visibilità dall'esterno dei dati e delle

Dettagli

Sommario. Le strutture Le classi

Sommario. Le strutture Le classi Le Classi in C++ Sommario Le strutture Le classi Introduzione Iniziamo a parlare di strutture dati di tipo struct cioè di aggregati di dati Muoveremo poi dalla analisi dei limiti di queste strutture per

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

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi

OOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo

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

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

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

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

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Realizzazione di Liste (II) Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di

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

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

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco Sperimentazioni I Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 10 Novembre 2011 La scrittura di un programma Modellizzazione programma Flowcharts Pseudocode Scrittura del codice

Dettagli

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco

La scrittura di un programma Modellizzazione del programma Scrittura del codice Esercizi. Sperimentazioni I. Alberto Garfagnini, Marco Mazzocco Sperimentazioni I Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Ottobre 2013 La scrittura di un programma Modellizzazione programma Flowcharts Pseudocode Scrittura del codice Esercizi

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

Algoritmo di ordinamento per sostituzione. Esempio : dato l array :

Algoritmo di ordinamento per sostituzione. Esempio : dato l array : Algoritmo di ordinamento per sostituzione Per ottenere un ordinamento crescente con l algoritmo di ordinamento per Sostituzione si confronta l elemento nella prima posizione con gli elementi nelle posizioni

Dettagli

Informatica e Laboratorio di Programmazione C++ Object Oriented Programming Alberto Ferrari

Informatica e Laboratorio di Programmazione C++ Object Oriented Programming Alberto Ferrari Informatica e Laboratorio di Programmazione C++ Object Oriented Programming Alberto Ferrari oggetti o in C++ la definizione della classe è separata dalla implementazione dei metodi o definizione fornita

Dettagli

Lezione 2. Richiami su : Puntatori, Array e Strutture.

Lezione 2. Richiami su : Puntatori, Array e Strutture. Lezione 2 Richiami su : Puntatori, Array e Strutture http://www.mi.infn.it/~palombo/didattica/lab-tnds/corsolab/lezionifrontali/intro2.pdf Fernando Palombo Array Un insieme di n variabili dello stesso

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

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

Strutture come parametri di funzioni

Strutture come parametri di funzioni Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;

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

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

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

Laboratorio di Algoritmi e Strutture Dati. Alberi Binari

Laboratorio di Algoritmi e Strutture Dati. Alberi Binari Laboratorio di Algoritmi e Strutture Dati Alberi Binari Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Pile

Laboratorio di Algoritmi e Strutture Dati. Pile Laboratorio di Algoritmi e Strutture Dati Pile Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso dal dott.

Dettagli

Per implementare l Algoritmo si devono usare 2 coppie di indici :

Per implementare l Algoritmo si devono usare 2 coppie di indici : Ordinamento di una per sostituzione Ordinamento di una per sostituzione Per ottenere un ordinamento crescente di una per Sostituzione, l algoritmo è identico a quello per l ordinamento di un vettore. Si

Dettagli

/* ordinamento dei lati dal maggiore al minore e "riconoscimento" del grado di "regolarità" del triangolo */ void ordinalati()

/* ordinamento dei lati dal maggiore al minore e riconoscimento del grado di regolarità del triangolo */ void ordinalati() Una possibile soluzione, molto più esauriente rispetto alle richieste stesse del problema è la seguente (è stata ragionevolmente controllata, ma se qualcuno trovasse dei difetti di funzionamento è pregato

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Passaggio di parametri in C++ Il passaggio dei parametri tra funzione chiamante e funzione chiamata in C++ avviene secondo due modalità: Fondamenti di Informatica 16. Funzioni in C++ (parte 2) per valore

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

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

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

Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro

Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre Corrado Santoro Introduzione al C++ Corso di C++ INFN LNS 13 Dicembre 2010 Corrado Santoro Concetto di Oggetto Proposto del 1966 nell'ambito dell'ai per rappresentare l' universo del discorso (ambiente di riferimento

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1

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

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

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

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

Corso di Programmazione a oggetti

Corso di Programmazione a oggetti Corso di Programmazione a oggetti Overloading delle funzioni e parametri di default a.a. 2014/2015 Francesco Fontanella Overloading delle funzioni In C++, è possibile dare a funzioni diverse lo stesso

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

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

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

Ricerca binaria (o dicotomica) di un elemento in un vettore

Ricerca binaria (o dicotomica) di un elemento in un vettore Ricerca binaria (o dicotomica) di un elemento in un La ricerca binaria o dicotomica è utilizzata per ricercare i dati in un ORDNATO. L algoritmo di ricerca binaria, dopo ogni confronto, scarta metà degli

Dettagli

CL 3 - Es_01.cpp. #include <iostream> using namespace std;

CL 3 - Es_01.cpp. #include <iostream> using namespace std; Problema: Individua gli errori, sintattici, lessicali e logici, presenti nel seguente programma affinché risolva il problema: "Visualizzare il prodotto di due valori interi inseriti da tastiera ". (Riscrivere

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

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 programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione X Tatiana Zolo tatiana.zolo@libero.it 1 Proprietà fondamentale dei linguaggi object-oriented. Classe A classe base (o superclasse) classe da cui si eredita Classe

Dettagli

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Realizzazione di Liste Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di Bari

Dettagli

Le funzioni in C++ Fondamenti di Informatica. R. Basili. a.a

Le funzioni in C++ Fondamenti di Informatica. R. Basili. a.a Le funzioni in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Uso delle funzioni Un esempio Dichiarazione e Definizione Uso dei parametri Passaggio per valore Passaggio per

Dettagli

La programmazione Object Oriented e le sue applicazioni in Fisica.

La programmazione Object Oriented e le sue applicazioni in Fisica. La programmazione Object Oriented e le sue applicazioni in Fisica. Gabriella Cataldi, INFN Lecce Daniele Martello, dip. Fisica & INFN Lecce definizione di variabili Un metodo per automatizzare il processo

Dettagli

Lezione 3. Introduzione alla Programmazione Orientata agli Oggetti.

Lezione 3. Introduzione alla Programmazione Orientata agli Oggetti. Lezione 3 Introduzione alla Programmazione Orientata agli Oggetti http://www.mi.infn.it/~palombo/didattica/lab-tnds/corsolab/lezionifrontali/ Palombo Fernando Programmazione Orientata agli Ogge/ (OOP)

Dettagli

Programmazione orientata agli oggetti. Ivan Lanese e Cosimo Laneve

Programmazione orientata agli oggetti. Ivan Lanese e Cosimo Laneve Programmazione orientata agli oggetti Ivan Lanese e Cosimo Laneve Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Programmazione orientata agli oggetti È un paradigma di programmazione

Dettagli

Esercizi di programmazione in linguaggio C++ Classi

Esercizi di programmazione in linguaggio C++ Classi Esercizi di programmazione in linguaggio C++ Classi Nota: memorizzare i programmi in cartelle separate. Ogni cartella deve contenere, oltre al codice sorgente e al file eseguibile, gli eventuali file di

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

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à. Esercizio Specifica

Ereditarietà. Esercizio Specifica Ereditarietà Si richiede di progettare un sistema software che simula il comportamento di un numero dato di orologi. Gli orologi possono essere normali o più specializzati: a lancette o sveglie. Ogni orologio

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

Definizione di classi

Definizione di classi Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Storia del C e del C++ Fondamenti di Informatica 13. Introduzione al C++ Linguaggio C 1972, nato come evoluzione di due linguaggi BCPL e B Linguaggi senza nozione di tipo di dati Dennis Ritchie (Bell Laboratories)

Dettagli

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& & Programmazione+1+ + Mario&Pavone& & Dipar/mento+di+Matema/ca+ed+Informa/ca+ Università+degli+Studi+di+Catania+ mpavone@dmi.unict.it+ hap://www.dmi.unict.it/mpavone/+ Codifica dell algoritmo Linguaggio

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

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

Algoritmo di ordinamento per scambio (a bolle o bubble sort)

Algoritmo di ordinamento per scambio (a bolle o bubble sort) Algoritmo di ordinamento per scambio (a bolle o bubble sort) Per ottenere un ordinamento crescente con l algoritmo di ordinamento per scambio (bubble sort) si prenno in considerazione i primi due elementi

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

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 Introduzione alla sintassi C++ Array a una dimensione Array a due dimensioni Array multidimensionali Funzioni standard della libreria

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica Appunti dal laboratorio 1 Sistema Operativo Windows Vista, Windows 7, Mac OS X, Linux, Debian, Red Hat, etc etc Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

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

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

Algoritmi e Strutture Dati. Lezione 1

Algoritmi e Strutture Dati. Lezione 1 Algoritmi e Strutture Dati Lezione 1 www.iet.unipi.it/a.virdis Antonio Virdis antonio.virdis@unipi.it 1 Ma io so già programmare! Fondamenti I Sia dato un array contenente delle frasi. Scrivere un programma

Dettagli

Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE

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

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

INPUT: 2 parametri. double atan2( double y, double x) OUTPUT: risultato del calcolo. Le funzioni. Implementazioni di funzioni dell utente

INPUT: 2 parametri. double atan2( double y, double x) OUTPUT: risultato del calcolo. Le funzioni. Implementazioni di funzioni dell utente Le funzioni in C++ (CAP 6) Alberto Garfagnini e Marco Mazzocco Università degli studi di Padova A.A. 14/15 Le funzioni Sono i mattoni fondamentali per la costruzione dei programmi in C++ (e C) Il prototipo

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili

Università degli Studi di Cassino Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Corso di Fondamenti di Informatica Visibilità e tempo di vita delle variabili Anno Accademico Francesco Tortorella Il concetto di visibilità Un programma C++ può assumere una struttura complessa grazie

Dettagli

Informatica (A-K) 12. Linguaggio C -3

Informatica (A-K) 12. Linguaggio C -3 Introduzione alle funzioni in C Informatica (A-K) 12. Linguaggio C -3 int main() int i,n, fattoriale=1; printf( Inserire Numero: ); scanf( %d, &n); for (i =2; i

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x

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

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

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Ancora sulle Classi in C++ e Java. this

Ancora sulle Classi in C++ e Java. this Ancora sulle Classi in C++ e Java this Classe: riepilogo gestione memoria ogg1: oggetto di invocazione del metodo ogg: parametro fornito al metodo!"# ogg1 ogg2 ogg metodoa metodob varv varw varx varv varw

Dettagli

Array. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

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

Dettagli

Il puntatore alla classe base e le funzioni virtuali

Il puntatore alla classe base e le funzioni virtuali Polimorfismo Indice Le funzioni virtuali e il puntatore alla classe base Le funzioni virtuali pure Classi astratte: interfaccia Commenti sugli strumenti del C++ e l OOD Il puntatore alla classe base e

Dettagli

a.a Codice corso: 21012

a.a Codice corso: 21012 ESERCIZIO 1 Scrivere un programma in linguaggio C che lette dallo standard input due sequenze vettoriali ordinate di interi V1[n], V2[m] ne crei una terza V3[n+m] anch essa ordinata, che contenga tutti

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Dizionari

Laboratorio di Algoritmi e Strutture Dati. Dizionari Laboratorio di Algoritmi e Strutture Dati Dizionari Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso dal

Dettagli

Sommario. Esempio. Esempio: Canzone.h #ifndef CANZONE_H #define CANZONE_H. Esempio: Canzone.cpp

Sommario. Esempio. Esempio: Canzone.h #ifndef CANZONE_H #define CANZONE_H. Esempio: Canzone.cpp Sommario Classi e oggetti, un esempio: Oggetti in memoria stack e in memoria heap Oggetti e funzioni Oggetti ed array Il puntatore implicito this Costruttore: Lista di inizializzazione dei membri Tipo

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

Soluzione. Verifica Scritta Quartu S.E. L.S. - Brotzu Opzione Scienze Applicate

Soluzione. Verifica Scritta Quartu S.E. L.S. - Brotzu Opzione Scienze Applicate Verifica Scritta Quartu S.E. L.S. - Brotzu Opzione Scienze Applicate Docente: Prof. A.Saba Materia: Informatica Tempo a disposizione: 1 h Fila A Valutazione: Classe: Data: Nome: Cognome: Scrivere il programma

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Istruzioni Condizionali Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione

Dettagli

INTRODUZIONE AL C++ CLASSIFICAZIONE

INTRODUZIONE AL C++ CLASSIFICAZIONE INTRODUZIONE AL C++ 1 CLASSIFICAZIONE LINGUAGGI CHE OPERANO SU DATI OMOGENEI: FORTRAN77, LINGUAGGIO C, LINGUAGGIO C++, PASCAL: operano solo su DATI OMOGENEI (integer, float, double), senza classi e puntatori;

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

#include<iostream > #include<cstdlib> #include<iomanip> // per setfill(...),setw(...),setprecision(...)

#include<iostream > #include<cstdlib> #include<iomanip> // per setfill(...),setw(...),setprecision(...) Esercizio 1 Può un neonato vivere per 1 miliardo di secondi? Scrivere un programma C++ in grado di visualizzare il numero di anni compiuti da un neonato dopo 1 miliardo di secondi, facendo uso di variabili

Dettagli

Vittoria de Nitto Personè. Esercizi proposti per il corso Fondamenti di informatica

Vittoria de Nitto Personè. Esercizi proposti per il corso Fondamenti di informatica Vittoria de Nitto Personè Esercizi proposti per il corso Fondamenti di informatica Facoltà di Ingegneria - Università degli studi di Roma Tor Vergata Esercizi a. tipi predefiniti, assegnamento Esercizio

Dettagli

Overloading degli operatori

Overloading degli operatori Overloading degli operatori Indice L overloading degli operatori Restrizioni sull overloading degli operatori L overloading degli operatori: le funzioni membro L overloading degli operatori: le funzioni

Dettagli

Università di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando

Università di Roma Tor Vergata L6-1. iterazione: struttura di controllo per ripetere più volte uno stesso comando Università di Roma Tor Vergata L6-1 iterazione: struttura di controllo per ripetere più volte uno stesso comando comandi iterativi C++: while, do-while, for while: sintassi while (espressione) comando;

Dettagli