Programmazione Iternet 2002/03  
 
Home
Orario
Docenti
Esami
Programma
Materiale
Esercizi
Laboratorio
Testi
Risorse

 

   

ESERCIZI

3° Settimana (controllo di flusso (if, switch), classe Random, classe Keyboard)

  1. Scrivere un programma che scambi il contenuto di due variabili
  2. Scrivere un programma che dato in input un numero stampi:
    “positivo” se il n.ro e’ positivo
    “negativo” se il n.ro e’ negativo
    “zero” se il n.ro e’ zero
  3. Scrivere un programma che dato in input un numero per il lotto dica se il numero e’ valido o no.
  4. Scrivere un programma che dati in input 3 numeri stabilisca qual’è il più grande.
  5. Scrivere un programma che dato in input un numero intero ne stampi il suo valore assoluto.
  6. Scrivere un programma che generi due numeri random compresi tra -10 e 10 (estremi inclusi), e li stampi in ordine decresente.
  7. Scrivere un programma che dato in input un numero dica se e' pari o dispari
  8. Scrivere un programma che dato in input un numero stampi :
    "zero" se il numero e' 0
    "uno" se il numero e' 1
    "diverso da zero e da 1" altrimenti
    (Svolgere l'esercizio usando il costrutto switch)
  9. Scrivere un programma che dato in input due numeri divida il primo per il secondo (se possibile)

4° Settimana (while, for)

  1. Modificare il programma Average.java in modo da non avere duplicazione di codice.
  2. Scrivere un programma che prenda in input dei caratteri inseriti dall'utente e li stampi. Il programma termina quando l'utente inserisce il carattere 'q' o 'Q'.
  3. Scrivere un programma che prenda in input un numero intero positivo n. Il programma poi continua prendendo in input n caratteri e stampandoli.
  4. Scrivere un programma che prenda in input dei numeri e li sommi. Il programma termina quando la somma raggiunge (o supera)100.
  5. Scrivere un programma che dato in input una stringa ne stampi un carattere per riga
  6. Scrivere un programma che dato in input un numero ne stampi i fattori primi
  7. Scrivere un programma che implementi il gioco del "indovina che numero ho pensato" Ad ogni partita, il programma genera un numero random compreso tra 1 e 100. L'utente lo deve indovinare. Ad ogni tentativo il programma indica se il numero da indovinare e' piu' grande o piu' piccolo del numero inserito. Usare un valore sentinella per decidere di uscire dalla partita. Ogni volta che una partita termina (con successo - numero indovinato- o con insucesso -l'utente ha deciso di uscire-) chiedere all'utente se vuole giocare una nuova partita. Prima di uscire dal programma visualizzare:
    - numero di partite abbandonate (l'utente e' uscito prima di indovinare) e relativa percentuale
    - numero di partite vinte dall'utente e relativa percentuale
    - numero di tentativi che in media sono necessari per indovinare il numero (qui non vanno considerati i tentativi fatti nelle partite abbandonate)

    Soluzioni

5° Settimana (classi e oggetti)

  1. Scrivere un programma che implementi la classe "Quadrato". Implementare metodi che ne calcolino l'area e il perimentro.
  2. Scrivere un programma che generi due oggetti di tipo "Quadrato". Le dimensioni die quadrati dovranno essere specificate dall'utente. Stamparne il perimetro e l'area utilizzando i metodi messi a disposizione dalla classe.
  3. Scrivere un programma che implementi il "gioco del porco" (Es 4.1 e 4.2 di "JAVA - fondamenti di progettazione software").

    Soluzioni

6° Settimana (ancora classi e oggetti)

  1. Scrivere una classe che rappresenti il concetto di esame.
  2. Scrivere un programma che esegua il reverse di una stringa utilizzando il metodo substring
    Soluzioni

Altri esercizi visti nella lezione del 15/11

Esercizi della lezione del 18/11

7° Settimana (array) - Alcuni di questi esercizi sono presi dal libro "JAVA - fondamenti di progettazione software"

  1. Scrivere un metodo che accetti un array di interi e ne sommi i valori
  2. Scrivere un programma che dato un array di interi determini l'elemento piu' grande e quello piu' piccolo
  3. Scrivere un programma che dati 2 array ne scambi il contenuto.
  4. Scrivere un programma che legga un numero arbitrario di interi nell'intervallo da 0 a 50 (estremi inclusi) e conti quante occorrenze del numero sono state lette. Dopo che tutto l'input e' stato processato il programma deve stampare tutti i valori (con il numero di occorrenze) che sono stati immessi almeno una volta.
  5. Modificare il programma precedente in modo che funzioni per numeri compresi nell'intervallo da -25 a 25 (estremi inclusi)
    Soluzioni

Esercizio della lezione del 21/11 (dott. Rossi)

8° Settimana (ereditarieta') - Alcuni di questi esercizi sono presi dal libro "JAVA - fondamenti di progettazione software"

  1. Scrivere una classe MonetaryCoin derivata dalla classe Coin vista in precedenza che contenga un attributo rappresentante il valore della moneta. Prevedere un metodo che lo restituisca in output. Scrivere inoltre una classe Portafoglio contente piu' monete (usare un array); la classe deve inoltre contenere:
    - un metodo che restituisca il valore complessivo delle monete presenti nel portafoglio
    - un metodo che lanci le monete
    - un metodo che restituisca il numero di teste
    - un metodo che restituisca il numero di croci
  2. Implementare una classe astratta Poligono dalla quale derivano le classi Triangolo e Rettangolo.
  3. Implementare una classe astratta Poligono2 che possa essere adatta per derivare anche altri tipi di poligoni (pentagoni, esagoni, etc). Che cosa cambia? Reimplementatre Triangolo e Rettangolo.
  4. Scrivere l'interfaccia Polygon e scirvere una classe che la implementi.
  5. Scrivere una classe banale (o prendere la classe Numero vista in precendenza) e dimostrare che deriva dalla classe Object
  6. Prendere la classe utilizzata nell'esercizio 5 e ridefirne i metodi toString e equals.

    Soluzioni

9° Settimana (ripasso - array bidimensionali ) -

  1. Scrivere un programma che data una matrice (cioe' un array bidimensionale) NxM costruisca una matrice MxN. M e N devono essere inseriti dall'utente a linea di comando. La prima matrice deve essere riempita con valori random compresi tra 0 e 30. La seconda matrice dovra' essere ottenuta dalla prima scambiando le righe con le colonne, cioe' l'elemento [i,j] diventera' l'elemento [j,i].
    Es.
    2 4 5
    3 6 7

    diventa
    2 3
    4 6
    5 7

    Soluzioni

10° settimana

  1. Scrivere un programma che dato in input un numero, stampi quante occorreze sono presenti di ogni cifra. Es:
    26326
    cifra - n.ro occorrenze
    2 2
    3 1
    6 2
  2. Dato in input una frase (sottoforma di stringa) dire da quante parole è composta.

    Soluzioni

11° settimana

  1. Descrivere, attraverso una interfaccia, l'ADT lista esplicitando solo le operazioni:
    -add per aggiungere un elemento in fondo alla lista;
    -get per accedere ad un elemento della lista.
    La lista in questione dovra' contenere solo delle stringhe.
    Realizzare poi due classi che implementino la suddetta interfaccia implementando le funzionalita' della lista attaverso una linked list e una double linked list.

    Soluzioni

Lettore di pensiero virtuale