Correzione esercizio verifica in classe: disegnare una sequenza di quadrati a partire dal punto cliccato fino ad includere...
Il testo del problema <ul><li>Disegnare un rettangolo di colore blue su di un pannello java. A tua scelta scegli le coordi...
Una possibile soluzione
Fare un metodo che risolve il problema  <ul><li>Conviene mettere la logica di soluzione dentro un metodo. Ossia tutte le i...
Questione importante da capire <ul><li>La condizione di iterazione è (contiente==false) </li></ul><ul><li>Qui è il gioco <...
Gestione della variabile booleana <ul><li>Definiamo la variabile contiene e le assegniamo il valore false </li></ul><ul><l...
Da quale punto  del  programma viene mandato in esecuzione il metodo disegnaQuadrati(  ) ? <ul><li>Le istruzioni di disegn...
Gestione della variabile booleana: cliccato
Risultato della elaborazione
Let’s Have a Great Year!
Upcoming SlideShare
Loading in …5
×

Correzioni Esercizioverifica300109

505 views
465 views

Published on

disegnare una successione di quadrati

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
505
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Correzioni Esercizioverifica300109

  1. 1. Correzione esercizio verifica in classe: disegnare una sequenza di quadrati a partire dal punto cliccato fino ad includere un rettangolo dato Welcome, students!
  2. 2. Il testo del problema <ul><li>Disegnare un rettangolo di colore blue su di un pannello java. A tua scelta scegli le coordinate P0(x0,y0) del suo vertice in alto a sinistra; ed il valore della sua base b, e della sua altezza h. </li></ul><ul><li>Successivamente, quando clicchi il mouse in un punto del pannello che si trova all’esterno del rettangolo dato, alla sua sinistra, e un pò più in alto del suo vertice P0, devi disegnare il contorno ( g.drawRect(...) ) di una sequenza di quadrati che hanno tutti il loro Vertice Pc(xc,yc) coincidente con il punto in cui è stato cliccato il mouse, ed aventi come lato un multiplo n (contatore) del lato iniziale (il cui valore sia 1/10 di quello da te scelto per la base b del rettangolo). </li></ul><ul><li>L’iterazione che disegna questa successione di quadrati deve terminare quando il quadrato contiene completamente al suo interno il rettangolo dato. </li></ul><ul><li>Ad ogni quadrato assegnate un colore random. al termine dell’iterazione, assegnate il colore red al rettangolo. </li></ul>
  3. 3. Una possibile soluzione
  4. 4. Fare un metodo che risolve il problema <ul><li>Conviene mettere la logica di soluzione dentro un metodo. Ossia tutte le istruzioni che concorrono a risolvere il nostro problema sono strettamente correlate tra di loro e quindi cosituiscono una funzione . </li></ul><ul><li>Al metodo passiamo il parametro g della classe Graphics. E’ necessario perché le istruzioni, che qui usiamo, appartengono alla classe Graphics </li></ul><ul><li>Facciamo una iterazione con do. Perché ? Almeno un quadrato deve essere disegnato </li></ul><ul><li>Deve avere un colore casuale </li></ul><ul><li>Deve avere come vertice cPoint </li></ul><ul><li>E come lato un multiplo n di lato </li></ul>
  5. 5. Questione importante da capire <ul><li>La condizione di iterazione è (contiente==false) </li></ul><ul><li>Qui è il gioco </li></ul><ul><li>Ci inventiamo una variabile booleana, un interruttore avente due valori possibili: true, false. </li></ul><ul><li>Questa variabile booleana “contiene” ci serve per indicare due stati diversi della elaborazione: </li></ul><ul><ul><li>Finchè il quadrato non contiene il rettangolo dato, il valore di contiene rimane false </li></ul></ul><ul><ul><li>Quando il quadrato contiene il rettandolo dato, il valore di contiene viene commutato a true! </li></ul></ul><ul><li>pertanto il valore di questa variabile è fondamentale per risolvere l’algoritmo </li></ul>
  6. 6. Gestione della variabile booleana <ul><li>Definiamo la variabile contiene e le assegniamo il valore false </li></ul><ul><li>Finchè il valore di contiene rimane false, continuiamo a fare la nostra iterazione, ossia la stampa di un nuovo quadrato, </li></ul><ul><li>Quando il quadrato contiene il rettangolo dato, il valore della variabile contiene viene messo uguale a true. </li></ul><ul><li>Quando il valore della variabile contiene è true, si esce dalla iterazione. </li></ul>
  7. 7. Da quale punto del programma viene mandato in esecuzione il metodo disegnaQuadrati( ) ? <ul><li>Le istruzioni di disegno grafico devono trovarsi all’interno del metodo paintComponent(), di conseguenza è qui dentro che deve essere lanciato il metodo disegnaQuadrati() e deve essergli passato il parametro di input g. </li></ul><ul><li>Ma non sempre devo lanciare questo metodo </li></ul><ul><li>Lo devo mandare in esecuzione solo se qualcuno ha cliccato con il mouse in un punto del pannello. </li></ul><ul><li>Chi è in ascolto degli eventi inviati dal mouse ? E’ l’oggetto e della MouseEvent input al metodo mouseClicked() </li></ul><ul><li>Di conseguenza qui dentro gestiamo un’altra variabile booleana: cliccato </li></ul><ul><li>All’inizio questa variabile interruttore (swc) è false </li></ul><ul><li>Se il mouse viene cliccato, il valore di questa variabile è commutato a true. </li></ul><ul><li>Pertanto, quando questo valore è true, deve essere mandato in esecuzione il metodo diesegnaQuadrati() dentro paintComponent() !!!! </li></ul>
  8. 8. Gestione della variabile booleana: cliccato
  9. 9. Risultato della elaborazione
  10. 10. Let’s Have a Great Year!

×