Programmi java utilizzati nelle lezioni




Programmi java utilizzati nelle lezioni

Lezione 1

Un programma che stampa un messaggio: PrimoProgramma.java


Lezione 2

Un programma che calcola l'area di un rettangolo: AreaRettangolo.java


Lezioni 3 e 4


Due programmi che utilizzano variabili di tipo int, double, long e alcune funzioni della classe Math: TestNumeri1.java e TestNumeri2.java.


Un programma che mostra alcuni esempi delle funzioni della classe String: TestStringhe.java.

Lezioni 5 e 6

Le strutture di controllo.

Un programma che, dato un numero intero n, calcola la massima potenza di 2 che divide n (esempio: se n = 24, il programma trova 2^3): CalcolaPotenze.java.

Un programma che definisce un numero intero a caso tra 1 e 10000 finché tale numero non risulta essere il "numero bersaglio" 5. Dopo di che stampa il numero di tentativi che sono stati necessari per trovarlo: CercaNumero.java.

Un programma che simula un certo numero di lanci di due dadi e calcola il numero di volte che si ottiene come punteggio un doppio 6. Il programma inoltre stampa la frequenza con cui si è presentato l'evento e la probabilità: DueDadi.java.

Un programma che stampa la tabella pitagorica dei numeri da 1 a 10 in un formato incolonnato: Tabella.java.

Un programma che stampa la "sequenza 3N+1" (cioè la sequenza in cui il primo elemento è un numero dato e il generico elemento è ottenuto dal precedente dividendolo per 2 se è pari, moltiplicandolo per 3 ed aggiungendo 1 se è dispari): Sequenza.java.

Un programma che sceglie un numero a caso e stabilisce se è pari o dispari: NumeriPariDispari.java.

Un programma che simula il lancio di due dadi un numero fissato di volte e stabilisce quante volte si presenta il punteggio "doppio sei": DoppioSei.java.

Un programma che scrive una parola di 5 lettere scelte a caso: CostruttoreParole.java. Un programma che inventa una parola a caso di 10 lettere e stabilisce se tale parola contiene il carattere 'd': RicercaLettera.java.


Lezione 7

Lettura di dati in input da console: un modello (piuttosto grezzo) per leggere dati da console di tipo int, double o String: LeggiDati1.java.

Un secondo modello per leggere dati da console, sempre di tipo int, double o String (in questo secondo caso c'è un controllo migliore del tipo di dato inserito, che se è errato, viene riletto): LeggiDati2.java.


Lezione 8


Utilizzo delle procedure. Un semplice programma che chiede all'utente di indovinare, entro tre tentativi, un numero "pensato" dal calcolatore: IndovinaNumeri.java. Il programma utilizza un modo per leggere dei dati dalla finestra di console riassunto nelle classi della Lezione 7.

Esempio di variabili di classe: il programma precedente con una variante: una variabile che conta il numero di partite vinte: IndovinaNumeri1.java.

Una classe che contiene vari metodi (funzioni matematiche) utilizzabili in altre classi: MiaMath.java. Esempio di utilizzo della classe MiaMath: ProveMiaMath.java. Un albero di Natale: Albero.java.


Un programma che stampa una carta da gioco: ScegliCarta.java; un programma che testa il teorema di Cesaro (utilizzando l'algoritmo di Euclide): TestEuclide.java.


Lezione 9

Classi e oggetti. Un primo esempio di classe: la classe Studente.java e un esempio di sua applicazione: ProvaStudenti.java.


Un altro esempio di classe: la classe Attore.java e un suo utilizzo (molto grezzo, brutto e criticabile) GestioneTeatro.java.

Lezione 10

Esempi di classi e oggetti: una classe che definisce il comportamento di una formica: Formica.java e una classe che simula e studia il movimento di tre formiche nel piano: MarciaFormiche.java.


Riutilizzo della classe Formica.java per ottenere un'altra simulazione (un JApplet): AppletMarciaFormiche.html

File utilizzati per la costruizione dell'applet (oltre a Formica.java): FormicaCompleta.java, MarciaFormiche2.java

Lezione 11

La classe ContoCorrente.java (commentata con sintassi corretta per il programma javadoc) e la classe TestConto.java che testa la classe precedente.

La classe Anagrafe.java che utilizza variabili static e non static (scopo della classe: assegnare ad ogni oggetto un numero progressivo cioè al primo oggetto creato il numero 1, al secondo oggetto creato il numero 2 ecc.).

La classe ProvaStringBuffer.java per testare la diversa efficienza della classi String e StringBuffer.

Lezione 12 (array)

Alcuni esempi di utilizzo di array. La classe Conto.java e un suo utilizzo nella classe SimulazioneConto.java.

Lezioni 13 e 14 (Ereditarietà)

Discussione della soluzione del primo esercizio della prima lista degli esercizi proposti in aula computer: Terne.java.

Primo esempio di ereditarietà: la classe Veicolo.java e le sottoclassi: Auto.java, Camion.java e Moto.java. Una classe per testarle: TestVeicolo.java.

Lezione 15 e 16 (Ereditarietà: costruttori di sottoclassi, super e super())

Esempio di classi e sottoclassi: un contratto telefonico per un telefono fisso e un telefono mobile hanno in comune alcune caratteristiche riassunte dalla classe ContrattoTelefonico.java. La sottoclasse ContrattoFisso.java riscrive un metodo delle superclasse ed eredita gli altri. Analogamente la sottoclasse ContrattoMobile.java eredita tutti i metodi di ContrattoTelefonico, salvo riscriverne uno per il calcolo della tariffa. La classe TestContrattoTelefonico.java testa le classi precedenti.

Esempio: la classe Orologio.java e la classe OrologioCucu.java (trattate negli esempi discussi in aula computer).

Lezione 17 (Polimorfismo)

Le classi Veicolo, Auto, Camion e Moto modificate per far vedere un esempio di polimorfismo: Veicolo1.java, Auto1.java, Camion1.java, Moto1.java. Una classe per testarle: TestVeicolo1.java.

Altro esempio di polimorfismo: la classe Lavoratore.java con le sottoclassi: Capo.java, Impiegato.java, Fattorino.java e la classe Test: TestLavoratori.java.

Lezione 18 (Esempi di polimorfismo e classi astratte; il metodo toString() di Object)

Un esempio di classe astratta: la classe FormaGeometrica.java e le sue sottoclassi Quadrato.java, Rettangolo.java e Cerchio.java. Una classe per testare le tre classi dette e mostrare un esempio di polimorfismo: TestForme.java.

Il metodo toString() della classe Object. Un esempio di utilizzo: la classe Fiore1.java (senza la soprascrittura del metodo toString()) e la classe Fiore2.java (con la soprascrittura del metodoToString()) e un test delle due classi: TestFiori.java.


Lezione 19 (Primi esempi di applet)

(N.B. per visionare gli applet proposti qui e in seguito è necessario avere un navigatore con Java abilitato).

Un applet che disegna alcune forme geometriche (un segmento, il perimetro di un rettangolo, un ellisse e un rettangolo, in vari colori): ProvaApplet1.java. Visiona l'applet: ProvaApplet1.hml.

Un applet che scrive una stringa e qualche forma geometrica: ProvaApplet2.java. Visiona l'applet: ProvaApplet2.html.

Un applet che disegna ancora qualche forma geometrica: ProvaApplet3.java. Visiona l'applet: ProvaApplet3.html.

Una classe che realizza un'automobilina: Automobile.java e l'utilizzo della classe in un applet per disegnare vari oggetti ti tipo Automobile: ProvaApplet4.java. Visiona l'applet: ProvaApplet4.html.

Lezione 20 (Esempi di Applet, utilizzo della classe Graphics2D)

Un applet che stampa stringhe in font diversi: AppletStringa.java. Visiona l'applet: AppletStringa.html.

Un applet che disegna un cerchio sempre nel centro dell'applet (comunque venga modificata la finestra dell'applet): AppletCerchio.java. Visiona l'applet: AppletCerchio.html.

Un applet che traccia il grafico della funzione y = sen(x): AppletSeno.java. Visiona l'applet: AppletSeno.html.

Ancora esempi di applet e utilizzo di Graphics2D: tracciare linee più o meno grosse (con setStroke()): AppletGraphics2D.java. Visiona l'applet: AppletGraphics2D.html. Colorare figure in modo non omogeneo: AppletGrAv.java. Visiona l'applet: AppletGrAv.html.

Lezione 21 (Gestione di eventi)

Un applet che reagisce alle azioni del mouse: AppetMouse1.java e la classe (esterna) che definisce il ricevutore di eventi: RicevitoreEventiMouse.java. Lo stesso applet ma con la classe interna: AppletMouse2.java. Un applet che disegna un quadrato in varie zone dello schermo (in corrispondenza al punto in cui viene premuto il mouse): AppletMouse3.java. Visiona l'applet: AppletMouse3.html.

Lezioni 22 e 23 (gestione eventi e bottoni)

Un applet che mostra un quadrato che cambia colore quando viene premuto il mouse al suo interno: AppletMouse4.java. Visiona l'applet: AppletMouse4.html. Un applet che reagisce ai movimenti del mouse, scrivendo le coordinate del punto in cui si trova il mouse: AppletMovimento.java. Visiona l'applet: AppletMovimento.html. Un applet che disegna un segmento definito dai movimenti del mouse: AppletDisegno.java. Visiona l'applet: AppletDisegno.html. Un applet che utilizza un bottone: AppleConBottone1.java. Visiona l'applet: AppletConBottone1.html.

Utilizzo di una classe interna anonima per associare un ricevitore di eventi: l'applet AppletMouse4Nuovo.java che si comporta esattamente come AppletMouse4 ma con un implementazione diversa. Visiona l'applet: AppletMouse4Nuovo.html.

Lezione 24 (JApplet, animazioni - Array).

JApplet: l'applet "AppletConBottone1" rifatto in un JApplet: AppletConBottone2.java. Visiona l'applet: AppletConBottone2.html.

Un JApplet con un disegno e un bottone: Movimento1.java. Visiona l'applet: Movimento1.html. Il JApplet precedente lievemente modificato per ottenere un'animazione: Movimento2.java. Visiona l'applet: Movimento2.html. La stessa animazione completata con un bottone che la fa partire e la ferma (utilizzo del metodo stop() del JApplet): Movimento3.java. Visiona l'applet: Movimento3.html.

Esempi di Layout: tre applet che utilizzano BorderLayout, GridLayout e FlowLayout: primo esempio: EsempioLayout1.java. Visiona applet: EsempioLayout1.html. Secondo esempio:EsempioLayout2.java. Visiona applet: EsempioLayout2.html. Terzo esempio: EsempioLayout3.java. Visiona applet: EsempioLayout3.html.

Un ultimo esempio: un parallelepipedo che ruota: AppletSolido.html. Le classi utilizzate per ottenere l'applet: Parallelepipedo.java; SpazioToPiano.java; AppletSolido.java.

Ulteriore collezione di esempi di JApplet (lezioni 21-24)

Un primo esempio di JApplet che disegna un quadrato (il disegno viene effettuato in una classe esterna): la classe esterna: DisegnoQuadrato.java e il JApplet che realizza il disegno: JAppletDisegno.java. Visiona l'applet: JAppletDisegno.html.

Lo stesso esempio rifatto con l'utilizzo di una classe interna: JAppletDisegno2.java. Visiona l'applet: JAppletDisegno2.html.

Sempre lo stesso applet, ma con l'utilizzo di una classe interna anonima per la costruzione del disegno: JAppletDisegno3.java. Visiona l'applet: JAppletDisegno3.html.

Un JApplet che disegna un poligono (utilizzo di oggetti Graphics2D): JAppletPoligono.java. Visiona l'applet: JAppletPoligono.html.

Un JApplet che è sensibile alle azioni del mouse (Scrive un messaggio che viene modificato quando il puntatore del mouse entra o esce dal pannello):

Versione 1: JAppletMouse.java. Visiona l'applet: JAppletMouse.html.

Versione 2: JAppletMouse2.java. Visiona l'applet: JAppletMouse2.html. (In questo caso viene costruita una nuova classe interna per la gestione degli eventi).

Versone 3: JAppletMouse3.java. Visiona l'applet: JAppletMouse3.html. (In questo caso e' la stessa classe dell'applet che implementa l'interfaccia MouseListener - Utilizzo del parametro implicito this).

Un JApplet che disegna un cerchio che cambia colore ogni volta che viene cliccato il tasto sinistro del mouse: CerchioColorato.java. Visiona l'applet: CerchioColorato.html.

Un JApplet che e' sensibile al movimento del mouse (usa l'interfaccia MouseMotionListener). Ad ogni movimento del mouse il colore dell'ellisse disegnata viene modificato: EllisseColorata.java. Visiona l'applet: EllisseColorata.html.

Un esempio di un JApplet che disegna un quadrato che può essere spostato con il mouse: QuadratoFluttuante.java. Visiona l'applet: QuadratoFluttuante.html.

Un JApplet con un bottone e un campo di testo che scrive un numero. Ogni volta che viene premuto il bottone il numero nel campo di testo viene incrementato di 1: BottoneContatore.java. Visiona l'applet: BottoneContatore.html.

Un JApplet simile al precedente, solo che l'incremento viene fatto automaticamente, senza l'intervento del bottone, ma con l'utilizzo di un oggetto della classe Timer: ContatoreAutomatico.java. Visiona l'applet: ContatoreAutomatico.html.

Un JApplet come il precedente, ma con l'aggiunta di un bottone che avvia o ferma l'animazione: ContatoreAutomatico2.java. Visiona l'applet: ContatoreAutomatico2.html.

Un'animazione che mostra un rettangolo che si muove oscillando avanti e indietro per la finestra: JAppletAnimazione.java. Visiona l'applet: JAppletAnimazione.html.


fonte: http://www.dmi.units.it/~logar/didattica/corsoJava/esempi/

Commenti