Capitolo 1 Introduzione OOP Esercizi a casa

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 1 Introduzione OOP Esercizi a casa"

Transcript

1 Capitolo 1 Introduzione OOP Esercizi a casa Introduzione Gli esercizi di questo corso sono spesso costituiti da codici forniti incompleti: è necessario completarli perché possano svolgere il compito che viene richiesto. Lo spazio da utilizzare è delimitato da righe, all interno delle quali deve essere aggiunto il codice mancante, mentre il codice all esterno non deve essere modificato. Le classi che costituiscono gli esercizi sono contenute in file.java, inseriti in file compressi.zip. I file.zip del Capitolo 1 sono scaricabili alla voce Codici: Capitolo 1 Esercizi a casa, presente nel sito del corso. Ad esempio, nel caso del primo esercizio di questo capitolo il file si chiama IMC.zip e contiene due classi (GestioneIMC e Imc), rappresentate dai file GestioneIMC.java e Imc.java. I file.java devono essere estratti (è necessario fornire una password) e inseriti in una cartella. Per eseguire gli esercizi, si consiglia di copiare i relativi file.java in una cartella di progetto BlueJ, come illustrato nell Appendice F. Si sconsiglia di utilizzare tecniche come copia-incolla dal testo del file sorgente a quello di un sorgente creato all interno del progetto BlueJ. Infatti, alcuni caratteri, come le virgolette, possono non essere copiati correttamente. Si sconsiglia anche di riscrivere completamente il codice a mano poiché, soprattutto in alcuni esercizi, il codice è lungo da riscrivere e in questo modo si possono introdurre errori, che fanno perdere molto tempo. È anche possibile inviarmi per le soluzioni degli esercizi, perché possano essere corrette. In questo caso è raccomandato di non modificare in alcun modo tutto quello che è al di fuori dello spazio assegnato per l inserimento del codice. Attenersi scrupolosamente alle indicazioni che accompagnano gli esercizi e considerare che le classi che gestiscono il progetto (quelle che contengono il metodo main()), spesso non esauriscono tutti casi che consentono di giudicare positivamente la soluzione di un esercizio. i

2 Es1.1 IMC La classe GestioneIMC contiene il metodo main() e non deve essere modificata. Per funzionare richiede la classe Imc, da completare come esercizio. La classe GestioneIMC gestisce la richiesta dei dati necessari a calcolare l indice di massa corporea (IMC) di una persona. I dati da inserire sono il peso in kg e l altezza in metri. L IMC è un indicatore di peso forma, che si ottiene dal rapporto tra il peso e il quadrato dell altezza e dovrebbe essere compreso tra e Questa gestione, riportata nella figura seguente, è contenuta in un ciclo do-while, che si incarica di richiedere i dati e, tramite l oggetto imc, impostarli e infine visualizzare il valore dell IMC. I cicli do-while sono ripetuti se il prodotto dei valori immessi è maggiore di 0. Per uscire dal ciclo e terminare il programma, è quindi necessario inserire 0 (o un valore negativo) come valore di peso o altezza. Il codice è il seguente: Questo codice contiene istruzioni Java illustrate nel Corso Base e che non richiedono ulteriori approfondimenti. Gli unici commenti riguardano alcuni aspetti della OOP. Nella seconda riga all interno del corpo del metodo main(), viene creato l oggetto imc: Imc imc = new Imc(); Quest oggetto è poi utilizzato per impostarne gli attributi, con le istruzioni: imc.setaltezza(altezza) imc.setpeso(peso) ii

3 Infine è usato per calcolare il valore dell IMC. imc.calcolo() La classe Imc, contenuta nel file Imc.java, è fornita vuota e deve essere completata in modo da rendere il programma compilabile. Essa deve avere: Un attributo double che rappresenti il peso in kg. Un attributo double che rappresenti l altezza in metri. Un metodo setpeso, con un parametro di tipo double. Il metodo deve impostare l attributo, relativo al peso, per mezzo del valore passato come argomento. Se questo valore è negativo, il metodo deve impostare l attributo uguale a zero. Il metodo non deve ritornare nulla. Un metodo setaltezza, con un parametro di tipo double. Il metodo deve impostare il valore dell attributo, relativo all altezza, per mezzo del valore passato come argomento. Se questo valore è negativo, il metodo deve impostare l attributo uguale a zero. Il metodo non deve ritornare nulla. Un metodo calcolo, senza parametri. Il metodo deve calcolare e ritornare il valore dell IMC (peso/(altezza x altezza)). Se il valore del peso o altezza è negativo o uguale a 0 il metodo deve ritornare 0. Tutti i metodi fanno parte dell interfaccia della classe, mentre gli attributi ne costituiscono l implementazione (cfr. Capitolo1, paragrafo 1.4). Sebbene il codice della classe GestioneIMC, protegga contro l uso di valori di peso e/o altezza non validi, tuttavia si chiede di realizzare la classe Cerchio dotata delle stesse protezioni. Nella figura seguente è riportata la stampa di un esecuzione del programma completato. iii

4 Es1.2- Salvadanaio (da un idea del Politecnico Losanna) Questo esercizio simula il funzionamento di un salvadanaio. Il codice fornito è costituito da due classi: una (UsaSalvadanaio) contiene il metodo main() e gestisce tutto il programma, che verifica l accesso ad un salvadanaio per utilizzarne il contenuto; l altra (Salvadanaio) deve essere completata. Queste classi possono essere acquisite dai file UsaSalvadanaio.java e Salvadanaio.java, inseriti nel file compresso Salvadanaio.zip. All inizio il salvadanaio contiene 1000 euro, che possono essere utilizzati per progetti vari. Non è possibile aumentare il deposito, mentre si può definire il costo di un progetto: se il salvadanaio contiene sufficienti risparmi per realizzarlo, il contenuto del salvadanaio è diminuito del costo del progetto, diversamente il contenuto resta invariato e si informa di quanto manca per realizzarlo. La classe UsaSalvadanaio, che è fornita completa e non deve essere modificata, ha il codice seguente: All inizio vengono creati gli oggetti slvd, dalla classe Salvadanaio, e tastiera dalla classe Scanner; quindi sono dichiarate le variabili costoprogetto, che contiene il costo di un progetto inserito dall utente, e saldo, che rappresenta il contenuto del salvadanaio; infine nel salvadanaio vengono messi 1000 euro (slvd.aggiungi(1000.0)). Un ciclo do-while gestisce le richieste di prelievi finché l utente inserisce -1 (o un valore negativo) o il saldo si azzera, che pongono termine all esecuzione del programma. Nel ciclo do-while viene richiesta la somma iv

5 per un progetto e, tramite il metodo prelievotest(), se ne verifica la disponibilità: solo in caso positivo la somma viene presa dal salvadanaio per mezzo del metodo preleva(). Non soffermarsi troppo sulla possibilità di migliorare il codice della classe UsaSalvadanaio con modifiche di vario tipo. Concentrarsi invece sul completamento della classe Salvadanaio, che, oltre ad un attributo deposito (private), che ne specifica il contenuto in euro e già inserito nel codice, deve possedere i seguenti elementi, che ne rappresentano l interfaccia: o Un metodo aggiungi, che consente di inserire nel salvadanaio un valore in euro, passato come argomento double. Solo se il valore è positivo deve essere accettato. Il metodo non ritorna nulla. o Un metodo preleva, che consente di prelevare dal salvadanaio una somma double, passata come argomento. Una somma negativa o superiore al contenuto deve essere ignorata. o Un metodo prelievotest, che ritorna quanto resterebbe nel salvadanaio dopo il prelievo, passato come argomento. Se il prelievo è 0 o un valore minore di zero il metodo deve ritornare il contenuto del salvadanaio. o Un metodo stampasaldo, che stampa i seguenti messaggi: a. Siete al verde, se il salvadanaio è vuoto b. Ci sono <deposito> euro nel salvadanaio, dove <deposito > è il contenuto in euro del salvadanaio Le stampe devono essere seguite da un salto di riga. È qui riportato un esempio di utilizzo del programma completo: v

6 Es1.3- Cerchio In questo esercizio viene fornita la classe testcerchio e la classe Cerchio, vuota. La prima costruisce un oggetto cerchio, a partire dalla classe Cerchio, impostandone le seguenti caratteristiche geometriche: le coordinate del centro (x=5.0, y=5.0) e lunghezza del raggio (4.0). Quindi indica se un punto, di cui sono state introdotte le coordinate (x,y) da tastiera, è interno o esterno a cerchio. Le due classi sono contenute nei file TestCerchio.java e Cerchio.java, inserite nel file compresso Cerchio.zip. Della classe Cerchio è fornita solo la dichiarazione e deve essere completata, mentre la classe testcerchio, che contiene il metodo main() e gestisce il programma, è completa e non deve essere modificata. Il suo codice è il seguente: La classe Cerchio deve essere impostata in modo da rendere il programma compilabile e produrre stampe come questa: vi

7 Si chiede di realizzare la classe Cerchio in modo che contenga: 1. Un attributo privato che rappresenti il valore del raggio 2. Un attributo privato che rappresenti la coordinata x del centro del cerchio 3. Un attributo privato che rappresenti la coordinata y del centro del cerchio 4. Un metodo pubblico setcentro, che imposti le coordinate del centro del cerchio 5. Un metodo pubblico setraggio, che imposti il valore del raggio 6. Un metodo pubblico interno(), che ha come parametri due valori double, che rappresentano le coordinate di un punto. Il metodo restituisce true, se il punto è interno al cerchio e false in caso contrario. Se il punto cade sulla circonferenza si considera interno al cerchio. La distanza di un punto dal centro di un cerchio si trova con il teorema di Pitagora, applicato alle differenze tra le coordinate del punto (x, y) e quelle del centro del cerchio (cx, cy), come illustrato qui sotto. La radice quadrata si calcola con l espressione Math.sqrt(), dove tra parentesi è inserito il valore di cui calcolare la radice: 2 2 (x-cx) + (y-cy) 2 2 (x-cx) + (y-cy) (x,y) (y-cy) 2 (cx,cy) (x-cx) 2 Es1.4- Filetto (da un idea del Politecnico Losanna) In questo esercizio si prende in considerazione il gioco del filetto. Al gioco partecipano due giocatori, che mettono su di una scacchiera 3x3, alternativamente, la propria pedina (cerchio o croce). Vince chi riesce per primo a occupare tutta una linea orizzontale, verticale o diagonale, come nella figura seguente: vii

8 Del programma viene fornita completa la classe Gioco (Gioco.java), contenente il metodo main() e una parte della classe Filetto (Filetto.java). La prima gestisce il gioco per mezzo dell oggetto filetto, derivato dalla classe Filetto, che mette a disposizione i metodi del gioco. Il codice della classe Gioco è il seguente: viii

9 Per questa gestione si utilizzano due cicli do-while, che contengono la richiesta ai due giocatori di definire la posizione della pedina (cerchio o croce). La posizione in cui deve essere collocata la pedina è determinata dal numero di riga (1, 2, 3) e da quello di colonna (1, 2, 3). Un terzo ciclo do-while, che contiene gli altri due, ha il compito di stampare la condizione della scacchiera dopo ogni mossa. La partita e il programma terminano quando un giocatore vince o non vi sono più caselle libere, senza un vincitore È anche possibile terminare la partita inserendo 0 in una delle coordinate: per questa possibilità in ogni ciclo do-while sono state inserite alcune istruzioni condizionali di break. Considerare infine che per il giocatore le coordinate valide delle caselle sono 1, 2 e 3, mentre per la classe Filetto devono essere 0, 1 e 2. Questa è la ragione per cui, nei cicli do-while interni, al valore di riga/colonna è stato tolto 1. Nella prossima figura è riportato lo svolgimento di una partita. ix

10 La classe Filetto, fornita con il file Filetto,java è la seguente: x

11 Gli elementi già impostati sono tutti gli attributi: a. LIBERO: costante intera private che indica una casella libera (=0) b. CERCHIO: costante intera private che indica la pedina cerchio (=1) c. CROCE: costante intera private che indica la pedina croce (=2) d. MOSSE_MAX: costante intera private che indica il numero massimo di mosse (=9); e. numeromosse: variabile d istanza intera che rappresenta il contatore delle mosse fatte (inizializzato a 0) f. scacchiera: un array 3x3 di interi dichiarato e definito. Inoltre sono forniti completi i seguenti metodi pubblici: a. vincecerchio: ritorna true, se c è un filetto di cerchi, false in caso contrario. b. vincecroce: ritorna true, se c è un filetto di croci, false in caso contrario. c. stampavincitore: stampa Partita finita: vince: cerchio/croce, se c è un vincitore, in caso contrario stampa Partita finita pari. d. stampastato: stampa lo stato si della scacchiera, con la posizione delle pedine giocate, prima di una mossa. Si chiede di completare il codice della classe Filetto impostando i seguenti metodi: a. casellelibere (public): ritorna true, se ci sono caselle libere e false in caso contrario. Non ha parametri. b. giocacerchio (public): pone una pedina cerchio su di una casella della scacchiera. Il metodo ritorna true, se la giocata è valida e false in caso contrario. Il metodo ha 2 parametri interi: il primo è la riga (0-2) ed il secondo è la colonna (0-2), che individuano la posizione da coprire. Utilizza il metodo giocapedina(). Se la casella è inesistente o è già giocata chiama il metodo stampaerrorecasella(). d. giocacroce (public): come per giocacerchio al punto precedente. e. giocapedina (private): occupa con una pedina una casella della scacchiera. Utilizza come parametri nell ordine: la riga e la colonna, che definiscono la posizione della pedina e il tipo di pedina. Ritorna true, se la pedina è stata posizionata e false in caso contrario (casella occupata o casella inesistente). f. stampaerrorecasella: Stampa sul terminale Casella inesistente, se i valori di riga e colonna identificano una casella non valida o Casella già giocata, se la casella è già occupata da una pedina. Dopo la stampa deve esserci un salto di riga. Utilizza gli stessi parametri del metodo giocapedina() e non ritorna nulla. xi

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione 9 novembre 2016 (Trump Day!) Lo scheletro dei vostri programmi deve essere import java.io.*; import java.util.*; public class... { public static void main( String[] args )

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Quadrato Magico. Fondamenti di Programmazione

Quadrato Magico. Fondamenti di Programmazione Quadrato Magico Si richiede lo sviluppo di un programma che permette all utente l inserimento di una matrice quadrata di numeri interi positivi e verifica se si tratta di un quadrato magico Una matrice

Dettagli

Preparazione allo scritto di Programmazione Comunicazione Digitale / Informatica - A.A. 2012/2013

Preparazione allo scritto di Programmazione Comunicazione Digitale / Informatica - A.A. 2012/2013 Preparazione allo scritto di Programmazione Comunicazione Digitale / Informatica - A.A. 2012/2013 Matricola:...................... Cognome:...................... Nome:...................... Informatica

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2014 2015 Prof. Giovanni Pighizzini Note ed esercizi aggiuntivi 10. Ereditarietà, file di testo, gerarchia delle classi e gerarchia dei tipi Esercizio 10.1 Scrivete

Dettagli

Esercizi in Python. Docente: Domenico Daniele Bloisi

Esercizi in Python. Docente: Domenico Daniele Bloisi Esercizi in Python Docente: Domenico Daniele Bloisi http://profs.scienze.univr.it/~bloisi/asl/asl.html Esercizio 1 Utilizzare il linguaggio di programmazione Python per stampare a video la scritta "prima

Dettagli

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente. HOMEWORKS Questi esercizi saranno proposti di tanto in tanto e forniti sempre SENZA soluzioni. Come materiale complementare ai libri di testo e alle lezioni frontali e di esercitazione, si consiglia di

Dettagli

Prof. Marco Masseroli

Prof. Marco Masseroli Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Dipartimento di Elettronica e Informazione Informatica B Prof. Marco Masseroli Indice Laboratorio 4: Linguaggio

Dettagli

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. A) Programmazione II Compitino (Vers. A) 15 gennaio 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

LABORATORIO 4 - Iterazioni

LABORATORIO 4 - Iterazioni LABORATORIO 4 - Iterazioni Ripassiamo l utilizzo della classe Scanner Scrivete un programma che, chiede all utente di inserire un numero intero n e quindi chiede all utente di inserire n numeri interi

Dettagli

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione

csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione csp & backtracking informatica e laboratorio di programmazione Alberto Ferrari Informatica e Laboratorio di Programmazione CSP (Constraint Satisfaction Problem) o CSP = problemi di soddisfacimento di vincoli

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Array Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 14 ARRAY (1) Un vettore (array) è un insieme

Dettagli

Fondamenti di Informatica T-1. Classi e array

Fondamenti di Informatica T-1. Classi e array Classi e array 2 Classi e metodi statici Una classe è un costrutto linguistico che permette di modellare un'entità di un sistema, definendone le caratteristiche (variabili interne) e le azioni (metodi).

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Informatica per Statistica Riassunto della lezione del 21/10/2011

Informatica per Statistica Riassunto della lezione del 21/10/2011 Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion

Dettagli

Programmazione II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo.

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 7 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61 Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli

Dettagli

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice:

Laboratorio 1. 2) All interno della directory c:\temp\cognome\codici creare il file sorgente hello.c contenente il seguente codice: Corso di Ingegneria Biomedica Corso di Ingegneria Elettronica Insegnamento di Informatica I a.a. 2007-08 Laboratorio 1 Durante le esercitazioni verra utilizzato il compilatore a riga di comando DJGPP,,

Dettagli

AccumulatoreSomma AccumulatoreSommaProdotto AccumulatoreSomma AccumulatoreSommaProdottoDivisione

AccumulatoreSomma AccumulatoreSommaProdotto AccumulatoreSomma AccumulatoreSommaProdottoDivisione Esercizio 1 1. Si crei una classe AccumulatoreSomma, avente il suo valore double iniziale specificato nel costruttore, un metodo per sommare algebricamente un valore, e un metodo per ottenere il risultato.

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Richiamo di una Proprietà Se la proprietà è privata, è visibile solo dai metodi della classe, se pubblica invece anche dai metodi al di fuori

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione 25 ottobre 2017 Da questo laboratorio, lo scheletro dei vostri programmi deve essere import java.io.*; import java.util.*; public class NomeClasse { public static void main(

Dettagli

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Dipartimento di Elettronica e Informazione Informatica B Prof. Marco Masseroli Indice Laboratorio 4: Linguaggio

Dettagli

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

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015 APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.

Dettagli

//riferimento a una sequenza di oggetti della classe Importo

//riferimento a una sequenza di oggetti della classe Importo Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 29 novembre 2010 Negli esercizi fate riferimento alle

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

Capitolo 10 - Strutture

Capitolo 10 - Strutture 1 Capitolo 10 - Strutture Strutture In molte situazioni, una variabile non è sufficiente per descrivere un oggetto. Ad esempio, una posizione sul piano cartesiano è identificata da due coordinate, e la

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Introduzione alla programmazione Esercizi risolti

Introduzione alla programmazione Esercizi risolti Esercizi risolti 1 Esercizio Si determini se il diagramma di flusso rappresentato in Figura 1 è strutturato. A B C D F E Figura 1: Diagramma di flusso strutturato? Soluzione Per determinare se il diagramma

Dettagli

Passare argomenti al programma

Passare argomenti al programma Passare argomenti al programma Quando si invoca un programma è possibile passare degli argomenti ad esso durante la chiamata. Gli argomenti ricevuti saranno stringhe (array di char) quindi l insieme di

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

I Metodi. Fondamenti di Informatica A-K

I Metodi. Fondamenti di Informatica A-K I Metodi Fondamenti di Informatica A-K Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori,

Dettagli

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito.

Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Corso di Linguaggi e Traduttori Anno Accademico 2017 2018 Prof. Giovanni Pighizzini Progetto d esame Scopo del progetto è la costruzione di un compilatore per il linguaggio descritto qui di seguito. Variabili

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

E17 Esercizi sugli Array in Java

E17 Esercizi sugli Array in Java E17 Esercizi sugli Array in Java Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Esame Laboratorio di Programmazione

Esame Laboratorio di Programmazione Esame Laboratorio di Programmazione 20 Giugno 2014 NOA Non è possibile usare le classi del package prog.io del libro di testo L obiettivo è scrivere una applicazione che permette di costruire delle torri

Dettagli

Corso di Laurea Ingegneria Informatica

Corso di Laurea Ingegneria Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Esercizi di ripasso Carla Limongelli Gennaio 2012 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

E9 Esercizi sul Capitolo 9 Array

E9 Esercizi sul Capitolo 9 Array E9 Esercizi sul Capitolo 9 Array Esercizio 1 (esercizio 9.1 del libro di testo). Implementare un metodo statico di nome stringacorta che prende come parametro un array di oggetti String e che restituisce

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Iterazione Tutor: Angelo Feraudo angelo.feraudo2@unibo.it a.a. 2018/2019 Fondamenti di Informatica T-1 Angelo Feraudo 1 / 22 ITERAZIONE Iterazione: Strumento che consente

Dettagli

Iterazione (introduzione)

Iterazione (introduzione) Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale

Dettagli

Matematica con Python

Matematica con Python Matematica con Python e-mail: maurosaita@tiscalinet.it Versione provvisoria. Dicembre 2016. 1 Lezione n. 1 Calcolatrice Olivetti. Esegue le quattro operazioni elementari. Indice 1 Numeri e stringhe 2 1.1

Dettagli

L ALLOCAZIONE DEI COSTI GENERALI CON MICROSOFT EXCEL

L ALLOCAZIONE DEI COSTI GENERALI CON MICROSOFT EXCEL L ALLOCAZIONE DEI COSTI GENERALI CON MICROSOFT EXCEL PREMESSA L allocazione dei costi ha principalmente lo scopo di: fornire informazioni utili per le decisioni di management: i valori allocati possono

Dettagli

Realizzare un business plan con Excel 2003

Realizzare un business plan con Excel 2003 Introduzione Uno degli elementi più importanti che compongono un Business Plan è sicuramente la previsione dei risultati economico-finanziari. Tale previsione può basarsi su dati storici, se il business

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Esercizi

Esercizi Esercizi Si implementi una funzione che riceve in input una matrice NxM di float. Definito picco un numero circondato in tutte le posizioni intorno solo da numeri strettamente inferiori alla sua metà,

Dettagli

giochi sulla persistenza

giochi sulla persistenza UdA 6 Applicazioni Web in PHP lezione 1 giochi sulla persistenza In questa lezione impareremo... ad applicare i campi nascosti, le sessioni e i cookies per realizzare semplici giochi Primo esempio: il

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia

Le Funzioni in C. Fondamenti di Informatica Anno Accademico 2010/2011. Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Le Funzioni in C Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2010/2011 docente: prof. Michele Salvemini 1/24 Sommario Le funzioni Il

Dettagli

LABORATORIO 7 ARRAY. ATTENZIONE: argomenti da linea di comando!!!

LABORATORIO 7 ARRAY. ATTENZIONE: argomenti da linea di comando!!! LABORATORIO 7 ARRAY Esercizio Minimo Massimo Media Scrivere un programma che chieda all'utente di inserire un numero intero n, e quindi chieda di inserire n numeri interi. Dopo aver salvato i numeri inseriti

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Liste di Liste Matrici

Liste di Liste Matrici Liste di Liste Matrici Una lista annidata è una lista che compare come elemento di un'altra lista. Nell'esempio seguente il quarto elemento della lista (elemento numero 3 dato che il primo ha indice 0)

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA4 A2 Utilizzo di classi 1 Prerequisiti Implementazione di classi Funzionamento di una classe Parametri formali e attuali di una funzione 2 1 Introduzione In questa

Dettagli

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E01 Esempi di programmi A. Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di programmi - 1 1 Contenuti

Dettagli

A1- Array MODULO Java3

A1- Array MODULO Java3 Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Dichiarazione array Allocazione array Inizializzazione array Proprietà length Vettore Matrice Indice Componenti Indirizzo

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe/array Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Figura 1 - Finestra Tabella

Figura 1 - Finestra Tabella Capitolo IV Oggetti Creare una tabella Creare una tabella per inserire dei dati Per inserire una tabella premere il pulsante Tabella presente nella sezione Tabella della barra Inserisci. Viene visualizzata

Dettagli

LA FORMATTAZIONE Impostare la pagina, i paragrafi e il corpo del testo

LA FORMATTAZIONE Impostare la pagina, i paragrafi e il corpo del testo LA FORMATTAZIONE Impostare la pagina, i paragrafi e il corpo del testo Prima di apprestarsi alla stesura del documento è opportuno definire alcune impostazioni riguardanti la struttura della pagina, dei

Dettagli

Introduzione Programmazione Java

Introduzione Programmazione Java Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea

Dettagli

Pag. 1 di 7. import java.io.*;

Pag. 1 di 7. import java.io.*; Un azienda di CAD 2D deve realizzare un software per elaborare rettangoli, quadrati e triangoli. Delle tre figure geometriche si deve calcolare il perimetro e l area. Realizzare un software, il cui modulo

Dettagli

Progetto di classi: Metodi Costruttori Documentazione e commenti Variabili di istanza (campi)

Progetto di classi: Metodi Costruttori Documentazione e commenti Variabili di istanza (campi) Classi Progetto di classi: Dalla specifica dell interfaccia, alla definizione dell implementazione Metodi Costruttori Documentazione e commenti Variabili di istanza (campi) Progetto di una classe Un conto

Dettagli

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

ESERCIZIO allochi staticamente un vettore V1 di 10 float e allochi dinamicamente un vettore V2 di 10 double;

ESERCIZIO allochi staticamente un vettore V1 di 10 float e allochi dinamicamente un vettore V2 di 10 double; ESERCIZIO 1 Si realizzi un programma C che: 1. allochi staticamente un vettore V1 di 10 float e allochi dinamicamente un vettore V2 di 10 double; 2. chieda all utente di inserire gli elementi dei due vettori

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non

Dettagli

COMANDI ITERATIVI. Ivan Lanese

COMANDI ITERATIVI. Ivan Lanese COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito

Dettagli

import java.io.*; class Quadrato implements FigureGeometrichePiane { private double lato;

import java.io.*; class Quadrato implements FigureGeometrichePiane { private double lato; Un giardino condominiale è formato da un quadrato di lato 30 metri inscritto in un cerchio. Si vogliono inserire nel quadrato delle piastrelle, anch esse quadrate, di lato 10 centimetri e dal costo di

Dettagli

Lezione 4 programmazione in Java

Lezione 4 programmazione in Java Lezione 4 programmazione in Java drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima L iterazione For Esempio While Esempio Do While Esempio 2 L iterazione In certi casi è utile

Dettagli

APPUNTI PER IL CORSO DI MATEMATICA APPLICATA. 1. Lezione 1 Richiamo brevemente alcune notazioni della teoria degli insiemi.

APPUNTI PER IL CORSO DI MATEMATICA APPLICATA. 1. Lezione 1 Richiamo brevemente alcune notazioni della teoria degli insiemi. APPUNTI PER IL CORSO DI MATEMATICA APPLICATA ERNESTO DE VITO - UNIVERSITÀ DI GENOVA, ITALY 1. Lezione 1 Richiamo brevemente alcune notazioni della teoria degli insiemi. insieme vuoto N insieme dei numeri

Dettagli

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008

Programmazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008 Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2008 Negli esercizi fate riferimento alle

Dettagli

Alcune funzioni matematiche utili della libreria <math.h>:

Alcune funzioni matematiche utili della libreria <math.h>: Oggi dovremo di nuovo usare funzioni sui reali. Ma il C non ha operatori nativi del linguggio per queste operazioni, come la radice quadrata, l'elevamento a potenza o l'arrotondamento. Per effettuare questa

Dettagli

import java.io.*; Pag. 1 di 15

import java.io.*; Pag. 1 di 15 8 studenti di 5 classi quinte hanno partecipato alle olimpiadi della matematica. Stampare l elenco degli studenti in ordine decrescente di punteggio ottenuto e la rispettiva classe di appartenenza. Realizzare

Dettagli

Esercitazione 2. Variabili e Tipi Input e Output Assegnamenti Il comando if-else

Esercitazione 2. Variabili e Tipi Input e Output Assegnamenti Il comando if-else Esercitazione 2 Variabili e Tipi Input e Output Assegnamenti Il comando if-else Espressioni aritmetiche /* Scrivere un programma che calcola l area e la circonferenza di un cerchio di raggio 20 cm */ #include

Dettagli

Introduzione alla programmazione A. Ferrari

Introduzione alla programmazione A. Ferrari Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad

Dettagli

Strutture come parametri di funzioni

Strutture come parametri di funzioni Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;

Dettagli

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo:

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

I L IN I GU G AGG G I G O

I L IN I GU G AGG G I G O JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

Proprietà delle potenze

Proprietà delle potenze Proprietà delle potenze Questo passo a passo ti aiuterà a costruire un foglio elettronico sulle proprietà delle potenze. Inserendo in determinate celle valori scelti a caso, relativi a basi ed esponenti,

Dettagli

Programmazione I - Preparazione A.A. 2010/2011

Programmazione I - Preparazione A.A. 2010/2011 Programmazione I - Preparazione A.A. 2010/2011 3 febbraio 2011 Matricola:........................................................................ Cognome:........................................................................

Dettagli

Impariamo a programmare in. Lezione 6

Impariamo a programmare in. Lezione 6 Impariamo a programmare in Decisioni Gestire un conto corrente double balance = 10000; // saldo iniziale System.out.println("Quanto vuoi prelevare? ); double amount = console.nextdouble(); balance = balance

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 7 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo

Dettagli

FUNZIONI. Ivan Lanese

FUNZIONI. Ivan Lanese FUNZIONI Ivan Lanese Argomenti Tecniche di debugging Funzioni Di solito i programmi non funzionano int main() { int n, prod = 1; do { cout > n; prod = prod

Dettagli

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.

Sunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I. Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Leggere una sequenza di dati

Leggere una sequenza di dati Leggere una sequenza di dati Riprendiamo un problema già visto boolean done = false; while (!done) { String line = Console.readString(); if (line == null) done = true; else... // elabora line } Il ciclo

Dettagli