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

Documenti analoghi
Polimorfismo, Relazioni e Inheritance Corso di C++ INFN LNS 13 Dicembre Corrado Santoro

La programmazione ad oggetti (OOP)

Programmazione modulare

Definizione di classi

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

INTRODUZIONE ALLA PROGRAMMAZIONE

Esercitazione n 3. Capacità di analisi e di estensione di progetti esistenti Linguaggio Java:

Esercitazione n 3. Obiettivi

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

Introduzione al C++ Parte 2

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

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

a.a Codice corso: 21012, 22010

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

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

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

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

Esercizi di programmazione in linguaggio C++ Classi

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Corso di Fondamenti di Informatica Tipi strutturati: Stringhe

Fondamenti di Informatica

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

a.a Codice corso: 21012, HOMEWORKS

C. Genta Analisi Dati a.a. 2009/10 C++

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

L AMBIENTE CODE BLOCKS E L IO

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

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

C. Genta Tecniche di Programmazione e Analisi Dati a.a. 2007/08 C++

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

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

Fondamenti di Informatica Ing. Biomedica

L AMBIENTE CODE BLOCKS E L IO

Passaggio di parametri per valore

La programmazione ad oggetti (Parte 1)

(Def. funzioni con parametri di tipo matrice)

Fattorizzazione e curve ellittiche polinomi di II, II e IV grado

INTRODUZIONE AL C++ CLASSIFICAZIONE

IL COSTRUTTO SEQUENZA

Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment. Codice corso: 21012

Il paradigma OO e le Classi

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA

Strutture come parametri di funzioni

Gestire le situazioni di errore

Fondamenti di Informatica Ing. Biomedica

Modulo 2: Strutture fondamentali della programmazione Java

Nota: Si consideri il valore di pi greco.

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

Introduzione alla programmazione in C

ESERCIZI JAVA. Esercizi sulle Interfacce. Esercizio 1:

Laboratorio di programmazione

Programmazione Orientata agli Oggetti

ESPRESSIONI. Ivan Lanese

Standard Input e Standard Output

Definizione di classi. Walter Didimo

Oggetti e classi. La classe è un modello (un contenitore) che definisce la forma di un oggetto, specificando:

Introduzione alla programmazione a oggetti

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

Fondamenti di Informatica Ing. Biomedica

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

Prova Scritta del 20/09/10

Programmazione C: Esercizi su vettori e funzioni. Titolo presentazione. sottotitolo. Milano, XX mese 20XX

La funzione main() La funzione main(), presente in tutti i programmi C, è una funzione come tutte le altre

Le funzioni: la dichiarazione

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

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

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

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Classe: vettore di interi

Fondamenti di Informatica II 3. Funzioni in C++ (parte 1)

L organizzazione dei programmi

Definizione di classi

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti

Definizione di classi

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

Elementi di Informatica A. A. 2016/2017

Il puntatore alla classe base e le funzioni virtuali

C: panoramica. Violetta Lonati

Introduzione alle classi

Tipi strutturati - struct

Programmazione Procedurale in Linguaggio C++

Reti di Connessione e Instradamento AA

UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA

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

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE

Laboratorio di programmazione

cout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;

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

2 Operatori matematici e costrutto if

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

Informatica! Appunti dal laboratorio 1!

LABORATORIO di INFORMATICA

eccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW

Corso sul linguaggio Java

Progetto d esame. Elementi di Informatica. Esercitazione 1. Esercizio 1. #include <stdio.h> #include <cstdlib> #include <math.

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

Transcript:

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 per software di ragionamento) Un oggetto è caratterizzato da: Proprietà: caratteristiche intrinseche dell'oggetto, stato dell'oggetto, etc. Operazioni: azioni che posso compiere e che specificano il comportamento dell'oggetto. E' quindi un dato strutturato, dove: Le proprietà sono variabili associate all'oggetto Le operazioni sono pezzi di codice (funzioni) che agiscono sull'oggetto Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 2

Esempi di oggetti Figure geometriche: Punto, Quadrato, Cerchio, Triangolo Ognuno di essi ha delle caratteristiche intrinseche Punto: coordinate x, y Quadrato: dimensione lato Cerchio: raggio Triangolo: dimensione lati e/o angoli Su ognuno di essi posso fare delle operazioni: Punto: spostarlo di un delta o verso una nuova posizione assoluta Quadrato, Cerchio,Triangolo: cambiare le dimensioni, calcolare il perimetro, calcolare l'aera Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 3

Immaginiamo un oggetto punto Proprietà dell'oggetto (attributi dell'oggetto) X Y Operazioni sull'oggetto (metodi dell'oggetto) setxy: imposta le coordinate move: sposta il punto di un delta_x e delta_y getx: permette di ottenere la coordinata X gety: permette di ottenere la coordinata Y Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 4

Implementazione dell'oggetto punto Occorre dichiarare una classe: E' un tipo che permette di rappresentare tutti gli oggetti della stessa categoria (cioé tutti punti ) In cui specificare: Attributi: nome e tipo; Metodi: nome e prototipo (parametri, tipo dei parametri, valore di ritorno) Accessibilità: chi può usare ed avere accesso ai metodi e attributi Occorre poi implementare il codice dei metodi. Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 5

La classe Punto : Dichiarazione class Punto { int X; int Y; public: void setxy(int newx, int newy); void move(int offsetx, int offsety); int getx(); int gety(); };... Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 6

La classe Punto : Implementazione void Punto::setXY(int newx, int newy) { X = newy; Y = newy; } void Punto::move(int offsetx, int offsety) { X += offsetx; Y += offsety; } int Punto::getX() { return X; } int Punto::getY() { return Y; } Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 7

La classe Punto : Utilizzo int main (int argc, char* argv[]) { Punto p; p.setxy(10, 10); printf ("Il punto si trova in (%d,%d)\n", p.getx(), p.gety()); p.move(-30, 50); printf ("Ora il punto si trova in (%d,%d)\n", p.getx(), p.gety()); getchar(); } Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 8

Esercizio Definire una classe Cerchio con le seguenti caratteristiche: Attributi: Posizione x Posizione y raggio Metodi: Impostazione posizione Impostazione raggio Calcolo circonferenza Calcolo area Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 9

I/O in C++ L'I/O in C++ è migliorato rispetto al C Sono presenti delle classi standard (stream): cout: (console out) cin: (console in) E' possibile utilizzarli: Inviando dati al cout (per stamparli a video) Ricevendo dati dal cin (per leggere da tastiera) Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 10

#include <cstdlib> #include <iostream> #include <cstdlib> #include <iostream> using namespace std; Hello World in C++ int main (int argc, char* argv[]) { std::cout << Hello, world! << std::endl; system( PAUSE ); } int main (int argc, char* argv[]) { cout << Hello, world! << endl; system( PAUSE ); } Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 11

Costruttore e Distruttore Ogni oggetto ha attributi che rappresentano il suo stato (coordinate, raggio,...) Quando l'oggetto viene creato, occorre inizializzare questi attributi Abbiamo usato dei metodi specifici, tuttavia esiste un metodo speciale, denominato Costruttore dell'oggetto Questo metodo ha lo stesso nome della classe Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 12

La classe Punto con il Costruttore class Punto { int X; int Y; public: Punto(int initial_x, int initial_y); void setxy(int newx, int newy); void move(int offsetx, int offsety); int getx(); int gety(); }; Punto::Punto(int initial_x, int initial_y) { X = initial_x; Y = initial_y; } Punto p(10,10); Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 13

Distruttore Quando una variabile oggetto non è più usata (es. termina la funzione che l'ha dichiarata e utilizzata) essa viene rimossa E' possibile indicare un metodo che viene eseguito quando l'oggetto/variabile viene cancellato Questo metodo speciale è chiamato distruttore e si indica con ~NomeClasse class Punto { int X; int Y; public: Punto(int initial_x, int initial_y); ~Punto(int initial_x, int initial_y);... }; Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 14

Esercizio Modificare la classe Cerchio, introducendo l'opportuno costruttore Corrado Santoro, Corso C++ -Introduzione al linguaggio C++ 15