
#Icode4C
Tutorial online, video e libri di programmazione sono un ottimo posto per imparare le basi di un linguaggio
di programmazione, ma non molta di quella conoscenza rimarrà se non la usi per scrivere codice.
Risolvere le sfide di programmazione è un ottimo modo per esercitare le tue abilità di
programmazione. Le sfide di codifica sono progetti di codifica di dimensioni ridotte che esercitano le tue
abilità utilizzando strutture di dati e algoritmi. A differenza dei progetti più grandi, di solito possono
essere completati in pochi giorni.
In questo articolo, ti proporremo 4 sfide semplici di programmazione Java che puoi risolvere per
testare e sviluppare le tue capacità di programmazione.
Regole della sfida
• Le sfide sono in ordine crescente di difficoltà
• Tutti gli studenti della 4C devono partecipare
• La sfida dura al massimo 14 giorni
• La soluzione presentata deve essere corredata da una breve relazione che la descrive
• E’ necessario utilizzare le caratteristiche della programmazione OOP ove possibile
(incapsulamento, modificatori di visibilità, relazioni tra le classi, overriding,
overloading,…)
• Si può partecipare da soli o in coppia
• Ogni studente (o coppia) accetta la sfida e sceglie tra le 4 elencate di seguito. Compila il
form di accettazione indicando la sfida scelta
• La sfida di default è assegnata dal docente ad uno specifico alunno
• Saranno valutati i seguenti parametri (originalità nella soluzione, completezza della
documentazione, ordine di consegna elaborato, qualità del codice prodotto, materiale multimediale
annesso alla soluzione)
#Icode4C Sfida di default
Esercitazione 2.3: comprendere I/O in JAVA #Icode4C Vai alla sfida
#Icode4C Prima sfida
Scrivere una classe in java che rappresenti il concetto di “Contratto telefonico”,
creando almeno un costruttore, uno o più attributi che descrivono le sue caratteristiche e uno o più
metodi che implementano le funzionalità. Si vuole rappresentare il dettaglio della Spesa per
l’acquisto di un contratto telefonico.
Creare una classe UsaContratto che contenga un metodo main() che istanzi un
oggetto di tipo Contratto e stampi il costo e le caratteristiche dell’oggetto appena creato.
#Icode4C Seconda sfida
Scrivere una classe in java che rappresenti una frazione con numeratore e denominatore e operare su
di essa la riduzione ai minimi termini.
Gli attributi della classe Frazione sono il numeratore e il denominatore. I metodi sono:
• “Assegna” metodo per assegnare agli attributi privati i valori acquisiti da
tastiera
• “Semplifica” metodo per semplificare la frazione (riduzione ai minimi termini)
• “Scrivi” metodo per visualizzare il numeratore e il denominatore separati dalla
linea di frazione.
• “MCD(a,b)” metodo che implementa l’algoritmo per il calcolo del MCD tra due
numeri a e b (r indica il resto della divisione intera; inoltre il
primo numero deve essere maggiore del secondo): il divisore
diventa il dividendo, il resto diventa il divisore; quando il resto diventa 0, il valore
dell’ultimo divisore rappresenta il MCD dei due numeri.
Creare una classe UsaFrazione che contenga un metodo main() e istanzi un
oggetto di tipo Frazione; il numeratore e il denominatore sono inseriti dall’utente; mediante
l’oggetto appena creato si stampi il risultato dei metodi implementati.
#Icode4C Terza sfida
Scrivere un programma Java che simuli il funzionamento di una Lampadina.
Una lampadina è descritta dai seguenti attributi:
• codice di colore (1–bianco, 2–rosso, 3–blu, 4–giallo)
• livello di luminosità (da 0 a lumMax)
• stato: accesa/spenta.
I metodi che si chiede di realizzare sono:
un costruttore che accetti in ingresso colore e luminosità massima (LMax) della lampadina
• varLum(+/-n): aumenta/diminuisce di n unità la luminosità di una lampadina
accesa impedendo di uscire dai valori limite prefissati (0 – lumMax)
• lightOn: accende una lampadina spenta ponendo la luminosità al valore minimo
• lightOff: spenge una lampadina accesa
• getColore: restituisce una stringa che specifica in chiaro il colore della
lampadina
• getLuminosita: restituisce il valore corrente della luminosità di una lampadina
accesa
• setColore: imposta il codice del colore della lampadina accettando solo valori
da 1 a 4 (impostando valori minori di 1 il metodo pone il codice
uguale a 1; impostando valori maggiori di 4 il metodo pone il
codice uguale a 4)
• toString che restituisce una stringa con tutti i dati dell'oggetto su cui è
invocato separati dal carattere “;”
• main che permette di creare almeno due oggetti di tipo Lampadina e di testare su
di essi i vari metodi.
Creare una classe UsaLampadina che contenga un metodo main() che istanzi un oggetto
di tipo Lampadina e stampi il risultato dei metodi implementati.
#Icode4C Quarta sfida
Prima di scrivere il codice per un problema complesso, è necessario averne progettato una soluzione.
La metodologia presentata suggerisce di seguire un procedimento di progettazione composto dalle
seguenti fasi:
1. Identificate le classi.
2. Determinate le responsabilità in termini di funzioni di ciascuna classe.
3. Descrivete le relazioni tra le classi.
4. Implementare le classi in java
Gestione delle presenze degli studenti di un istituto scolastico
In un sistema per la gestione delle presenze on-line, gli studenti sono identificati da nome,
cognome, classe e sezione. Il docente effettua il login con la password e i sui dati sono nome,
cognome, cattedra e materie insegnate. I docenti usano il sistema per gestire le presenze in classe.
Le presenze sono organizzate per classi e, per ogni studente, è possibile memorizzare ingresso,
uscita, ritardo, fuori classe.
Le operazioni che più frequentemente i docenti effettuano sulle presenze riguardano
l’inserimento, la cancellazione, la modifica di un ingresso/uscita, l’inserimento di un fuori classe
e/o ritardo e relativi messaggi.