Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 ›...
Transcript of Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 ›...
![Page 1: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/1.jpg)
UNIVERSITA’
DEGLI STUDI ROMA TRE
DIPARTIMENTO DI FISICA “E. AMALDI”
Anno Accademico 2018-19
a
cura diSeverino Bussino
Laboratorio di Programmazione e Calcolo
6 crediti
![Page 2: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/2.jpg)
1)
Trattamento dell'informazione
Elementi di Architettura di un Computer
2) Sistemi operativi
0) Struttura del Corso
3) Introduzione alla Programmazione ad oggetti (OO)
![Page 3: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/3.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
33
Pagina Web del Corso
http://webusers.fis.uniroma3.it/~bussino/Lab_Prog_Calc.html
Alcuni aspetti della Pagina Web devono
ancora essere completati
![Page 4: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/4.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
4
3) Introduzione alla Programmazione ad oggetti (OO)
![Page 5: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/5.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
5
1.
ATLAS (LHC al Cern) 1.000.000 canali di lettura
bunch-crossing ogni 25 ns 40 Tbyte/sec 100 Mb/sec
Cluster
di
circa 1000 CPU (PC)
Software specifico per il trigger
di
III livello
Alcuni esempi
![Page 6: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/6.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
6
2. ARGO-YBJ (Raggi Cosmici –Tibet)
circa 1 Tbyte/mese di dati da memorizzare
dati disponibili per l’analisi
Cluster
di
PC per la gestione dello spazio
disco
Software dedicato per l’accesso ai dati e l’analisi
3. GRID (Calcolo
su
rete
geografica)
Alcuni esempi (segue)
![Page 7: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/7.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
7
4. Progetto genoma e studi di Biologia molecolare (www.embnet.org)
Alcuni esempi (segue)
![Page 8: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/8.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
8
Altre applicazioni:
1.
Telefonini cellulari
2.
Bancomat
3.
Reti di
Trasporto (ferrovie, metropolitane, …)
Alcuni esempi (segue)
![Page 9: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/9.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
9
Quali richieste alle strategie di programmazione? (1)
1.
Robustezza protetto nell’accesso ai dati
2.
Possibilita’
di
ri-utilizzo del codice1.
risorse umane ed economiche
2.
maggiore affidabilita’
![Page 10: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/10.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
10
Quali richieste alle strategie di programmazione? (2)
3.
Portabilita’1.
sistemi operativi diversi
2.
diverse versioni di uno stesso sistema
A motivo di architetture complesse e di sviluppo nel tempo
4.
Flessibilita'
e
Organizzazione
del
Codice
(Semplicita')gestione
ed evoluzione del codice
![Page 11: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/11.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
11
1.
IncapsulamentoI dati dell’oggetto sono nascosti ad altri oggetti ed è
possibile accedervi solo attraverso modalita’
ben definite
Robustezza
Flessibilita’
Caratteristiche Fondamentali della Programmazione
ad Oggetti (OO) (1)
1.
Robustezza
2.
Possibilita’
di
ri-utilizzo del codice
3.
Portabilita’
4.
Flessibilita' e Organizzazione del Codice (Semplicita')
![Page 12: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/12.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
12
2.
Ereditarieta’Gli oggetti complessi possono essere costruiti a partire da oggetti più
semplici. Gli oggetti complessi derivano tutto o parte del loro comportamento dagli oggetti a partire
dai
quali sono stati generati
Ri-utilizzo del codice Organizzazione
del codice
Caratteristiche Fondamentali della Programmazione
ad Oggetti (OO) (2)
Ereditarieta’
piu’
efficiente Flessibilita’
1.
Robustezza
2.
Possibilita’
di
ri-utilizzo del codice
3.
Portabilita’
4.
Flessibilita' e Organizzazione del Codice (Semplicita')
![Page 13: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/13.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
13
3.
PolimorfismoOggetti simili
possono essere trattati, in alcuni casi, come se fossero dello stesso tipo, senza la necessità
di implementare trattamenti specifici per distinguere tra le varie tipologie
Caratteristiche Fondamentali della Programmazione
ad Oggetti (OO) (3)
Ereditarieta’
piu’
efficiente Flessibilita’
1.
Robustezza
2.
Possibilita’
di
ri-utilizzo del codice
3.
Portabilita’
4.
Flessibilita' e Organizzazione del Codice (Semplicita')
Ereditarieta’
piu’
efficiente Flessibilita’
La Portabilita’ e’ una caratteristica del C++ standard (ANSi-C++)
![Page 14: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/14.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
14
(Altri) Paradigmi di
Programmazione (1)
1.
Programmazione ProceduraleSi decide quale algoritmo
puo'
risolvere il problema dato
Il linguaggio permette di implementare l'algoritmo scelto
2.
Programmazione ModulareSi decide quali moduli utilizzare.
Si separano i dati in modo da
nasconderli entro ciascun modulo
3. Programmazione definita dall’utenteSi decide quali tipi utilizzare.
Si genera un insieme di operazioni per i vari tipi
![Page 15: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/15.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
15
4.
Programmazione
Orientata agli Oggetti (Object Oriented Programming)
Si decide quali classi utilizzare.Si genera un insieme di operazioni per le varie classi
Si raggruppano le
proprieta'
comuni tramite il meccanismo
dell'ereditarieta'
5.
Programmazione GenericaSi identificano una serie di algoritmi e si parametrizzanoin
modo che possano
essere
utilizzati
per
piu‘
classi
o
tipi
definiti dall'utente.
(Altri) Paradigmi di Programmazione (2)
![Page 16: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/16.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
16
Il C++ permette di implementare una Programmazione definita dall'utente con
ereditarieta'
(=
Programmazione Orientata agli Oggetti) e la Programmazione Generica.
N.B.: attenzione al legame tra linguaggio e paradigma di programmazione
(Altri) Paradigmi di Programmazione (3)
![Page 17: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/17.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
17
1.
Esigenze di una moderna programmazione•
Robustezza
•
Possibilita’
di
ri-utilizzo del codice•
Portabilita’
•
Flessibilita'
e
Organizzazione
del
Codice (Semplicita')
In sintesi …
![Page 18: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/18.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
18
2.
Paradigmi di programmazione•
Programmazione Procedurale
•
Programmazione Modulare•
Programmazione definita dall’utente
•
Programmazione
Orientata agli Oggetti (Object Oriented Programming)
•
Programmazione Generica
3.
Caratteristiche della programmazione ad Oggetti•
Incapsulamento
•
Ereditarieta’•
Polimorfismo
![Page 19: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/19.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
19
Incapsulamento Classi
Come si progetta un Programma ?
•
La scelta degli Oggetti
•
Le relazioni tra gli oggetti
•
I casi d’uso (use case)
•
Le interazioni tra gli oggetti
•
La responsabilita’ delle classi
1.
Incapsulamento
2.
Ereditarieta’
3.
Polimorfismo
![Page 20: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/20.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
20
Progettazione
di un Programma (1)
1.
La scelta degli OggettiQuali “Oggetti” entrano nel problema?Quali proprieta’ hanno tali oggetti?
2.
Le relazioni tra gli oggettiQuali sono le relazioni tra gli oggetti?Possono essere raggruppati? Quali proprieta’ sono condivise da oggetti simili?Quali proprieta’ permettono di distinguere oggetti simili
tra loro?
Quali oggetti sono superflui?
![Page 21: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/21.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
21
Progettazione
di
un
Programma
(2)
3.
I casi d’uso (use case) e
gli scenariIn
quali situazioni
concrete
tali oggetti dovranno essere utilizzati?
Esempio dal BancomatLo scenario come
ulteriore specificazione di
un
caso d’uso
4.
Le
interazioni tra gli oggettiNon e’
sufficiente capire
la
relazione
“geometrica”
tra gli oggetti….
… e’
necessario anche valutare
come
gli oggetti interagiscono “dinamicamente”
tra loro
![Page 22: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/22.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
22
Progettazione
di un Programma (3)
5.
La responsabilita’ delle classiE’ chiaro di chi e’ la responsabilita’ di un punto chiave del programma?Una classe ha troppe responsabilita’?Una classe e’ irrilevante e puo’ essere
“assorbita” da un’altra?
Una sessione CRC (Classi, Responsabilita’, Collaborazione):
capire come funziona dinamicamente il programma che si vuole realizzare
![Page 23: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/23.jpg)
1) Trattamento dell'informazione Elementi di Architettura di un Computer
2) Sistemi operativi
0) Struttura del Corso
3) Introduzione alla Programmazione ad oggetti (OO)
4) Simulazione del Sistema Solare
![Page 24: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/24.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
24
Un esempio guida (1)
![Page 25: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/25.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
25
Un esempio guida (2)
La Simulazione di
un
Sistema Solare•
Il
problema fisico
•
Progettazione
del
programma di simulazione
•
L’interazione tra
le
classi nella simulazione
1.
Incapsulamento
2.
Ereditarieta’
3.
Polimorfismo
Incapsulamento Oggetti
![Page 26: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/26.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
26
La
Simulazione di
un
Sistema Solare
(1)
1.
Il
problema fisico
amF rr=
rr
mmGF rr
321
12 −=
![Page 27: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/27.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
27
La
Simulazione di
un
Sistema Solare
(2)
2.
Progettazione
del
programma di simulazione
Gli oggetti:
corpi celesti,
sonde,
pianeti,stelle,
satelliti,…..
Le relazioni tra gli oggetti:un pianeta
e’ un
corpo celeste
una sonda
e’ un satellite…… ed e’
anche
un
corpo celeste
Altri oggetti
mancano nella lista precedente?Sistema Solare?
… e un
Sistema Solare
ha
dei Corpi Celesti!
![Page 28: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/28.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
28
La
Simulazione di
un
Sistema Solare
(3)
3.
L’interazione tra
le
classi nella simulazioneQuali compiti
ha ciascun
oggetto?
Quando il
sistema
evolve, chi determina
le
nuove coordinate di ciascun corpo celeste?
Chi ha la responsabilita’ di far evolvere il sistema?
![Page 29: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/29.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
29
La
Simulazione di
un
Sistema Solare
(4)
Possibile scelta:•
Oggetti
CorpoCelesteSistemaSolare Sonda
•
Responsabilita’ degli OggettiCorpoCeleste
ha la responsabilita’ di calcolare la sua posizione durante
l’evoluzione del sistema
SistemaSolare
ha la responsabilita’ di far evolvere il sistema e di determinare il nuovo stato del sistema dopo un intervallo
di
tempo T
SistemaSolare
si occupera’ di chiedere a ciascun pianeta di calcolare la sua
nuova
posizione
dopo
un intervallo
di
tempo DT.
![Page 30: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/30.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
30
Le Classi nella Programmazione
ad Oggetti1.
Incapsulamento
2.
Ereditarieta’
3.
Polimorfismo
Incapsulamento Oggetti
Oggetti Classi
Prossima lezione
Classi
in OO Come
scrivere una classe
in C++
![Page 31: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/31.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
31
Caratteristiche di una Classe
(1)
1.
Attributi•
public
• private•
protected
2.
Metodi• public•
private
•
protected
![Page 32: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/32.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
32
Caratteristiche di una Classe
(2)
3.
Accesso agli attributi di una classe (tipo
Set
e tipo Get)
Nome
Classe
Attributi
Metodi
Set Get
Incapsulamento
![Page 33: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/33.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
33
Esempio: la Classe
CorpoCeleste
CorpoCeleste
Nome (stringa)m
(num. reale)x
(num. reale)y
(num. reale)vx (num. reale)vy (num. reale)
CalcolaPosizione(forza,
dt)StampaVelocita’()StampaPosizione()M()X() Y()Vx()
Vy()
![Page 34: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/34.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
34
Esempio: la Classe
SistemaSolare
SistemaSolare
Pianeti (lista dei pianeti)N
(num. reale)
aggiungiPianeta(…)evolvi(…)nPianeti()
![Page 35: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/35.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
35
Struttura
UML del
Programma di Simulazione
![Page 36: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/36.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
36
Interaction Diagram del Programma di Simulazione
![Page 37: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/37.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
37
Esercitazioni di Laboratorio
Le Esercitazioni inizieranno
il 9 ottobre per il gr. A e il 10 ottobre per il gr. B
Laboratorio di Calcolo(Laboratori Didattici)
Via della Vasca Navale, 84
![Page 38: Laboratorio di Calcolo I: Introduzionedmf.matfis.uniroma3.it › corsi_files › 997 › L_2NN.pdf · Calcolo - AA 2018-19 lezione 2 4 3) Introduzione alla Programmazione ad oggetti](https://reader036.fdocuments.ec/reader036/viewer/2022081406/5f11186a67aa9a7a707077d7/html5/thumbnails/38.jpg)
Laboratorio di Programmazione e Calcolo - AA 2018-19 lezione 2
38