Soluzione Provetta 3 del 01 aprile 2003

Esercizio 1

Si completi il metodo m seguente (intestazione e corpo) che, dato un array a di boolean come parametro, assegna false agli indici multipli di 3 e true agli altri.

public static void m(               a) {




}

Esercizio 2

Si dica quale (o quali) fra le seguenti affermazioni sono errate:

Esercizio 3

Si supponga di avere definito in una classe Esame i 2 metodi:

che calcolano rispettivamente la radice quadrata e la radice cubica dell'argomento. Si ipotizzi di essere sempre all'interno della classe Esame (ad esempio, nel main) e di aver dichiarato le variabili a, b e c di tipo double. Si scriva l'istruzione che assegna ad a la radice cubica della radice quadrata della somma di b e c.

Esercizio 4

La classe Numero è stata definita nel modo seguente:

class Numero {
  private double valore;
  public Numero(double x) {
    valore = x;
  }
  public static double meta(Numero n) {
    return n.valore / 2;
  }
  public double doppio() {
    return valore * 2;
  }
}
  1. Si consideri il seguente programma principale che deve creare un Numero n e poi assegnare ad a, e b rispettivamente la metà di n e il doppio di n.
    class UsaNumero {
      public static void main(String[] args) {
        double a,b;
        Numero n = new Numero(10.0);
          ...
        System.out.println(a);
          ...
        System.out.println(b);
      }
    }
    
    Si riportino nei riquadri seguenti le due istruzioni mancanti (indicate dai puntini):
    Ovviamente il calcolo della metà e del doppio va fatto invocando opportunamente i metodi definiti in Numero (si faccia attenzione: uno dei due metodi è d'istanza, l'altro è di classe...)
  2. Si scriva l'istruzione da aggiungere in fondo al programma per assegnare ad a il doppio della metà di n.

Esercizio 5

Si vuole visualizzare un "trapezio rettangolo" di asterischi, ossia:

*****
******
*******
********
*********
**********

Per farlo viene definito il metodo trapezio seguente.

public static void trapezio() {
  for (int i = 1; i <= 6; i++) {
    for (int  ...   ) 
      System.out.print('*');
    System.out.println();
  }
}

Si completi l'intestazione del secondo ciclo for nel metodo (si riporti l'intestazione completa qui sotto).

Soluzione

Esercizio 1

public static void m(boolean[] a) {
  for (int i = 0; i<a.length; i++)
    a[i] = (i%3 != 0);
}

Esercizio 2

Esercizio 3

a = radice3(radice2(b+c));

Esercizio 4

  1. a = Numero.meta(n)*2;

Esercizio 5

for (int j = 1; j <= (i+4); j++)

Fate l'amore e non la guerra!Valid HTML 4.01! Valid CSS! Paolo Coppola
Last modified: 2003-04-03