Category Archives: Terminale

Valutazione completa

Gli operatori logici hanno due versioni

L’output del programma precedente è

Quando gli operandi sono metodi la differenza è sostanziale perché valutare un metodo significa chiamarlo, ed eseguirlo con possibili effetti collaterali.

Ricerca binaria

(PROBLEMA) La ricerca binaria si applica agli array ordinati.

Come controllo si può utilizzare il metodo predefinito java.util.Arrays.binarySearch().

Utilizzando l’istruzione return due volte si può semplificare l’espressione logica del while(), fare a meno della variabile risp, …

Ricerca sequenziale

Posizione di un valore k all’interno di un array v.

Posizione di un elemento (la prima…)

Per eliminare un’istruzione return trasformiamo il for() in while()

e semplifichiamo il while()

Se l’array è ordinato e l’elemento non compare la ricerca sequenziale può essere interrotta se l’elemento esaminato è maggiore di quello cercato

Ordinamenti ingenui

Due elementi

Scambiare i valori contenuti nell’array v alle posizioni a e b

Ordinare un array di due elementi

oppure…

Ordinare un sottoarray di due elementi

Bubble sort

Una passata su tutte le n-1 coppie, all’interno di un array, provoca lo spostamento in alto della bolla più grande

Cioè l’elemento più grande si trova in ultima posizione alla fine della passata.

N passate, sulle n-1 coppie, ordinano sicuramente l’array

In realtà sono necessarie al massimo n-1 passate su n-i coppie

Selection sort

Si può individuare il valore minimo nell’array e scambiarlo con il valore alla posizione 0 (in questo modo l’elemento alla posizione 0 occupa il posto che gli spetta…)

Ripetendo la stessa operazione con il sottovettore

  • da 1 a n-1
  • da 2 a n-1
  • da n-2 a n-1

sarà al suo posto l’elemento alla posizione

  • 1
  • 2
  • n-2

L’elemento alla posizione n-1 occuperà necessariamente l’unico posto rimasto…

Ordinamenti evoluti

Gli ordinamenti evoluti utilizzano degli algoritmi con complessità minima.

Merge sort

Utilizza la funzione merge() che realizza la fusione di 2 sotto array già ordinati

Quick sort


Nota

Per controllare la bontà degli algoritmi puoi confrontare le loro prestazione con il metodo predefinito java.util.Arrays.sort()

Input controllato > Secondi #2

Dato come input il numero di secondi, convertire il tempo in ore, minuti e secondi con

  • input controllato
  • ripetizione.

Input controllato > Cerchio #2 #3

Vedi Cerchio #1

  • Input controllato della misura del raggio
  • Ripete finché (raggio <= 0)

Osserva

Cerchio #3

Ripete l’esecuzione del compito se richiesto dall’utente

Osserva

Input controllato > Triangolo

Perimetro e area di un triangolo qualsiasi date le misure dei lati, con input controllato

  • ogni lato > 0
  • la somma di 2 lati è maggiore del terzo lato

Osserva

Cilindro has Cerchio

La classe Cerchio

La classe Cilindro utilizza la classe Cerchio

La classe di test

Osserva

Classe Cilindro

Con lo stesso procedmento utilizzato per la classe Cerchio realizziamo una classe per i cilindri

Note

  1. raggio
    altezza
    , attributi privati
  2. Cilindro(), costruttore pubblico
  3. circonferenza()
    supBase()
    supLaterale()
    , metodi privati
  4. area()
    volume()
    toString()
    , metodi pubblici