Laboratorio di Informatica 4 Novembre 2005

Laboratorio di Informatica
4 Novembre 2005
Marco Iarusso
Programmazione Java
Ringraziamenti
Parte della presente dispensa materiale didattico è derivato
dalla dispensa prodotta da
Luca Cabibbo
Dip. Informatica e Automazione
Università degli Studi ‘Roma Tre
Il suo utilizzo in questo corso è stato concesso dall’autore
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
2
L’oggetto software Math
• I linguaggi di programmazione consentono di manipolare
dati numerici mediante gli operatori aritmetici
• somma (+), prodotto (*), differenza (–), divisione (/)
• Molti linguaggi di programmazione non forniscono
operatori per valutare altre funzioni matematiche, come la
radice quadrata o il calcolo di potenze
• è allora utile avere a disposizione un oggetto software
“bravo in matematica” che sappia calcolare le funzioni
matematiche più comuni
Math
• Math è un oggetto software bravo in matematica
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
3
L’oggetto software Math
La classe Math contiene metodi per eseguire alcune operazioni
numeriche fondamentali come la radice quadrata,
l’esponenziale, il logaritmo e le funzioni trigonometriche.
Math.sqrt(n): calcola la radice quadrata del numero n: i.e.
Math.sqrt(144)=12
Math.abs(n): calcola il valore assoluto del numero n: i.e.
Math.abs(10-13)=3
Math.pow(n,k): calcola il valore di n elevato a k: i.e. Math.pow(3,3)=81
Math.sin(α): calcola il seno della variabile α: i.e. Math.sin(10)= -0.544
Math.toRadians(n) e Math.toDegrees(n): trasformano rispettivamente il
valore di n da gradi a radianti e da radianti a gradi.
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
4
Compilazione ed esecuzione
Il metodo classico per la compilazione e l’esecuzione dei
programmi java è tramite la linea di comando.
Realizziamo un programma “ Radice” che calcola la radice
quadrata di un numero letto da tastiera.
….
Il nome del file è “Radice.java”
Per la compilazione bisogna rendere visibili al compilatore le
librerie esterne fiji.jar
javac –classpath …/ fiji.jar Radice.java
Anche per l’esecuzione bisogna rendere visibili alla JVM le
librerie esterne fiji.jar
java –classpath …/ fiji.jar Radice
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
5
Linee guida per lo svolgimento dell’esame
Riassumiamo in breve i passi fondamentali dell’esame:
1. Scrittura di un programma tramite un editor (textpad)
2. Utilizzo di librerie esterne per la lettura di dati da linea di
comando (fiji)
3. Compilazione ed esecuzione del programma
4. Invio del sorgente così ottenuto tramite e-mail (!)
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
6
Esercizi
Dati due cateti di un triangolo rettangolo c1 e c2 – letti da tastiera calcolare il valore dell’ipotenusa i.
Calcolare la diagonale di un quadrato di lato l letto da tastiera.
Calcolare l’area A di un cerchio inscritto in un quadrato di lato l letto
da tastiera. Calcolare successivamente il valore assoluto della
differenza tra l’area del cerchio appena calcolato e l’area del quadrato
che lo contiene.
Dato un piano inclinato alto h e lungo l, calcolare la sua pendenza – Per
“pendenza” si vuole intendere l’angolo formato tra il piano inclinato ed
il piano orizzontale. (n.b. la pendenza deve essere espressa in gradi).
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
7
Esercizio #1
import fiji.io.*;
class Pitagora{
public static void main(String[] args){
//dichiarazione delle variabili
int c1;
int c2;
double Ip;
// lettura dei valori
System.out.print("primo cateto: ");
c1 = Lettore.in.leggiInt();
System.out.println();
System.out.print("Secondo cateto: ");
c2 = Lettore.in.leggiInt();
System.out.println();
// Calcolo dell’ipotenusa
Ip = Math.sqrt(Math.pow(c2,2)+Math.pow(c1,2));
// Stampa sul video del risultato
System.out.println("Ipotenusa= "+Ip);
}
}
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
8
Esercizio #2
import fiji.io.*;
/* Lo svolgimento dell'esercizio prevede l'impiego
di due classi Quadrato e Pitagora. Il File che
contiene la definizione delle classi deve essere
chiamata con lo stesso nome della classe
applicazione: in questa caso si chiamerà
Quadrato.java */
// Classe utilizzata esclusivamente per il calcolo
dell'ipotenusa // di un triangolo rettangolo noti
i due cateti.
class Pit{
public static double Ipotenusa(int a, int b){
return Math.sqrt(Math.pow(a,2)+Math.pow(b,2));
}
class Quadrato{
public static void main(String[] args){
//dichiarazione variabili
int lato;
double diagonale;
//Lettura dei parametri
System.out.print("lato: ");
lato = Lettore.in.leggiInt();
System.out.println();
// Calcolo dell'ipotenusa di un triangolo
rettangolo
diagonale = Pit.Ipotenusa(lato,lato);
// Stampa su video del risultato
System.out.println("diagonale: "+diagonale);
}
}
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
9
Esercizio #3
import fiji.io.*;
class Cerchio{
public static void main(String[] args){
// dichiarazione variabili
int lato;
double Aq; // area del quadrato
double Ac; // area del cerchio
double raggio; // raggio del cerchio
//Lettura del valore del lato del quadrato
System.out.print("lato del quadrato= ");
lato = Lettore.in.leggiInt();
//Calcolo dell'area del quadrato
Aq = lato * lato;
System.out.println("Area del quadrato= "+Aq);
// Calcolo dell'area del cerchio
raggio = (double)lato/2;
Ac = Math.pow(raggio,2)*Math.PI; // (r^2)*pi
System.out.println("Area del cerchio= "+Ac);
System.out.println("Valore assoluto delle due aree= "+Math.abs(Ac-Aq));
}
}
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
10
Esercizio #4
import fiji.io.*;
class PInclinato{
public static void main(String[] args){
// dichiarazioni delle variabili
int H; // altezza del piano inclinato
int L; // lunghezza del piano inclinato
double inclinazione; // inclinazione del piano inclinato
//Lettura dei valori da tastiera
System.out.print("Altezza: ");
H = Lettore.in.leggiInt();
System.out.print("Lunghezza: ");
L = Lettore.in.leggiInt();
// Calcolo e stampa del valore dell'inclinazione del piano.
inclinazione = Math.atan((double)H/L);
System.out.println("Inclinazione: "+Math.toDegrees(inclinazione));
}
}
Marco R. Iarusso
[email protected]
Esercitazione Laboratori di Informatica
Programmazione JAVA
11