Stampa valori di una funzione in un applet

Vogliamo stampare i valori che la funzione f(x)=x2-10 con x intero nell'intervallo [0,20]. Un programma simile è stato fatto stampando però su linea di comando usando System.out.println. Vogliamo però che la stampa sia fatta nella finestra. Quindi, è necessario calcolare la posizione in cui i valori vanno stampati.

Diciamo per esempio che stampiamo un valore per riga, e che la prima linea è quella che ha coordinata y pari a 20, e poi ogni riga si trova 20 punti più sotto la precedente. Dal momento che il primo valore (che corrisponde a x=0 va stampato nella posizione 20, il secondo (x=1 a 40, ecc), è chiaro che il valore che corrisponde a un x generico va in posizione 20*x+20 (provare per credere).

Il programma completo StampaFunzione.java è il seguente.

/*
  Stampa i valori di una funzione in un applet.
*/

import java.awt.*;

public class StampaFunzione extends java.applet.Applet {
  public void paint(Graphics g) {
    int x;
    int f;

    for(x=0; x<=20; x=x+1) {
      f=x*x-10;

      g.drawString(""+f,0,20*x+20);
    }
  }
}

Si noti che, per stampare un numero con l'istruzione drawString è necessario fare g.drawString(""+f,...). In altre parole, occorre concatenare "" al numero. Questo serve per trasformare il numero in una stringa.

Il risultato è riportato qui sotto.