venerdì 19 agosto 2011

Esercizio java: verificare numero primo

Un numero primo è un numero naturale maggiore di 1 e divisibile interamente ( cioè senza resto ) esclusivamente da 1 e da se stesso. Si scriva un programma che determini se un certo numero dato in input soddisfi o meno questa condizione di primalità.
Questo è il codice:
class Numero_primo{  //verificare se un numero è primo o no
  public static void main(String [] args){
     int numero=634763;  //questo è il numero che ci chiediamo se è primo o no
    System.out.println("Il numero "+numero+" è primo? "+primo(numero));
  }
  public static boolean primo(int n){   //questo metodo restituisce true se il numero n è primo
    if (n<2)   //il primo numero primo è il 2, quindi se abbiamo unnumero minore a 2 allora non sarà primo
      return false;
    if (n<=3)  //se il numero in questione è minore o uguale a 3 allora a questo punto si tratta del 2 o del 3, entrambi primi
      return true;
    if (n%2==0)  //se dividendo per 2 il numero si ha resto uguale a zero allora è un numero pari (maggiore a 2) quindi primo
      return false;
    for (int i=3;i<n;i=i+2){      /* si fa un ciclo partendo con i che da 3 assume i numeri dispari minori al numero da esaminare n, non serve controllare con i numeri pari perchè n non è pari  */
      if ( n%i==0)   // se n dovesse essere divisibile per un qualche i allora non è primo
        return false;   
    }
    return true;    //se si è giunti fin qui allora il numero n è primo
  }
}

martedì 16 agosto 2011

Esercizio java: potenza seconda di un numero

L'esempio consiste in un programmino che calcola e stampa il quadrato di  un numero dato in input dall'utente. Si ha quindi un metodo che eleva alla seconda un numero fornendo quindi il risultato richiesto.
Ecco il codice:
class Quadrato_numero{   //calcola il quadrato di un certo numero
  public static void main(String [] argv){
    double n=4.5;
    System.out.println("il quadrato di "+n+" è: "+eleva_seconda(n));
  }
  public static double eleva_seconda(double num){
   return num*num;
  }
}

lunedì 15 agosto 2011

Buon Ferragosto a tutti!

15 agosto2011
bella giornata estiva con il sole che si fa vedere dappertutto.

C'è chi ha scelto di  passare il tempo in montagna al fresco, magari sulla riva di un fiume come in questa foto qui accanto.

Altri hanno deciso di trascorrere la giornata abbronzandosi in qualche bella spiaggia sulla costa italiana (vedi foto sotto ;)).



Eppure stasera probabilmente tutti vedranno i fuochi d'artificio proiettati nel cielo di tantissime città.

Esercizio java: sommatoria dei numeri naturali minori di un certo numero

Il compito di oggi è scrivere un programminoa che calcoli e stampi a video la somma di tutti i numeri naturali minori di un certo numero inserito dall'utente.
Il codice è il seguente:
class Sommatoria_fino_n{   //somma di tutti i numeri naturali minori di un numero dato
  public static void main(String [] argv){
     int n=100;
    System.out.println("La somma di tutti i numeri naturali minori a "+n+" è: "+somma_fino(n));
  }
  public static int somma_fino(int n){
    int m=0;  // vanno sommati i numeri naturali fino ad n quindi si parte da 0, m è il numero che verrà restituito
    int i=1;   //questo è il numero che verrà sommato ogni volta
    while(i<n){  // ci si ferma quando il numero da sommare è maggiore o uguale al numero n da raggiungere
      m=m+i;  // si somma ad m il numero contenuto in i
      i=i+1;  // si incrementa i di un'unità
    }
    return m;   // si restituisce il risulatato finale m
  }
}

domenica 14 agosto 2011

Esercizio java: somma di due numeri

Si tratta di calcolare la somma di due numeri dati in input dall'utente.
Questo è il codice:
class Somma{
  //dati due numeri si calcola la loro somma
  public static void main (String [] args){
     double primo=21.9;  // valore iniziale
     double secondo=15;   // sconto da applicare: 15%
     System.out.println(primo+" + "+secondo+" = "+somma(primo,secondo));
  }
  public static double somma(double addendo1, double addendo2){
    double out=addendo1+addendo2;       // out sarà il valore restituito, ora contiene la somma dei due parametri ricevuti in input
    return out;
  }
}

giovedì 11 agosto 2011

Esercizio java: sottrarre percentuale di sconto

Utile programmino che dati due numeri, uno ad indicare il valore iniziale e l'altro la percentuale di sconto che va applicata, calcola il valore scontato. Un metodo prende in input i due numeri: prima calcola lo sconto relativo al valore iniziale e poi restituisce il valore scontato sottraendo lo sconto prima calcolato al valore iniziale.
Ecco il codice:
class Sconto{
//dati due numeri, il primo è il valore e il secondo la percentuale di sconto, si calcola il valore scontato
// dal valore iniziale si sottrae lo sconto e quindi si ottiene il valore scontato
         public static void main (String [] args){
                double primo=21.9;            // valore iniziale
                double secondo=15;            // sconto da applicare: 15%
                System.out.println("Valore iniziale: "+primo+"\nSconto in percentuale: "+secondo+"%");
                System.out.println("Valore scontato: "+valore_scontato(primo,secondo));
        }
        public static double valore_scontato(double valore, double sconto){
              double out=valore*sconto/100;        // out sarà il valore restituito, ora contiene il valore da sottrarre al valore iniziale
              out=valore-out;         // sottraiamo a valore (il valore iniziale) il valore da scontare. Così otteniamo il valore scontato che restituiamo
             return out;
     }
}

martedì 9 agosto 2011

Esercizio java: controllo lettera maiuscola o minuscola e vocale o consonante

Questo programmino è formato dal metodo principale main e da due metodi che verificano se il carattere dato come parametro in input rappresenta una lettera maiuscola o minuscola e una vocale o una consonante. Se si tratta di una lettera maiuscola ( rispettivamente di una vocale ) viene restituito true altrimenti false.
Il codice è questo:
class Controllo_lettera{
       public static void main (String [] args){
               char lettera='a';
               System.out.println("La lettera "+lettera+" è maiuscola? "+maiuscola(lettera));
               System.out.println("La lettera "+lettera+" è una vocale? "+vocale(lettera));
        }
//dato in input un carattere questo metodo restituisce true se è una lettera maiuscola, false altrimenti
     public static boolean maiuscola(char let){
          return ((let>='A') && (let<='Z'));
// se il carattere dato in input, let, è compreso tra la lettera A e la Z allora viene restituito true: si tratta di una lettera maiuscola
     }
//dato in input un carattere questo metodo restituisce true se è una vocale, false altrimenti, cioè se è una consonante
     public static boolean vocale(char let){
          switch (let){
//se il parametro let dato in input è A, E, I ecc... allora si tratta di una vocale e si restituisce true altrimenti false perchè vuol dire che si tratta di una consonante
              case 'A':
              case 'E':
              case 'I':
              case 'O':
              case 'U':
              case 'Y':
              case 'a':
              case 'e':
              case 'i':
              case 'o':
              case 'u':
              case 'y':
                  return true;
             default:
                 return false;
        }
    }
}

lunedì 8 agosto 2011

I metodi in java

Tante volte capita di dover scrivere ripetutamente lo stesso codice in programmi diversi. Ad esempio in molti programmi occorre verificare se una lettera è maiuscola o minuscola oppure se è una vocale od una consonante. Senza riscrivere ogni volta le stesse porzioni di codice si ricorre all'uso dei metodi. I metodi sono dei sottoprogrammi che possono venir invocati dal programma principale. Con l'uso dei metodi si riesce a dividere il programma in più parti: semplici e riutilizzabili. Il metodo può ricevere in input uno o più parametri dati dal programma invocente, definire nuove variabili e restituire un certo risultato.
Il metodo viene definito attraverso la sua cosiddetta signature: va scritto il tipo di dato restituito ( se non si restituisce alcun dato allora si usa la key-word void ), il nome del metodo con il quale verrà invocato e tra parentesi tonde i tipi dei parametri ricevuti in input con i nomi relativi. Dopo la signature si scrive il codice che si dovrà elaborare e per restituire il risultato del metodo si usa la key-word return.

sabato 6 agosto 2011

Esercizio java: ricerca del numero maggiore in un array

Viene dato un array ed il compito è quello di trovare il numero massimo: si confrontano i numeri contenuti nell'array ed il numero cercato è quello che risulta essere maggiore a tutti gli altri.
Questo è il codice:
class Numero_maggiore{
//dato un array di numeri reali si stabilisce quale sia il maggiore
         public static void main (String [] args){
                     System.out.println("Stabilire quale è il numero maggiore contenuto in un array");
                     double [] numeri=new double[30];
    //si riempie l'array di numeri reali casuali tra 0 e 100 esluso: attrraverso il metodo random della  classe Math si ricava un numero casuale tra 0 ed 1 escluso //quindi moltiplicando per 100 si ottiene un numero casuale tra 0 e 100 escluso
           for(int i=0;i<numeri.length;i++)
                 numeri[i]=Math.random()*100;
//Stampiamo a video i numeri dell'array
           System.out.println("Ecco l'array in cui si cerca il numero maggiore");
           for(int i=0;i
<numeri.length;i++)
                System.out.print(numeri[i]+" ");
          double maggiore;         // questo sarà il numero maggiore contenuto nell'array numeri
           if(numeri.length!=0){         //potrebbe capitare un array di lunghezza 0( in questo esempio non accade ma potrebbe succedere in qualche altro caso) quindi per sicurezza meglio verificare
                maggiore=numeri[0];        //poniamo nella variabile maggiore il primo numero dell'array
                for(int i=1;i<numeri.length;i++){
                         if(numeri[i]>maggiore)
                                   maggiore=numeri[i];         //se qualche numero dovesse essere maggiore del numero finora più grande allora mettiamo il suo valore nella variabile maggiore
               }
               System.out.println("\nIl numero maggiore contenuto nell'array è: "+maggiore);
         }
        else         //l'array ha lunghezza 0
              System.out.println("\nL'array non contiene alcun numero");
    }
}

Esercizio java: confronto tra due numeri reali

Si stabilisce, dati due numeri reali, se essi sono uguali o altrimenti quale dei due numeri è il maggiore: il primo o il secondo.
Il codice è il seguente:
class Confronto_numeri{
       //dati due numeri reali chiamati primo e secondo si stabilisce quale dei due sia il maggiore o se sono uguali
        public static void main (String [] args){
        System.out.println("Confronto tra due numeri reali");
         //numeri da confrontare
         double primo=534.634;
         double secondo=5.6;
         System.out.println("I numeri da confrontare sono: "+primo+" il primo e "+secondo+" il secondo");
         if(primo==secondo)         // se i numeri sono uguali
               System.out.println("I due numeri sono uguali: "+primo+" = "+secondo);
         else{         // i numeri non sonop uguali, vediamo quale sia il maggiore
                if(primo>secondo)         // se primo è maggiore di secondo allora è primo il maggiore
                        System.out.println("Il primo numero è maggiore del secondo: "+primo+" > "+secondo);
               else     // altrimenti, non sono uguali, primo non è il maggiore, allora secondo è il maggiore
                       System.out.println("Il secondo numero è maggiore del primo: "+secondo+" > "+primo);
        }
    }
}