Esercizi della sesta lezione del corso su Java2

  1. Come nell'esercizio 6 della lezione 4 usate il seguente metodo
    void tr3d(double x[],double y[], double z[],int xp[],int yp[],int n){
            double theta = 80,phi=130;
            int nxc=300,nyc=300;
            double rad = Math.PI/180.;
            double scale=1.;
            double t =theta*rad;
            double p=phi*rad;
            double ct =Math.cos(t);
            double st =Math.sin(t);
            double cp =Math.cos(p);
            double sp =Math.sin(p);
            double a,b,c;
            for (int i=0;i < n;i++){
               a=x[i]*scale;                                                   
               b=y[i]*scale;                                                   
               c=z[i]*scale;                                                   
                xp[i] =(int)(a*sp-b*cp)+nxc;
                yp[i]=nyc -(int)(ct*(a*cp+b*sp)+c*st);
                }
                  
             }
    
    per rappresentare oggetti 3D. In questo caso gli oggetti devono essere prelevati ognuno da un file diverso dove sono memorizzati come in questo esempio che rappresenta una casa:
    
     14
     1 0 0 13.5
     2 4 0 13.5
     3 4 3 13.5
     4 2 4 13.5
     5 0 3 13.5
     6 0 0 7.5
     7 4 0 7.5
     8 4 3 7.5
     9 2 4 7.5
    10 0 3 7.5
    11 1 0 13.5
    12 2 0 13.5
    13 2 2 13.5
    14 1 2 13.5
     8 5
    1 5 1 2 3 4 5
    2 5 6 7 8 9 10
    3 4 2 7 8 3
    4 4 3 8 9 4
    5 4 6 1 5 10
    6 4 10 5 4 9
    7 4 1 2 7 6
    8 4 11 12 13 14
    
    Cioe' prima una lista di 14 punti e poi una lista di 8 poligonali che sono al massimo di 5 punti ciascuno.
    L'applet deve avere un menu' che permette di scegliere tra i file disponibili, deve rappresentare l'oggetto in 3D e poi permettere in qualche modo di ruotarlo.
  2. Scrivete un applet che legge un testo da un file e fa una lista ordinata di tutte le parole in ordine di frequenza nel testo. La lista deve essere mostrata in una textarea. Come file usate qualche opera letteraria disponibile sul Web in formato testo.
  3. Scrivete un'applicazione che fa una rappresentazione grafica del contenuto di una cartella.Usando la stessa tecnica dell'Applicazione 13, accedete alla lista di tutti i file, incluse le dimensioni.Quindi procedete a rappresentare il contenuto assegnando a ogni tipo un colore e colorando in una "mappa" un rettangolo di superficie proporzionale alla dimensione del file.
  4. Create un'applet che faccia da "mappa" per il vostro sito. L'applet crea un'immagine, oppure ne carica una gia' pronta da un file ed associa a ogni elemento dell'immagine un documento nella vostra cartella. Come variazione piu' complessa di questo esercizio,create un'applicazione come la 3 che crea l'immagine mappa piu' un file con i dati per l'applet che poi provvede a utilizzarli per mostrare la mappa del vostro sito.
  5. Scrivete un applet che legge dei dati numerici da un file e li mostra sotto forma di istogramma.
  6. Scrivete un applet che utilizza ConsoleCanvas.java e ConsoleApplet.java dell'Applet 12 per sperimentare su dadi truccati.Cioe' l'applet genera con una probabilita' di 0.5 un dado truccato e chi usa l'applet deve capire facendo ripetuti tentativi se il dado e' truccato o no. Ogni volta puo' selezionare il numero di lanci e gli viene stampato il numero di volte che ogni faccia e' uscita.Per rendere la cosa piu' difficile, variate a caso, la probabilita' di 2 facce con deviazioni piu' o meno grandi dal valore 1/6.In ogni caso la probabilita' totale deve essere 1.Quando pensa di aver capito,chi usa l'applet chiede di poter rispondere indicando se il dado e' truccato e quali facce sono anomale.
  7. Un applet non puo scrivere su disco per questioni di sicurezza. Ma dato che puo' collegarsi a un qualsiasi documento in rete cliccando su un bottone (vedi Applet 14), per scrivere su disco, basta collegare a questo bottone un programma eseguito da un server sul computer contenente il disco. Modificate l'Applet 12 aggiungendo un tasto "Salva risultato" che memorizza in un file su disco una riga indicando : data, ora, numero di tentativi, tempo necessario per completare la prova, risultato complessivo. Chiamate questo file "log.txt" e createlo sulla cartella "WWW" di alboot. Quindi sproteggetelo con "chmod 666 log.txt". Il programma che scrive la riga deve essere un file il cui nome finisce per "php3" ad esempio "aggiorna.php3". Potete avere un'idea di come si fa a scriverlo guardando questo esempio molto simile counter.php3 il cui sorgente trovate qui. Questo infatti invece di aggiungere una riga, aggiorna un contatore su un file su disco.