Lezione 4
Lezione 4
Classi ed Ereditarietà: applicazioni

In questa quarta lezione estenderemo le classi della lezione precedente per creare degli oggetti utili alla risoluzione di problemi di fisica. Verificheremo anche il concetto di ereditarietà multipla.

ESERCIZIO 4.0 - Creazione delle classi CampoVettoriale e PuntoMateriale (da consegnare):
Sono molti i casi in Fisica in cui un vettore è collegato ad un punto dello spazio. Ad esempio una forza ha un punto di applicazione, o i vettori del campo elettrico e campo gravitazionale hanno un valore che varia da punto a punto dello spazio.
Per risolvere problemi relativi all'elettrostatica o alla gravità, costruire una classe CampoVettoriale, che erediti dalla classe Posizione e la estenda aggiungendo un vettore alla posizione.
  1. implementare i metodi per accedere e/o modificare il vettore
  2. decidere quali costruttori implementare, in particolare, implementare un costruttore
    CampoVettoriale(const Posizione&)
    che crei un vettore nullo nella posizione assegnata
  3. due metodi utili saranno:
    metodi Modulo() e Somma(CampoVettoriale&)
    il primo calcola la lunghezza del vettore, il secondo modifica il vettore assegnato sommandogli il vettore dato come argomento.

Un'altra classe necessaria è un PuntoMateriale, che erediti da entrambe le classi Particella e Posizione.
Per questo oggetto si chiede di implementare i metodi:
metodi CampoElettrico e CampoGravitazionale
che restituiscono i campi elettrico e gravitazionale prodotti dalla particella nel punto r.
Per verificare il corretto funzionamento delle classi così costruite, realizzate un un programmino che prenda da riga di comando le coordinate cartesiane di un punto e stampi il valore del campo elettrico di dipolo prodotto da un un elettrone ed un protone posizionati ad una distanza di 10-10 m.
N.B.: per entrambe le classi di cui sopra, sentitevi liberi di aggiungere tutti i metodi addizionali che ritenete utili per risolvere questo esercizio o i successivi.

Brevi Richiami

Ereditarietà multipla

Utilizzo di costruttori delle classi madri

Esempio di programma


ESERCIZIO 4.1 - Campo di multipolo:
Scrivere un programma che calcoli il campo elettrico generato da un multipolo di ordine n.
In questo esercizio, un n-polo (con n pari) è una distribuzione di n particelle, in cui la particella i-esima ha carica (-1)ie (dove e è la carica del protone) e si trova nel punto:
(r0cos(2πi/n),r0sin(2πi/n))
dove r0 è il raggio a cui sono messe le cariche.
Verificare che a grande distanza (R>>r0) il campo elettrico varia proporzionalmente a R-2-n/2.
Valutare fino a quali valori di n si riesce a verificare questa dipendenza.
Questo è un problema abbastanza interessante, perché bisogna scegliere una distanza abbastanza grande perché sia valido il comportamento asintotico, ma abbastanza ridotta per evitare problemi di arrotondamento nella somma di molti termini di segno contrario.

Leggi di potenza

ESERCIZIO 4.2 - Gravità dallo spazio:
Il satellite GOCE si trova in orbita a 250 km dalla superficie terrestre e dotato di accelerometri in grado di misurare variazioni dell'accelerazione di gravità fino a δg/g=10-13.
Scopo della missione (si veda questo articolo su Le Scienze) include una mappatura dettagliata del campo gravitazionale terrestre, prodotto dalle distribuzioni non omogenee di massa.
Si calcoli l'accelerazione di gravità sul satellite per una Terra perfettamene sferica e dimensioni pari al raggio medio (wikipedia).
Calcolare poi la variazione relativa di g prodotta da una catena montuosa, schematizzata come una fila di 100 sfere di 1 km di raggio poste sopra la superficie media della Terra (usare 3000 kg/m3 come densità della roccia).
Questo esercizio si può risolvere usando le classi preparate fin qui, oppure reimplementando la classe CorpoCeleste e sovrascrivendo il metodo CampoGravitazionale, per fornire il campo dato da una distribuzione di massa di densità costante.

Brevi Richiami

Puntatori e vettori di puntatori


Back to Home Page