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