Esercitazioni del corso di Laboratorio
di Programmazione e Calcolo
n. 3
Implementazione della classe CorpoCeleste
Uso di emacs e del compilatore g++
NB: le
tastiere italiane (che prevedono caratteri speciali come le lettere accentate)
non prevedono caratteri quali { } e ~ che vi serviranno spesso. Con la tastiera
italiana utilizzare:
AltGr insieme al tasto 7 per {
AltGr insieme al tasto 0 per }
AltGr insieme al tasto ^ per ~
2. create una directory es_3 che conterra' l'esercitazione numero 3 e spostatevi in es_3
3. definite la classe Corpo Celeste (file CorpoCeleste.h)
e implementatela (file CorpoCeleste.cc).
Iniziate scrivendo poche righe o implementando metodi vuoti e compilate il file
.cc (g++ -c CorpoCeleste.cc) per controllare che non ci siano
errori. Continuate alternando implementazione e compilazione, sino ad
implementare completamente la classe CorpoCeleste come descritto a lezione.
N.B. 1 - Per istanziare un oggetto, dovete usare il costruttore. Ad esempio:
CorpoCeleste Marte ;;
oppure,
inizializzando l'oggetto con i valori indicati tra parentesi
CorpoCeleste Marte("Marte",100., 50.e11,
60.E11,40.,50.) ;
N.B. 2 - Per applicare un metodo ad un oggetto, si scrive il nome dell'oggetto, un punto (".") e poi il nome del metodo. Ad esempio
Marte.stampaPosizione() ;
dove Marte
e' un'istanza di un oggetto di tipo CorpoCeleste
N.B. 3 - Per eseguire il programma e` sufficiente scrivere il nome dell'eseguibile, eventualmente preceduto da ./ per indicare che l'eseguibile si trova nella directory corrente (.) qualora il sistema vi rispondesse "command not found" (vuol dire che la vostra SHELL non e' ben definita e la directory corrente non e' nella lista, detta PATH, di quelle tra le quali cercare gli eseguibili).
CorpoCeleste::~CorpoCeleste() {
cout << endl << "
sono nel distruttore di
CorpoCeleste!! " << endl ;
};
Potete anche aggiungere il nome del pianeta.
Verificate il funzionamento del
distruttore utilizzando il programma Esercit_3.cpp
SE
NON VI VIENE emacs A COLORI SCARICATE IL FILE .emacs
nella vostra "home" (/home/didXXY)
|
||||||||||
Mass (1024kg) |
0.330 |
4.87 |
5.97 |
0.073 |
0.642 |
1899 |
568 |
86.8 |
102 |
0.0125 |
Diameter (km) |
4879 |
12,104 |
12,756 |
3475 |
6792 |
142,984 |
120,536 |
51,118 |
49,528 |
2390 |
Density (kg/m3) |
5427 |
5243 |
5515 |
3340 |
3933 |
1326 |
687 |
1270 |
1638 |
1750 |
Gravity (m/s2) |
3.7 |
8.9 |
9.8 |
1.6 |
3.7 |
23.1 |
9.0 |
8.7 |
11.0 |
0.6 |
Escape Velocity (km/s) |
4.3 |
10.4 |
11.2 |
2.4 |
5.0 |
59.5 |
35.5 |
21.3 |
23.5 |
1.1 |
Rotation Period (hours) |
1407.6 |
-5832.5 |
23.9 |
655.7 |
24.6 |
9.9 |
10.7 |
-17.2 |
16.1 |
-153.3 |
Length of Day (hours) |
4222.6 |
2802.0 |
24.0 |
708.7 |
24.7 |
9.9 |
10.7 |
17.2 |
16.1 |
153.3 |
Distance from Sun (106 km) |
57.9 |
108.2 |
149.6 |
0.384* |
227.9 |
778.6 |
1433.5 |
2872.5 |
4495.1 |
5870.0 |
Perihelion (106 km) |
46.0 |
107.5 |
147.1 |
0.363* |
206.6 |
740.5 |
1352.6 |
2741.3 |
4444.5 |
4435.0 |
Aphelion (106 km) |
69.8 |
108.9 |
152.1 |
0.406* |
249.2 |
816.6 |
1514.5 |
3003.6 |
4545.7 |
7304.3 |
Orbital Period (days) |
88.0 |
224.7 |
365.2 |
27.3 |
687.0 |
4331 |
10,747 |
30,589 |
59,800 |
90,588 |
Orbital Velocity (km/s) |
47.9 |
35.0 |
29.8 |
1.0 |
24.1 |
13.1 |
9.7 |
6.8 |
5.4 |
4.7 |
Orbital Inclination (degrees) |
7.0 |
3.4 |
0.0 |
5.1 |
1.9 |
1.3 |
2.5 |
0.8 |
1.8 |
17.2 |
0.205 |
0.007 |
0.017 |
0.055 |
0.094 |
0.049 |
0.057 |
0.046 |
0.011 |
0.244 |
|
Axial Tilt (degrees) |
0.01 |
177.4 |
23.4 |
6.7 |
25.2 |
3.1 |
26.7 |
97.8 |
28.3 |
122.5 |
Mean Temperature (C) |
167 |
464 |
15 |
-20 |
-65 |
-110 |
-140 |
-195 |
-200 |
-225 |
Surface Pressure (bars) |
0 |
92 |
1 |
0 |
0.01 |
Unknown* |
Unknown* |
Unknown* |
Unknown* |
0 |
0 |
0 |
1 |
0 |
2 |
63 |
62 |
27 |
13 |
3 |
|
No |
No |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
No |
|
Yes |
No |
Yes |
No |
No |
Yes |
Yes |
Yes |
Yes |
Unknown |
|
|