Esercizi per la 3E

1) Una condotta forzata preleva l’acqua ad una quota di 2500 m (fondo del lago), dal fondo di un lago artificiale di profondità 80 m. Le turbine della centrale elettrica si trovano 1200 m più a valle rispetto al bacino idroelettrico. L’acqua partendo con una velocità prossima a 0 giunge alle turbine con una velocità di 15 m/s. Calcola la pressione dell’acqua nelle turbine.
[12,43 10^3 Pa]

2) Il fiume Adda in un periodo di piena ha una portata da 1200 m^3/s quando esce dal lago di Como. La velocità dell’acqua è pari a 1,8 m/s; calcola la sezione dell’alveo del fiume. Supponendo che gli altri affluenti del lago di Como abbiano una portata trascurabile rispetto al fiume Adda, calcola la velocità con la quale si muove l’acqua nel centro del lago dove la profondità è pari a 160 m e la larghezza 4,2 km. (Ipotizzare per il lago una sezione di forma rettangolare)
[667 m^3; 1,786 mm/s]

3) Calcolare quanto deve essere lo spazio da lasciare fra una rotaia e la successiva durante la fase di montaggio di una ferrovia con rotaie di lunghezza 25 m che si svolge d’inverno con una temperatura di -5 °C. Supponi che durante l’estate le rotaie esposte al sole possano raggiungere la temperatura max di 50 °C. Lambda = 13 10^-6 1/K
[1,79 cm]

4) Un pallone aerostatico ha un volume di 27 m^3 e si trova alla pressione di 10^5 Pa e alla temperatura di 20 °C. Calcola il volume di gas che fuoriesce quando salendo in quota la pressione scende a 1,7 10^4 Pa (supponendo il volume del pallone e la temperatura del gas costanti). Se in seguito al riscaldamento la temperatura del gas aumenta di 10 °C, calcola il volume di gas che fuoriesce ulteriormente.
[131,8 m^3; 0,921 m^3]

Calcolatrice goniometrica per la 3E

CalcolatriceGoniometricaCreare l’applicazione rappresentata qui a destra che calcola le 3 funzioni goniometriche dell’angolo inserito in gradi o in radianti.
Se l’angolo è già in radianti è sufficiente calcolare direttamente seno, coseno e tangente con le funzioni Math.sin(a), Math.cos(a), Math.tan(a).
Se l’angolo è in gradi è necessario prima convertirlo in radianti con la formula: a*=Math.PI/180.0

Manipolazione delle immagini

Algoritmo visto in classe per il ribaltamento orizzontale (destra/sinistra) dell’immagine; scrivere quello per il ribaltamento verticale (alto/basso) chiamando il metodo ribalta(). Cercare su internet la documentazione dei metodi getRGB() e setRGB().

public void specchio() {
	int pixelLeft, pixelRight;
	
	int h = immagine.getHeight();
	int w = immagine.getWidth();
	
	for (int y=0; y<h; y++)
		for (int x=0; x<w/2; x++) {
			pixelLeft=immagine.getRGB(x, y);
			pixelRight=immagine.getRGB(w-1-x, y);
			immagine.setRGB(x, y, pixelRight);
			immagine.setRGB(w-1-x, y, pixelLeft);
		}
	lblImmagine.repaint();
}

Sondaggio in preparazione alla verifica per la 5E

Creare un form per un sodaggio on-line con le domande:

  1. Classe (casella combinata con numeri da 1 a 5 e valore iniziale “Seleziona la classe”)
  2. Sezione (casella combinata con i caratteri da A a I e valore iniziale “Seleziona la sezione”)
  3. Domanda “Ti sono piaciuti i 5 anni trascorsi al liceo Peano?” (risposta radio button con valori da 1 a 4)
  • Creare la servlet “memorizza” che memorizza i 3 dati inseriti precedentemente insieme alle domande.
  • Creare la servlet “elenca” che visualizza tutti i dati inseriti.
  • Creare la servlet “statistica” che conteggia per ogni domanda quante sono le risposte 1, 2, 3, 4 eseguendo un select del tipo:
    SELECT * FROM sondaggio WHERE risposta1=1
    SELECT * FROM sondaggio WHERE risposta1=2
    SELECT * FROM sondaggio WHERE risposta1=3
    SELECT * FROM sondaggio WHERE risposta1=4
    e, conteggiando il numero di record estratti, stampa le 4 percentuali.

Progetto NetBeans: Sondaggio.zip

Paint

paint-icon
Icona per Paint

Paint

Main.java

	private JLabel lblImmagine;
	private BufferedImage immagine;
...
        // metodi associati agli eventi
	public void nuovo() {
		immagine = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);
		lblImmagine.setIcon(new ImageIcon(immagine));
	}
	
	public void apri() {
		immagine = BufferedImageIO.read();
		lblImmagine.setIcon(new ImageIcon(immagine));
	}
	
	public void salva() {
		BufferedImageIO.write(immagine);
	}

BufferedImageIO.java

package paint;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;

public class BufferedImageIO {

	public static BufferedImage read() {
		BufferedImage immagine = null;
		JFileChooser fc = new JFileChooser();
		fc.setAcceptAllFileFilterUsed(false);
		fc.addChoosableFileFilter(new FileNameExtensionFilter("Tutti i file immagine (*.gif; *.jpg; *.jpeg; *.png)", "gif", "jpg", "jpeg", "png"));
		fc.setAcceptAllFileFilterUsed(true);
		if (fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)
			try {
				immagine = ImageIO.read(fc.getSelectedFile());
//				JOptionPane.showMessageDialog(null, "Immagine caricata", "Informazione", JOptionPane.INFORMATION_MESSAGE);
			} catch (FileNotFoundException e) {
				JOptionPane.showMessageDialog(null, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE);
			} catch (IOException e) {
				JOptionPane.showMessageDialog(null, "Errore di lettura", "Errore", JOptionPane.ERROR_MESSAGE);
			}
		return immagine;
	}

	public static void write(BufferedImage immagine) {
		JFileChooser fc = new JFileChooser();
		fc.setAcceptAllFileFilterUsed(false);
		fc.addChoosableFileFilter(new FileNameExtensionFilter("Formato PNG (*.png)", "png"));
		fc.setAcceptAllFileFilterUsed(true);
		if (fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION)
			try {
				if (!fc.getSelectedFile().getPath().endsWith(".png"))
					fc.setSelectedFile(new File(fc.getSelectedFile().getPath() + ".png"));
				ImageIO.write(immagine, "png", fc.getSelectedFile());
				JOptionPane.showMessageDialog(null, "Immagine salvata", "Informazione", JOptionPane.INFORMATION_MESSAGE);
			} catch (FileNotFoundException e) {
				JOptionPane.showMessageDialog(null, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE);
			} catch (IOException e) {
				JOptionPane.showMessageDialog(null, "Errore di scrittura", "Errore", JOptionPane.ERROR_MESSAGE);
			}
	}

}

L’uomo che vide l’infinito

Il trailer (in inglese) di “L’uomo che vide l’infinito”, con Dev Patel nel ruolo del protagonista, il matematico indiano Srinivasa Ramanujan, e Jeremy Irons, nel ruolo del suo mentore G.H. Hardy. La pellicolà uscirà in italia il prossimo 9 giugno.