Post on 12-Sep-2018
transcript
Esercizi in Java
22 novembre 2005
Indice
1 Anni Bisestili 3
2 Massimo e Media di un array di 10 elementi 3
3 Primi 10 Numeri Triangolari 4
4 Bubble Sort 5
5 Crivello di Erastotene 5
6 Fattoriale 6
7 Grado di Ordinamento di un Array 7
8 Massimo Comun Divisore con Euclide 8
9 Ricerca di un Numero Primo 9
10 Numeri Triangolari 9
11 Sommatoria da 1 ad n 11
12 Verifica se una stringa è Palindroma 11
13 Data una stringa contenente ’è’ sostituisce con ”non è” 12
14 Anagrammi 13
15 Rovescia una stringa conta Lettere e Spazi 14
16 Dato un array e 2 interi mette a 0 quelli compresi /pag. 9 usare_emma.pdf 15
1
17 Esercizi di Conversione 1817.1 Main degli esercizi proposti . . . . . . . . . . . . . . . . . . . . . .. 1817.2 Converte gradi Celsius in Fahrenheit . . . . . . . . . . . . . . .. . . 1817.3 Calcola le calorie in base al peso . . . . . . . . . . . . . . . . . . .. 1917.4 Calcola il BMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1917.5 Calcola la potenza di un numero . . . . . . . . . . . . . . . . . . . . 1917.6 Il peso corporeo su altri pianeti . . . . . . . . . . . . . . . . . . .. . 1917.7 Visualizzatore di array per double e per interi . . . . . . .. . . . . . 2017.8 Età su altri pianeti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2017.9 Equazioni di secondo grado . . . . . . . . . . . . . . . . . . . . . . . 2117.10Calcola tasso interesse . . . . . . . . . . . . . . . . . . . . . . . . .2117.11Calcola l’N-esimo numero di Fibonacci . . . . . . . . . . . . .. . . 2117.12Calcola la cresita di una Popolazione . . . . . . . . . . . . . .. . . . 22
18 Scrivere un metodo che prende un array di stringhe e restituisci quellamaggiore (in ordine alfabetico) o null se l’ array è vuoto o null 22
19 Un metodo che restituisce un array di stringhe uguale a quello passato maordinato 23
2
1 Anni Bisestili
import java.util.Scanner;public class bisestile{
public static void main(String[] args){
int anno;Scanner keyboard = new Scanner(System.in);System.out.print("Inserisci un Anno : ");
anno=keyboard.nextInt();AnnoB(anno);
}public static void AnnoB (int anno)
{int Div4=anno%4;int Div100=anno%100;int Div400=anno%400;
if ((Div4==0 && Div100!=0)|| Div400 ==0)System.out.println("L’anno è Bisestile");
elseSystem.out.println("NO!!");
}}
2 Massimo e Media di un array di 10 elementi
import java.util.Scanner;public class media_array_10{
public static void main(String[] args){
int a[];float avg;int max;a = new int[10];Scanner keyboard = new Scanner(System.in);for (int i=0;i<=9;i++){
System.out.print("Inserisci il Numero " +(i+1)+": ");a[i]=keyboard.nextInt();
}avg=media(a);System.out.println("La media del vettore è "+avg);max=max_v(a);
3
System.out.println("Il valore Massimo del vettore è "+max );}public static float media(int a[]){
float temp=0;for(int i=0; i<=9; i++){
temp =temp +a[i];}return (temp/a.length);
}public static int max_v(int a[]){
int max=0;for(int i=0; i<=9; i++){
if (a[i]>max)max=a[i];}return max;
}}
3 Primi 10 Numeri Triangolari
public class triangolari_10{
public static void main(String[] args){
int a=0;System.out.println(">Ecco i primi 10 numeri triangolari" );for (a=1; a<=10; a++){
System.out.println(">Triangolare " + a + " è " + n_triangola re(a));}
}public static int n_triangolare(int a){
int result=0;result =a * (a+1)/2;return result;
}}
4
4 Bubble Sort
public class bubble_sort{
static int[] bsort (int[] lista, int a, int z){
int scambio;int j;int k;for (j = a; j < z; j++){
for (k = j+1; k <= z; k++){
if (lista[k] < lista[j]){
scambio = lista[k];lista[k] = lista[j];lista[j] = scambio;
}}
}return lista;
}public static void main (String[] args){
int[] lista = new int[args.length];int i;for (i = 0; i < args.length; i++){
lista[i] = Integer.valueOf(args[i]).intValue ();}bsort (lista, 0, args.length-1);for (i = 0; i < lista.length; i++){
System.out.println ("lista[" + i + "] = "+ lista[i]);}
}}
5 Crivello di Erastotene
import java.util.Scanner;public class crivello_erastotene{
public static void main(String[] args)
5
{int a=0;Scanner keyboard = new Scanner(System.in);System.out.print(">Inserisci il Numero: ");a=keyboard.nextInt();int size=a;boolean[] flags;if (args.length > 0) size= Integer.parseInt(args[0]);flags = new boolean[size+1]; // array indicizzato da 0 a sizesieveMethod(flags);
for(int i=2; i <= size; i++) // itera sul numero di argomentiif (flags[i]){
System.out.print(i); //stampa numero primo.System.out.print(" ");
}System.out.println();
}public static void sieveMethod(boolean[] flags){
int i,multiplo;for(i=2; i<flags.length; i++) // inizializza l’arrayflags[i]=true;for(i=2; i<flags.length; i++) // itera su tutti i numeri{
if (flags[i]) // se non e stato marcato// marca tutti i suoi multiplifor(multiplo=i+i; multiplo<flags.length; multiplo+=i)flags[multiplo]=false;
}}
}
6 Fattoriale
import java.util.Scanner;public class Fattoriale{
public static void main(String[] args){
int a, fattoriale;int i;Scanner keyboard = new Scanner(System.in);System.out.print("Inserisci un Numero : ");
6
a=keyboard.nextInt();fattoriale =fat1(a);
System.out.println("Il fattoriale di " + a + " e " + fattorial e);}public static int fat1(int fattoriale){
if(fattoriale==1)return 1;
elsereturn (fattoriale * fat1(fattoriale-1));
}}
7 Grado di Ordinamento di un Array
import java.util.Scanner;public class Grado_ordinamento{
public static void main(String[] args){
int a[],grado_O;a = new int[10];
Scanner keyboard = new Scanner(System.in);for (int i=0;i<=9;i++){
System.out.print("Inserisci il Numero " +(i+1)+": ");a[i]=keyboard.nextInt();
}grado_O=grado(a);System.out.print("Il grado dell’array è " +grado_O);
}public static int grado(int a[]){
int max;max=1;int seq=1;int c_v=0;for (int i=0; i<9; i++){
if (a[i+1]>=a[i]){
max++;if (max>seq)
seq=max;}
7
elsemax=1;
}return (seq);
}}
8 Massimo Comun Divisore con Euclide
import java.util.Scanner;public class MCD{
public static void main(String[] args){
int a,b;float risultato;Scanner keyboard = new Scanner(System.in);System.out.print("Inserisci il primo Numero: ");
a=keyboard.nextInt();System.out.print("Inserisci il secondo Numero: ");
b=keyboard.nextInt();risultato =MCD(a,b);System.out.println("L’MCD " + risultato);
}
public static int MCD(int m, int n){
if (n == m){
return n;}else if (m < n){
return MCD(m - n, n);}else{
return MCD(m,n-m);}
}}
8
9 Ricerca di un Numero Primo
import java.util.Scanner;public class primo_1{
static boolean prime (int x){
boolean primo = true;int i = 2;int j;while ((i < x) && primo)
{j = x / i;j = x - (j * i);if (j == 0)
{primo = false;
}else
{i++;
}}
return primo;}public static void main (String[] args){
int x;Scanner keyboard = new Scanner(System.in);System.out.println ("Inserisci il numero");x=keyboard.nextInt();if (prime (x))
{System.out.println (x + " è un numero primo");
}else
{System.out.println (x + " non è un numero primo");
}}
}
10 Numeri Triangolari
import java.util.Scanner;
9
public class triangolare{
static int valore1=0;public static void main(String[] args){
int a;Scanner keyboard = new Scanner(System.in);do{
System.out.print("Inserisci un Numero : ");a=keyboard.nextInt();
}while(a==0);
if (n_triangolare(a)) System.out.println(">Il numero è u n triangolo");else
System.out.println(">Il numero NON e triangolo");
}public static boolean n_triangolare(int a){
int triang[],i;
triang = new int[a+1];
for(i=0; i<=a; i++){
triang[i]=i * (i+1)/2;}
if (cerca(triang,a))return true;else return false;
}public static boolean cerca(int triang[],int a){
for(int i=0; i<=a; i++){
if (triang[i]==a) valore1=1;}if (valore1==1)return true;else return false;
}}
10
11 Sommatoria da 1 ad n
import java.util.Scanner;public class Sommatoria{
public static void main(String[] args){
int a,somma=0;Scanner keyboard = new Scanner(System.in);do{
System.out.print("Inserisci un Numero : ");a=keyboard.nextInt();
}while(a==0);
somma =sum(a);
System.out.println(">La sommatoria da 1 a "+a+" è " + somma) ;
}public static int sum(int a){
int somma=0;int i=1;while (a!=0){
somma =somma +i;a--;i++;
}return somma;
}}
12 Verifica se una stringa è Palindroma
import java.util.Scanner;public class palindroma {
public static boolean isPalin(String st) {boolean isPalinFlag;int i, j;i = 0;
11
j = st.length() - 1;isPalinFlag = true;while ((i <= j) && isPalinFlag)
isPalinFlag = st.charAt(i++) == st.charAt(j--);return isPalinFlag;
}public static void main(String[] args){
String name;Scanner keyboard = new Scanner(System.in);System.out.print("Inserisci la parola : ");
name=keyboard.next();if (isPalin(name)) System.out.println("> E’ palindroma" );else System.out.println(">La parola inserita NON epalind roma");
}}
13 Data una stringa contenente ’è’ sostituisce con ”nonè”
import java.util.Scanner;public class sost_string{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.print("Inserisci la Stringa: ");String name = keyboard.nextLine();
//System.out.print("Stringa inserita: "+ name);char c;String temp="";
for (int i=0; i<=name.length()-1; i++){
if ((c =name.charAt(i))==’è’){
String b="non è";temp=temp+b;
}else{
temp=temp+c;
12
}}
System.out.println("Stringa inserita: "+ temp);}
}
14 Anagrammi
import java.util.Scanner;public class anagrammi{
public static void main(String[] args){
int s[];int t[];s = new int [6];t = new int [6];System.out.println(">Inserisci il primo array:");Scanner keyboard = new Scanner(System.in);for (int i=0;i<6;i++){
System.out.print("Inserisci il Numero " +(i+1)+": ");t[i]=keyboard.nextInt();
}System.out.println(">Inserisci il secondo array:");for (int i=0;i<6;i++){
System.out.print("Inserisci il Numero " +(i+1)+": ");s[i]=keyboard.nextInt();
}int conta_p=0;int a=9;//boolean flags=true;while(a!=0){
for (int i=0;i<5;i++){
if(t[i+1]==t[i])conta_p++;
else{
conta_p=1;
13
}for (int f=0;f<5;f++){
if(t[f]==s[f])conta_p--;
elseconta_p=1;
}}if(conta_p !=0)
//flags =false;System.out.println(">NON è anagramma");
else// flags=true;
System.out.println(">E’ anagramma");a--;
}
}}
15 Rovescia una stringa conta Lettere e Spazi
import java.util.Scanner;public class reverse_string{
public static void main(String[] args){
String input="";
Scanner keyboard = new Scanner(System.in);System.out.print(">Inserisci la stringa: ");input=keyboard.nextLine();
System.out.println(">Stringa R: "+reverse(input));System.out.println(">ci sono: "+count_l(input)+" lette re");System.out.println(">ci sono: "+count_s(input)+" spazi ");
}
public static String reverse (String input){
String temp="";int inizio=0;int fine=input.length()-1;
14
for (int i=fine;i>=inizio;i--){
temp=temp+input.charAt(i);}return temp;
}public static int count_l (String input){
int num=0;int inizio=0;int fine=input.length()-1;for (int i=fine;i>=inizio;i--){
if((input.charAt(i)!=’ ’))num++;
else;;
}return num;
}public static int count_s (String input){
int sp=0;int inizio=0;int fine=input.length()-1;for (int i=fine;i>=inizio;i--){
if((input.charAt(i)==’ ’))sp++;
else;;
}return sp;
}
16 Dato un array e 2 interi mette a 0 quelli compresi/pag. 9 usare_emma.pdf
public class Esercizio1 {
public static void main(String[] args){
//Primo percorsoint a=1;
15
int b=5;int[] array ={12,2,5,18,0,8,3,34,5,9};metodo(a,b,array);
System.out.println("a=3 e b= 5 a=[1-7] -> > > "+ stampa(arra y));}public static void metodo(int a,int b,int [] array)
{/ * int p_a=0,p_b=0;///Utilizza gli indici: ma non era rischie sto!!
for (int i=0; i<array.length; i++){
if(array[i]==a)p_a=i;if(array[i]==b)p_b=i;
}for (int i=p_a; i<=p_b; i++){
array[i]=0;
} * ///Fine indici
for (int i=0; i<array.length; i++){
if(array[i]>=a & array[i]<=b)array[i]=0;else if (array[i]<a)array[i]=-1;else if (array[i]>b)array[i]=+2;
}}
public static String stampa(int [] array)//Serve per fare v edre l’array{
int i;String temp="";for( i=0; i<array.length; i++){
temp= temp+" " + array[i];}
return temp;}
}
16
17
17 Esercizi di Conversione
17.1 Main degli esercizi proposti
public class gr_conv{
public static void main(String [] args){
System.out.println("---Converit gradi Fare..");System.out.println("20 Gradi > > > "+c_conv(20));System.out.println("37 Gradi > > > "+c_conv(37));System.out.println("---Kalorie");System.out.println("55 Kg > > > "+c_Kal(55));System.out.println("60 Kg > > > "+c_Kal(60));System.out.println("---BMI");System.out.println("55 Kg, 1.50 m > > > "+BMI(55,exp(1.50, 2)));System.out.println("60 Kg, 1.75 m > > > "+BMI(60,exp(1.75, 2)));System.out.println("---Pesi su i Pianeti");
System.out.println("Terra, Marcurio, Venere, Giove, Sat urno > > > " +stampa_array_d(pesi_p(60)));System.out.println("---Età su altri pianeti");System.out.println("Terra, Marcurio, Venere, Giove, Sat urno > > > " +stampa_array_i(eta_p(21)));
System.out.println("---Soluzione eq. Secondo grado");System.out.println("Eq. 2 ◦ a=3 - b=2 - c=1" + stampa_array_d(eq_sec(3,2,1)));System.out.println("---Calcola interesse");System.out.println("1000$, 5%, 1 anno > >" + tasso_i (1000, 5,1)+"$");System.out.println("---Fibonacci N");System.out.println("Fibonacci 20 > >" + fibo(20));System.out.println("---Calcola la crescita della popola zine");System.out.println("PA=1M/1970,PB=2M/1990,PC=??/200 0 > >" +c_pop(1970,1000000,1990,2000000,2000));
}}
17.2 Converte gradi Celsius in Fahrenheit
public static double c_conv(double gr)//Converte gradi Ce lsius in fahrenheit{
double temp=0;temp=(1.8 * gr)+32;return temp;
}
18
17.3 Calcola le calorie in base al peso
public static int c_Kal (int peso) //Calcola le calorie in ba se al peso{
int calories=0;calories=peso * 19;return calories;
}
17.4 Calcola il BMI
Una quantita conosciuta come Body Mass Index (BMI) e usata per calcolare il rischiodi problemi di salute dovuti al peso.
Tramite la formulaBMI =
w
h2
Dovew è il peso mentreh2 è l’altezza.
public static double BMI (double peso,double h)///Calcola il BMI{
double BMI=0;BMI=peso/h;return BMI;
}
17.5 Calcola la potenza di un numero
public static double exp(double base,double exp)//Calcol a elevamento potenza{
double result=0;for(int i=1;i<=exp;i++){
result = base * base;}return result;
}
17.6 Il peso corporeo su altri pianeti
Il tuo peso e a dire il vero la quantita di attrazione gravitazionale esercitata dalla Terrasu di te. Dato che la gravita della Luna e solo 1/6 della gravita della Terra, sulla Luna iltuo peso sarebbe 1/6 di quello sulla Terra. Scrivi unapplicazione che domanda allutenteil suo peso sulla Terra e scrive il suo peso su Mercurio, Venere, Giove e Saturno. Usa i
19
valori della seguente tabella:
Pianeta Moltiplica il peso sulla terra di:
Marcurio 0.5Venere 0.9Giove 2.5
Saturno 1.1
public static double[] pesi_p (int peso)//Il peso su altri p ianeti{
double[] pesi={0,0,0,0,0};pesi[0]=peso; //Peso sulla terrapesi[1]=peso * 0.4;; //Peso su mercuriopesi[2]=peso * 0.9; //Peso su Venerepesi[3]=peso * 2.5; //Peso su Giovepesi[4]=peso * 1.1; //Peso su Saturnoreturn pesi;
}
17.7 Visualizzatore di array per double e per interi
public static String stampa_array_d(double array[])//Mo stra array di double{
String temp="";for (int i=0; i<array.length;i++){
temp=temp + " - " +array[i];}return temp;
}public static String stampa_array_i(int array[])//Mostr a array di int
{String temp="";for (int i=0; i<array.length;i++){
temp=temp + " - " +array[i];}return temp;
}
17.8 Età su altri pianeti
public static int[] eta_p (int eta)//L’età su altri pianeti
20
{int[] etaa={0,0,0,0,0};etaa[0]=eta; //Peso sulla terraetaa[1]=(eta * 365)/88; //Peso su mercurioetaa[2]=(eta * 365)/225; //Peso su Venereetaa[3]=(eta * 365)/4380;//Peso su Gioveetaa[4]=(eta * 365)/10767;//Peso su Saturnoreturn etaa;
}
17.9 Equazioni di secondo grado
public static double[] eq_sec (double a,double b,double c) ///Risolve le equazioni di 2 ◦ grado
{double[] risultato={0,0};double temp=0;temp=Math.pow(b,2);temp-=4 * a* c;temp=Math.sqrt(temp);if(Math.pow(b,2)<(4 * a* c))temp=0;risultato[0]=(-b+temp)/(2 * a);risultato[1]=(-b-temp)/(2 * a);return risultato;
}
17.10 Calcola tasso interesse
public static double tasso_i (double p,double r,double n)/ /Calcola interesse{
double risultato=0;double temp=0,temp2=0;double r1=r/100;temp=p * (1-Math.pow(r1,n+1));temp2=1-r1;risultato=temp/temp2;return risultato;
}
17.11 Calcola l’N-esimo numero di Fibonacci
public static double fibo (double n)///Calcola Fibonacci N{
double risultato=0;
21
double temp=0,temp2=0;temp=1/Math.sqrt(5);///1/sqrt5temp2=(((1+Math.sqrt(5))/2));///1+sqrt5double temp3=Math.pow(temp2,n);double temp4=(((1-Math.sqrt(5))/2));///1-sqrt5double temp5=Math.pow(temp4,n);risultato=temp * (temp3-temp5);return risultato;
}
17.12 Calcola la cresita di una Popolazione
public static double c_pop (double annoA, double pop_a, dou ble annoB, double pop_b, double annoC){
double pop_c=0;double k1=0,div=0;div=pop_b/pop_a;k1=(1/(annoB-annoA));double k2=k1 * (Math.log(div));double esp=k2 * (annoC-annoA);pop_c= pop_a * (Math.exp(esp));return pop_c;
}
18 Scrivere un metodo che prende un array di stringhee restituisci quella maggiore (in ordine alfabetico) onull se l’ array è vuoto o null
public class str_mag{
public static void main(String[] args){
/ * String array[] = new String[2];array[0]="aaa";array[1]="aab";str_mag_1(array);System.out.println(str_mag_1(array)); * /
}public static String str_mag_1(String array[]){
if (array == null)return null;else{
String max=array[0];
22
for (int i=1; i<array.length; i++){
if(array[i].compareToIgnoreCase(max)>0)max=array[i];
}return max;
}}
}
19 Un metodo che restituisce un array di stringhe ugua-le a quello passato ma ordinato
public class ordina_str{
public static void main(String[] args){
String array[] = new String[3];String nuovovett[] = new String[3];array[0] = "b";array[1] = "a";array[2] = "d";nuovovett = ordina_str1(array);//System.out.println("Valore nuovovett"+stampa_array _d(nuovovett));System.out.println("Valore nuovovett> >" + nuovovett[0] );System.out.println("Valore nuovovett> >" + nuovovett[1] );System.out.println("Valore nuovovett> >" + nuovovett[2] );
}public static String[] ordina_str1(String array[]){
if (array == null)return null;
else{
String nuovovett[] = new String[array.length];for (int i = 0; i < array.length; i++) {
nuovovett[i] = str_mag_1(array);}return nuovovett;
}}public static String str_mag_1(String array[]){
int indice_max=0;
23
if (array == null){
return null;}else{
String max = array[0];for (int i = 1; i < array.length; i++){
if (array[i].compareToIgnoreCase(max) > 0){
indice_max=i;max = array[i];
}}array[indice_max] = "";return max;
}}
}
24