Esempi di esercizi d esame



Documenti analoghi
Algoritmi di Ricerca. Esempi di programmi Java

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esercizi della lezione 5 di Java

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Realizzazione di una classe con un associazione

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Programmazione 1 A.A. 2015/2016

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Esercizi sulla definizione di classi (Fondamenti di Informatica 1 Walter Didimo) Soluzioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Parcheggio.rtf 1/8 6 gennaio Prova di programmazione: parcheggio a pagamento

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO XI.2015

Definizione di classi con array di oggetti

UML Diagrammi delle classi. UML Diagramma classi 1

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

Un esercizio d esame. Flavio De Paoli

Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime

Ingegneria del Software

SAPIENZA Università di Roma, Facoltà di Ingegneria

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

Esercitazione n 4. Obiettivi

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

Concetto di Funzione e Procedura METODI in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Java threads (2) Programmazione Concorrente

dall argomento argomento della malloc()

Le variabili. Olga Scotti

Corso sul linguaggio Java

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Esercizi classi e array

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

ARRAY E STRINGHE. G. Frosini Slide 1

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

GESTIONE INFORMATICA DEI DATI AZIENDALI

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Prof. Pagani Corrado ESERCITAZIONI DIAGRAMMI DELLE CLASSI UML E JAVA

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A

Inizializzazione, Assegnamento e Distruzione di Classi

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

10 - Programmare con gli Array

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

3. La sintassi di Java

Introduzione a Classi e Oggetti

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Java: Compilatore e Interprete

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Unità B3 Strutture di controllo

obiettivi di questa seconda metà del corso fare un passo avanti rispetto a :... meccanismi di composizione dei dati

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

RICERCA DI UN ELEMENTO

Prova di Laboratorio di Programmazione

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a I scritto Febbraio 11 Febbraio 2011

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe È qualcosa che abbiamo già visto varie volte

Corso sul linguaggio Java

Fondamenti di Informatica 2

Laboratorio di programmazione

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Object Oriented Software Design

Corso di Fondamenti di Informatica Algoritmi su array / 2

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione Java: Variabili membro, Metodi La parola chiave final

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

DATI IDENTIFICATIVI DEL PROGETTO

GESTIONE DEI PROCESSI

20. Appunti sulle liste (gestione in linguaggio C#) 16/04/2015 Arraylist

Obiettivi dell esercitazione. Requisiti (cont.) Requisiti. Università di Roma La Sapienza A.A Facoltà di Ingegneria Sede di Latina

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione ad Oggetti: JAVA. Esercitazione

Organizzazione degli archivi

Algoritmi su array / 2

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

Ottava Esercitazione. introduzione ai thread java mutua esclusione

20 - Input/Output su File

Controllo degli accessi

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Programmazione ad oggetti

Transcript:

Esempi di esercizi d esame Fondamenti di Informatica L-B 1 Cellulare Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un telefono cellulare Tale classe dovrà consentire di: Comporre un numero telefonico, una cifra alla volta (verificando che le cifre siano valide) Leggere il valore del display (stringa con il numero corrente) Cancellare il numero corrente Effettuare una chiamata Terminare una chiamata Dire se il telefono ha una chiamata in corso Memorizzare il numero corrente in una cella specificata (compresa fra 1 e 10) Leggere come numero corrente il numero memorizzato in una cella specificata (fra 1 e 10) Fondamenti di Informatica L-B 2

Cellulare Testo esercizio: 2.Diagramma UML Il diagramma UML della classe è riportato qui sotto (la parola chiave in davanti al nome dei parametri dice semplicemente che sono parametri passati per valore, lo standard per Java) Cellulare +adddigit(in digit : char) : void +clear() : void +call() : void +hang() : void +iscalling() : bool +getdisplay() : string +savememory(in pos : int) : void +readmemory(in pos : int) Fondamenti di Informatica L-B 3 Cellulare Testo esercizio: 3.Classe di test public class EsempioCellulare public static void main(string args[]) Cellulare cell = new Cellulare() cell.adddigit( 3 ); cell.adddigit( 4 ); cell.adddigit( 7 ); System.out.println(cell.getDisplay()); cell.savememory(5); cell.clear() cell.adddigit( 6 ); cell.adddigit( 6 ); cell.adddigit( 1 ); cell.readmemory(5); System.out.println(cell.getDisplay()); Fondamenti di Informatica L-B 4

Cellulare Soluzione: 1.Scelte implementative Dobbiamo definire la composizione dello stato Abbiamo bisogno di memorizzare sostanzialmente due cose: Il numero corrente Le dieci celle di memoria per i numeri La cosa più comoda è memorizzare i numeri come stringhe: è più facile gestire l aggiunta delle cifre e non dobbiamo fare conversioni per restituire il display Quindi useremo due attributi: num di tipo String e, mem, array 0..9 di String Dovremo ricordarci di creare l array e le stringhe nel costruttore Abbiamo poi bisogno di un boolean per dire se c è una chiamata in corso o no Fondamenti di Informatica L-B 5 Cellulare Soluzione: 2.Implementazione/1 public class Cellulare private String num; private String[] mem; private boolean calling; public Cellulare() calling = false; num = ; mem = new String[10]; for (int i=0; i<10; i++) mem[i] = ; public void adddigit(char ch) if ((ch>= 0 ) & (ch<= 9 )) num = num + ch; Fondamenti di Informatica L-B 6

Cellulare Soluzione: 2.Implementazione/2 public void clear() num = ; public void call() calling = true; public void hang() calling = false; public boolean iscalling() return calling; Fondamenti di Informatica L-B 7 Cellulare Soluzione: 2.Implementazione/3 public void getdisplay() return num; public void savememory(int pos) mem[pos-1] = num; public void readmemory(int pos) num = mem[pos-1]; Fondamenti di Informatica L-B 8

Autoradio - Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un autoradio FM in grado di sintonizzarsi su una frequenza compresa fra 87.5 e 108.00 MhZ a passi di 0,5 MHz, dotata di 6 preselezioni. Tale classe dovrà consentire di: Far avanzare la frequenza corrente Far indietreggiare la frequenza corrente Restituire la frequenza corrente come stringa Salvare la frequenza corrente in un adelle 6 preselezioni Leggere la frequenza corrente da una delle 6 preselezioni Fondamenti di Informatica L-B 9 Autoradio Testo esercizio: 2.Diagramma UML Il diagramma UML della classe è riportato qui sotto (la parola chiave in davanti al nome dei parametri dice semplicemente che sono parametri passati per valore, lo standard per Java) Autoradio +getfreq() : string +freqavanti() : void +freqindietro() : void +save(in index : int) : void +select(in index : int) : void Fondamenti di Informatica L-B 10

Autoradio Testo esercizio: 3.Classe di test public class EsempioAutoradio public static void main(string args[]) Autoradio auto = new Autoradio() for (int i>0; i<10; i++) auto.freqavanti(); auto.save(1); auto.freqindietro(); System.out.println( Frequenza: +cell.getfreq()); auto.save(2); auto.freqavanti(); auto.select(1); System.out.println( Frequenza: +cell.getfreq()); auto.select(2); System.out.println( Frequenza: +cell.getfreq()); Fondamenti di Informatica L-B 11 Autoradio Soluzione: 1.Scelte implementative Dobbiamo definire la composizione dello stato Abbiamo bisogno di memorizzare sostanzialmente due cose: La frequenza corrente Le sei celle di memoria per le frequenze Una possibilità, non l unica, è memorizzare le frequenze come interi moltiplicandole per 10 Quindi useremo due attributi: freq di tipo int e sel, array 0..5 di int Dovremo ricordarci di creare l array nel costruttore Fondamenti di Informatica L-B 12

Autoradio Soluzione: 2.Implementazione/1 public class Autoradio private int freq; private int sel[]; public Autoradio() freq = 875; sel = new int[6]; for (int i=0; i<6; i++) sel[i]=freq; public String getfreq() return ""+(freq / 10)+"."+(freq % 10); Fondamenti di Informatica L-B 13 Autoradio Soluzione: 2.Implementazione/2 public void freqmeno() if (freq>875) freq=freq-5; public void freqpiu() if (freq<1080) freq=freq+5; public void save(int index) if ((index>=0) & (index<=5)) sel[index-1]=freq; public void select(int index) if ((index>=0) & (index<=5)) freq=sel[index-1]; Fondamenti di Informatica L-B 14

Tombola Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il gioco della tombola Tale classe dovrà consentire di: Dichiarare l inizio di una partita Estrarre più volte (fino ad un massimo di 90) in modo casuale un numero compreso fra 1 e 90, garantendo che in una partita non venga estratto per due volte lo stesso numero Se sono già state fatte 90 estrazioni durante la partita viene restituito il numero 0 Fondamenti di Informatica L-B 15 Tombola Testo esercizio: 2.Diagramma UML Il diagramma UML della classe è riportato qui sotto (la parola chiave in davanti al nome dei parametri dice semplicemente che sono parametri passati per valore, lo standard per Java) Tombola +inizia() : void +estrai() : int Fondamenti di Informatica L-B 16

Tombola Testo esercizio: 3.Classe di test public class EsempioTombola public static void main(string args[]) Tombola t = new Tombola(); t.inizia(); for (int i=0; i<90; i++) System.out.println( Estratto: + t.estrai()); Fondamenti di Informatica L-B 17 Tombola Soluzione: 1.Scelte implementative Dobbiamo definire la composizione dello stato Abbiamo bisogno di memorizzare sostanzialmente due cose: Quante estrazioni sono state fatte dall inizio della partita Quali sono i numeri già estratti Per memorizzare i numeri estratti possiamo usare una array di 90 boolean Per memorizzare il numero di estrazioni fatte è sufficiente un intero Fondamenti di Informatica L-B 18

Tombola Soluzione: 2.Implementazione/1 public class Tombola private boolean estratti[]; private int numestrazioni; public Tombola() estratti = new boolean[90]; inizia(); public void inizia () for (int i=0; i<90; i++) estratti[i] = false; numestratti = 0; Fondamenti di Informatica L-B 19 Tombola Soluzione: 2.Implementazione/2 public int estrai() boolean ok = false; int n = -1; if (numestratti<90) while (!ok) n = (int)math.round(math.random()*89); if (estratti[n]==false) ok = true; estratti[n] = true; numestratti++; return n+1; Fondamenti di Informatica L-B 20