Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano sistemi operativi diversi. Ciò che rende un programma Java indipendente dal tipo di computer sul quale viene eseguito è la virtual machine, ovvero un interprete del linguaggio che si inserisce fra il programma e il sistema operativo e traduce le istruzioni Java in comandi comprensibili dal sistema operativo stesso. Java è un linguaggio ad oggetti: un oggetto (o classe) è definito dagli attributi (le variabili) e dai metodi (le funzioni che agiscono sui dati dell'oggetto). Se l'oggetto è una motocicletta, un attributo è l'acceleratore e un metodo è "accelera"; se l'oggetto è un triangolo, gli attributi sono i lati e un metodo è "calcola l'area". Per scrivere un programma Java, è sufficiente installare sul proprio computer un "SDK", ovvero un "Software Development Kit" Per compilare un programma Java si usa il comando javac <nomeclasse>.java: questo comando produce <nomeclasse>.class, che è il bytecode della classe, ovvero il formato comprensibile alla Java Virtual Machine. Per eseguire un programma Java si usa il comando java <nomeclasse>: questo comando fa partire la virtual machine che eseguirà il metodo main della classe <nomeclasse>. Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli Esercizi Java Esercizio N.1 // salvare con il nome della classe e l'estensione java: somma.java //javac somma.java per la compilazione //java somma per l'esecuzione class somma { public static void main (String[] args) { int x=15; int y=15; int s=x+y; System.out.println("Buon giorno ragazzi della IVB Oggi si inizia con Java...\n"); System.out.println (x + "+" + y + "=" + s) ; } } class somma2 { static int somma(int a,int b) {return a+b; } public static void main (String[] args) { int x=15; int y=15; System.out.println (x + "+" + y + "=" + somma(x,y)) ; } } Esercizio N.2 //java fattoriale 5 esegue il fattoriale di 5 class fattoriale { static int fattoriale (int num) { int p=1; for(int i=1;i<=num;i++) { p= p * i; } return p; } // Inizio del programma. public static void main (String[] args) { int x; x = Integer.valueOf(args[0]).intValue (); System.out.println (x + "! = " + fattoriale (x)); } } Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli Esercizio N.3 public class fattoriale2 { public static long fattoriale(int n ) { if( n <= 1 ) // base case return 1; else return n * fattoriale( n - 1 ); } // Simple test program public static void main( String [ ] args ) { for( int i = 1; i <= 10; i++ ) System.out.println( fattoriale( i ) ); } } Esercizio N.4 /* Programma che determina i numeri primi e non primi tra 1 e 100 */ class primi { static boolean primo (int num) { if(num==1) return true; for(int j=2;j<num;j++) { if(num%j==0) return false; } return true; } public static void main (String[] args) { for(int i=1;i<=100;i++) { if (primo (i)) { System.out.println (i + " numero primo"); } else { System.out.println (i + " --------------- numero non primo"); } } } } // Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli Esercizio N. 5 class paridispari { public static void main(String[]args) { int n=Integer.valueOf(args[0]).intValue(); if(pari(n)) {System.out.println("il numero "+n+" e' pari");} else {System.out.println("Il numero "+n+" e' dispari");} } static boolean pari(int num) { if(num%2==0) return true; return false; } } public class triangolo { double l1, l2, l3; // I tre lati public double calcolaPerimetro() { return l1+l2+l3; } } si compila ma non si può eseguire (manca il main()) public class Prova { } public static void main (String[] args) { // costruisco l'oggetto t di tipo Triangolo triangolo t = new Triangolo (); // assegno i valori ai lati t.l1 = 12.5; t.l2 = 8; t.l3 = 10; // uso una variabile per memorizzare il perimetro double per= t.calcolaPerimetro(); // stampo il perimetro System.out.println (per); } Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli public class Cerchio { double raggio; final double pigreco=3.141519; public double Diametro() {return raggio*2;} public double Circonferenza() {return 2*pigreco*raggio;} public double Area() {return pigreco*raggio*raggio;} } public class Prova2 { public static void main (String[] args) { // costruisco l'oggetto c istanziando la classe Cerchio Cerchio c = new Cerchio(); // assegno il valore al raggio double r=Double.valueOf(args[0]).doubleValue(); c.raggio=r; double d= c.Diametro(); double p= (Math.round(c.Circonferenza()*100))/100; double a= c.Area(); System.out.println ("Esercizio del 30.9.2011\n"); System.out.println ("raggio=\t\t"+r); System.out.println ("diametro=\t"+d); System.out.println ("circonferenza=\t"+p); System.out.println ("area=\t\t"+a); } } Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli public class Cerchio { double raggio; final double pigreco=3.141519; public Cerchio() {} public Cerchio(double raggio) {this.raggio=raggio;} public double Diametro() {return raggio*2;} public double Circonferenza() {return 2*pigreco*raggio;} public double Area() {return pigreco*raggio*raggio;} } public class Cilindro extends Cerchio { double altezza; public Cilindro(double raggio,double altezza) {super(raggio); this.altezza=altezza;} public double Volume() {return Area()*altezza;} } public class Prova3 { public static void main (String[] args) { double r=100; double h=10; Cerchio c = new Cerchio(r); Cilindro ci=new Cilindro(r,h); double d= c.Diametro(); double p= (double)Math.round(c.Circonferenza()*100)/100; double a= (double)Math.round(c.Area()*100)/100; double v=(double)Math.round(ci.Volume()*100)/100; System.out.println ("Esercizio del 30.9.2011\n"); System.out.println ("raggio=\t\t"+r); System.out.println ("diametro=\t\t"+d); System.out.println ("circonferenza=\t\t"+p); System.out.println ("area=\t\t"+a); System.out.println("\n\nvolume del cilindro: "+v); } } Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli public class Cono extends Cerchio { public Cono(double raggio,double altezza) { super(raggio); this.altezza=altezza; } public double Volume() { return (Area()*altezza)/3; } } public class Cono extends Cilindro { public Cono (double raggio,double altezza) { super(raggio,altezza); } public double Volume() { return super.Volume()/3; }//overridding } public class Prova4 { public static void main (String[] args) { double r=100; double h=10; Cilindro ci=new Cilindro(r,h); double a=ci.Area(); double v=ci.Volume(); System.out.println("\nArea di base del cilindro: "+a); System.out.println("\nVolume del cilindro: "+v); Cono co=new Cono(r,h); a=co.Area(); v=co.Volume(); System.out.println("\nArea di base del cono: "+a); System.out.println("\nVolume del cono= "+v); } } Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli public class Stampamesi { public static void main(String[] args) { String[] mesi=new String[13]; //String[] mesi={"","gen","feb"}; mesi[1]="Gen"; mesi[2]="Febbraio"; for(int i=1;i<=2;i++) { System.out.println("\nMese "+i+": "+mesi[i]); } } } public class AreaRettangolo { public static void main(String[] args) { int base; // base del rettangolo int altezza; // altezza del rettangolo int area; // area del rettangolo base = 7; altezza = 9; area = base * altezza; System.out.println(); System.out.print("\n"); System.out.println("\nL'area del rettangolo di base " + base + " e di altezza " + altezza); System.out.println("vale " + area + "\n\n\n\n"); } // fine metodo main } // fine classe AreaRettangolo Itis Teramo Classe IVB- Sistemi per l’elaborazione e la trasmissione delle informazioni Anno Scolastico 2011-2012 Proff. Mauro de Berardis e Franco Roscioli public class AreaRettangolo { public static void main(String[] args) { int base; // base del rettangolo int altezza; // altezza del rettangolo int area; // area del rettangolo base = 7; altezza = 9; area = base * altezza; System.out.println(); System.out.print("\n"); System.out.println("\nL'area del rettangolo di base " + base + " e di altezza " + altezza); System.out.println("vale " + area + "\n\n\n\n"); } // fine metodo main } // fine classe AreaRettangolo public class Stringhe { public static void main(String[] a) { String messaggio; messaggio = "Roma, una bellissima capitale"; int lunghezzaMessaggio = messaggio.length(); char primaLettera = messaggio.charAt(0); char ultimaLettera = messaggio.charAt(lunghezzaMessaggio - 1); String prime4Lettere = messaggio.substring(0,4); System.out.println("Messaggio: " + messaggio); System.out.println("Esso e' composto da " + lunghezzaMessaggio + " caratteri"); System.out.println("Il primo carattere e': \'" + primaLettera + "\', l'ultimo carattere e': \'" + ultimaLettera + "\'"); System.out.println("La sottostringa dei primi 4 caratteri e': \"" + prime4Lettere + "\""); System.out.println("Messaggio tutto in maiuscole: "); String messaggioMaiuscolo; messaggioMaiuscolo = messaggio.toUpperCase(); System.out.println(messaggioMaiuscolo); }// fine metodo main() } // fine classe Stringhe