Esercizi 3E in preparazione alla verifica di Fisica

  1. Un aereo vuole raggiungere in 10 minuti una località posta a 12 km ad Ovest e 150 km a Nord rispetto al punto di partenza. Calcola le componenti cartesiane del vettore velocità che l’areo possiede rispetto alla terra. Se soffia un vento verso Est pari a 20 m/s, calcola le componenti del vettore velocità che l’aereo deve possedere rispetto all’aria.
  2. Una palla deve essere calciata in maniera tale da riuscire a passare al di là di un muro alto 4 m e largo 2 m da un punto posto a 1,5 m dal muro. Calcola le componenti cartesiane della velocità di lancio supponendo che passi il muro sfiorando gli spigoli superiori sia in salita che in discesa.
  3. Una ruota di diametro 80 cm sta girando ad una frequenza di 4500 giri/min. Calcola la velocità in m/s e l’accelerazione di un punto posto a 10 cm dall’asse di rotazione e quella di un punto posto sul bordo.

Gioco di riflessi

Creare un videogioco che fa comparire ad intervalli regolari su un pannello bianco dei cerchi rossi di raggio variabile da 10 a 50 pixel per un tempo di 0,5 secondi. L’utente deve cliccarci sopra in tempo prima che scompaiano; in tal caso il raggio del cerchio va ad accumularsi ad un punteggio totale visualizzato su un pannello in alto. Sul pannello in basso devono esserci i pulsanti Start e Stop.

Progetto Eclipse: GiocoDiRiflessi.zip

Classe Punto

Creare una classe Punto con i due parametri double x e y. Devono esserci 2 costruttori:

  • Punto(double xVal, double yVal)
  • Punto()

Devono esserci i metodi:

  • getX() che restituisce l’ascissa
  • getY() che restituisce l’ordinata
  • distanza() che restituisce la distanza dall’origine
  • isO() che fornisce vero o falso se il punto si trova in O oppure no
  • isAsseX() che fornisce vero o falso se il punto si trova sull’asse X
  • isAsseY() che fornisce vero o falso se il punto si trova sull’asse Y
  • toString() che visualizza le coordinate del punto nel formato (x,y)

Orologio digitale

Creare JOra sottoclasse di JPanel con lo scopo di visualizzare l’ora di sistema con una scritta grande gialla su sfondo blu. L’ora deve essere aggiornata 100 volte al secondo e deve visualizzare l’ora nel formato hh:mm:ss.cc fino ai centesimi di secondo. Utilizzando un’interfaccia fare in modo che cliccando con il mouse una volta l’orologio si fermi mostrando 00:00:00.00 e cliccando una seconda volta riparta mostrando nuovamente l’ora di sistema. Leggere la documentazione sul metodo currentTimeMillis della classe System.

Esempio:   Ora: 08:52:31.16 

Esercizi di termologia per la 4E

  1. Una lamiera di dimensioni 1,25 m e 35,1 m si trova inizialmente alla temperatura di 20 °C. Viene portata alla temperatura di 800 °C. Calcola l’aumento di lunghezza e di superficie. Il coefficiente di dilatazione lineare del ferro è di 12 10-6 °C-1
  2. 150 m3 di aria in una stanza si trovano alla emperatura di 22 °C durante il giorno. Durante la notte la temperatura della stanza scende fino a 12 °C. Calcola quanta aria viene risucchiata dall’esterno durante la notte.
  3. Un pallone aerostatico ha un volume costante pari a 100 m3, si trova alla temperatura di 20 °C e alla pressione di 1 atm. Calcola le moli di gas in esso contenute. Quando sale in quota la temperatura scende a 4 °C e la pressione a 0,91 atm. Quante moli di gas fuoriescono. Quale volume occupa il gas quando il pallone torna alla posizione di partenza.
  4. Un bicchiere contiene 0,12 litri di latte alla temperatura di 8 °C. Per riscaldarlo il barista utilizza un getto di vapore alla temperatura di 100 °C. Alla fine del riscaldamento il latte raggiunge la temperatura di 55 °C. Calcola (in grammi) la quantità di vapore che è stato utilizzato. Il calore latente di vaporizzazione dell’acqua è pari a 2’260 kJ/kg.
  5. 2,5 mol di ossigeno (m molecolare = 16 uma) si trovano alla temperatura di 0 °C. Calcola l’energia cinetica di 1 molecola, l’energia cinetica di traslazione e l’energia cinetica di rotazione. Calcola la velocità media di traslazione delle molecole e l’energia interna.

Esercizi per la 3E in preparazione alla verifica

  • Creare un programma che cerchi all’interno di un intervallo compreso fra n1 ed n2 i numeri che sono multipli di un valore intero n e li stampi. n1, n2 ed n devono essere inseriti da tastiera. Bisogna controllare che n1 sia minore di n2; in caso contrario bisogna ripetere la richiesta.
  • Creare un array di 100 elementi int generati casualmente da 0 a 9 mediante il metodo Math.random(). Il programma deve contare quanti sono i numeri 0, i numeri 1, i numeri 2 etc. memorizzando i valori in un altro array con 10 elementi. Stampare la tabella dei conteggi in un formato comprensibile.
  • Creare una classe Anagrafe con gli attributi nome, cognome, sesso, anno di nascita. Devono essere presenti i metodi:
    • costruttore
    • boolean maschio() che restituisce true se il sesso è ‘m’ altrimenti false;
    • boolean femmina();
    • int eta(int annoCorrente) che calcola l’età della persona inserendo l’anno corrente.

Onda

Realizzare una sottoclasse di JPanel di nome JOnda che abbia un attributo lunghezzaOnda preimpostato a 100 e frequenza 1. Deve rappresentare un’onda sinusoidale di ampiezza preimpostata a 40 pixel. Due metodi start e stop devono avviare e fermare l’animazione. Un thread deve incrementare una variabile t preimpostata a 0 e l’onda deve muoversi verso destra. Utilizzare l’equazione dell’onda:

y = A sin (k x – om t)
k = 2 Pi / lunghezzaOnda
om = 2 Pi frequenza
A = ampiezza

Progetto Eclipse: Onda.zip

Programma per la 5E

L’utilizzo degli adattatori in Java in sostituzione delle interfacce è spiegato bene sul libro di Claudio De Sio Cesari Object oriented && Java 5 il cui file PDF zippato è liberamente scaricabile sul sito http://www.claudiodesio.com/
Fare riferimento al paragrafo 15.4.3 Altri tipi di eventi da pag. 532 a pag. 536.

Realizzare una sottoclasse di JComponent che visualizzi un settore circolare giallo con bordo nero. Deve possedere un attributo position variabile fra 0 e 360 gradi, che contiene l’ampiezza del settore circolare disegnato. Al click del mouse sopra l’oggetto deve partire un thread che ad intervalli di 20 millisecondi incrementa position di 5 gradi. Quando position raggiunge i 360, riparte da 0. Cliccando nuovamente l’animazione si interrompe. Tale componente simula la “clessidra rotante” che si vede spesso su internet o nei programmi durante i caricamenti o i tempi di attesa.

Progetto Eclipse: ClessidraRotante.zip

Temperature

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class EsempioArray {

	public static void main(String[] arg) {
		double[] t = new double[7];
		String[] g = { "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì",
				"Sabato", "Domenica" };
		InputStreamReader input = new InputStreamReader(System.in);
		BufferedReader tastiera = new BufferedReader(input);

		System.out.println("Inserisci le temperature della settimana");
		for (int i = 0; i < 7; i++) {
			System.out.print("Temperatura di " + g[i] + ": ");
			try {
				t[i] = Double.parseDouble(tastiera.readLine());
			} catch (NumberFormatException | IOException e) {
			}
		}
		double somma = 0.0;
		for (int i = 0; i < 7; i++) {
			somma += t[i];
		}
		System.out.println("La media della temperature è: " + somma / 7.0);
	}

}
  1. Modificare il programma in maniera da individuare la temperatura massima e la temperatura minima; quindi stamparle.
  2. Modificare il programma in maniera da individuare la temperatura massima e la temperatura minima registrando anche in quali giorni della settimana si sono verificate; quindi stampare la temperatura massima con a destra i giorni relativi; stessa cosa per la temperatura minima.

Rettangolo per la 3E

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Rettangolo {

	public static void main(String[] args) {
		InputStreamReader input = new InputStreamReader(System.in);
		BufferedReader tastiera = new BufferedReader(input);

		try {
			double b;
			do {
				System.out.print("Inserisci la misura della base: ");
				String bs = tastiera.readLine();
				b = Double.parseDouble(bs);
			} while (b <= 0);

			double h;
			do {
				System.out.print("Inserisci la misura dell'altezza : ");
				String hs = tastiera.readLine();
				h = Double.parseDouble(hs);
			} while (h <= 0);

			double area = b * h;
			System.out.println("L'area è : " + area);

		} catch (IOException e) {
			System.out.println("Errore nella lettura da tastiera");
		} catch (NumberFormatException e) {
			System.out.println("Errore nella conversione del numero");
		}
	}

}