Capitolo 1 Introduzione OOP Esercizi a casa
|
|
- Michele Vanni
- 4 anni fa
- Visualizzazioni
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 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 )
Dettaglidel 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
DettagliQuadrato 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
DettagliPreparazione 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
DettagliNote 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
DettagliEsercizi 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
DettagliHOMEWORKS. 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
DettagliProf. 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
DettagliProgrammazione 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
DettagliRappresentazione 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
DettagliLABORATORIO 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
Dettaglicsp & 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
DettagliFondamenti 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
DettagliFondamenti 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).
DettagliSTRUTTURE 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
DettagliCalcolare 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
DettagliInformatica 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
DettagliProgrammazione 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
DettagliAlgebra 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
Dettaglipublic 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
DettagliCapitolo 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
DettagliLaboratorio 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,,
DettagliAccumulatoreSomma 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.
DettagliCorso 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
DettagliLaboratorio 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(
DettagliInformatica 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
DettagliAPPELLO 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
Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 29 novembre 2010 Negli esercizi fate riferimento alle
DettagliProva 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
DettagliA. 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
DettagliCapitolo 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
DettagliClassi 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
DettagliIntroduzione 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
DettagliPassare 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
DettagliIstruzioni 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
DettagliRappresentazione 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
DettagliI 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,
DettagliScopo 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
DettagliLe 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
DettagliE17 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
DettagliEsame 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
DettagliCorso 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
Dettaglipublic 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
DettagliFondamenti 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
DettagliE9 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
DettagliFondamenti 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
DettagliIterazione (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
DettagliMatematica 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
DettagliL 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
DettagliRealizzare 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
Dettagli19 - 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
DettagliStrutture 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
DettagliEsercizi
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à,
Dettagligiochi 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
DettagliFunzioni, 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,
DettagliLe 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
DettagliLe 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
DettagliLABORATORIO 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
DettagliLaboratorio 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
DettagliEsercizi 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
DettagliListe 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)
Dettagli8 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
DettagliCorso 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
DettagliEsempi 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
DettagliA1- 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
DettagliEsercitazione 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
DettagliFigura 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
DettagliLA 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
DettagliIntroduzione 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
DettagliPag. 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
DettagliProgetto 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
DettagliLABORATORIO 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
Dettagli7 - 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
DettagliESERCIZIO 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
DettagliScelte. 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
DettagliCOMANDI 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
Dettagliimport 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
DettagliLezione 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
DettagliAPPUNTI 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
DettagliProgrammazione. Cognome... Nome... Matricola... Compitino del 24 novembre 2008
Cognome................................ Nome................................... Matricola............................... Programmazione Compitino del 24 novembre 2008 Negli esercizi fate riferimento alle
DettagliAlcune 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
Dettagliimport 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
DettagliEsercitazione 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
DettagliIntroduzione 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
DettagliStrutture 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;
DettagliJAVA 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;
DettagliI 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;
DettagliProprietà 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,
DettagliProgrammazione I - Preparazione A.A. 2010/2011
Programmazione I - Preparazione A.A. 2010/2011 3 febbraio 2011 Matricola:........................................................................ Cognome:........................................................................
DettagliImpariamo 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
DettagliFondamenti 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
DettagliFUNZIONI. 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
DettagliSunto 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
DettagliINTRODUZIONE 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
DettagliLeggere 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