Compitino del 24 novembre 2008: soluzione
|
|
- Giacinta Lamberti
- 6 anni fa
- Visualizzazioni
Transcript
1 Corso di Programmazione Anno Accademico Prof. Giovanni Pighizzini Compitino del 24 novembre 2008: soluzione Esercizio 1 Completate il seguente metodo main in modo che legga un numero intero inserito dall utente. Il metodo deve poi: (a) visualizzare in lettere il numero letto come numero cardinale (b) visualizzare in lettere il numero letto come numero ordinale (c) visualizzare, sempre in lettere, la lunghezza delle stringhe visualizzate ai punti (a) e (b). I messaggi devono essere forniti secondo il formato utilizzato nell esempio di esecuzione seguente: Numero? 22 ventidue ventiduesimo La parola ventidue contiene otto lettere La parola ventiduesimo contiene dodici lettere public static void main(string[] args) { ConsoleInputManager in = new ConsoleInputManager(); ConsoleOutputManager out = new ConsoleOutputManager();... Soluzione Sviluppiamo il metodo main secondo i seguenti punti: lettura del numero calcolo e visualizzazione delle stringhe corrispondenti al numero cardinale e ordinale scritto in lettere (punti (a) e (b) del testo dell esercizio) calcolo e visualizzazione della lunghezza in lettere delle stringhe ai punti (a) e (b). c 2008 Giovanni Pighizzini Il contenuto di queste pagine è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle pagine sono di proprietà dell autore. Le pagine possono essere riprodotte ed utilizzate liberamente dagli studenti, dagli istituti di ricerca, scolastici e universitari afferenti al Ministero dell Istruzione, dell Università e della Ricerca, per scopi istituzionali, non a fine di lucro. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente a, le riproduzioni a mezzo stampa, su supporti magnetici o su reti di calcolatori) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte dell autore. L informazione contenuta in queste pagine è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, ecc. L informazione contenuta in queste pagine è soggetta a cambiamenti senza preavviso. L autore non si assume alcuna responsabilità per il contenuto di queste pagine (ivi incluse, ma non limitatamente a, la correttezza, completezza, applicabilità ed aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste pagine. In ogni caso questa nota di copyright non deve mai essere rimossa e deve essere riportata anche in utilizzi parziali.
2 Compitino del 24 novembre 2008: soluzione 2 La lettura avviene banalmente, mediante il metodo readint dell oggetto riferito da in. Il risultato viene memorizzato in un opportuna variabile di tipo int che chiamiamo n: int n = in.readint("numero? "); Per il secondo punto utilizziamo la classe Intero: le sue istanze rappresentano numeri interi. Vi sono inoltre i metodi tostring e toordinalstring che permettono di ottenere le stringhe che rappresentano il numero in lettere come cardinale e come ordinale. Costruiamo dunque un oggetto della classe Intero che rappresenta il numero contenuto nella variabile n. Otteniamo poi, mediante i due metodi, le stringhe da visualizzare. I riferimenti a tali stringhe vengono memorizzati in due variabili, di nomi rispettivamente ordinale e cardinale, utili poi per realizzare il punto successivo: Intero numero = new Intero(n); String cardinale = numero.tostring(); out.println(cardinale); String ordinale = numero.toordinalstring(); out.println(ordinale); Vediamo ora come realizzare l ultimo punto. In particolare ci concentriamo sulla visualizzazione della lunghezza, espressa in lettere, della stringa che rappresenta il numero cardinale, e su come ottenere il penultimo messaggio fornito nell esempio (per l ultimo messaggio, relativo alla stringa che rappresenta il numero cardinale, si procede allo stesso modo). I passi da compiere sono i seguenti: chiediamo alla stringa che rappresenta il numero cardinale di fornirci la propria lunghezza (invocazione del metodo length) e la memorizziamo in una variabile lung di tipo int; nel messaggio da visualizzare dovremo scrivere in lettere il valore contenuto in lung: a tal fine ricorreremo di nuovo al metodo tostring della classe Intero; costruiamo un oggetto di tipo Intero che rappresenta lung: Intero lunghezza = new Intero(lung); visualizziamo poi il messaggio, secondo il formato richiesto, ricorrendo, tra l altro, al risultato del metodo tostring dell oggetto riferito da lunghezza: out.println("la parola " + cardinale + " contiene " + lunghezza.tostring() + " lettere"); Per maggiore leggibilità, possiamo lasciare implicita l invocazione del metodo tostring. Ecco il metodo main completo, inserito in una classe, e preceduto dalla direttive di importazione (non richieste per lo svolgimento del compitino): import prog.io.consoleinputmanager; import prog.io.consoleoutputmanager; import prog.utili.intero; class InteroStringhe { public static void main(string[] a) { ConsoleInputManager in = new ConsoleInputManager(); ConsoleOutputManager out = new ConsoleOutputManager();
3 Compitino del 24 novembre 2008: soluzione 3 int n = in.readint("numero? "); Intero numero = new Intero(n); String cardinale = numero.tostring(); out.println(cardinale); String ordinale = numero.toordinalstring(); out.println(ordinale); int lung = cardinale.length(); Intero lunghezza = new Intero(lung); out.println("la parola " + cardinale + " contiene " + lunghezza + " lettere"); lung = ordinale.length(); lunghezza = new Intero(lung); out.println("la parola " + ordinale + " contiene " + lunghezza + " lettere"); Note ed errori frequenti Per ottenere le stringhe che rappresentano il numero letto in lettere come cardinale e come ordinale (richieste ai punti (a) e (b)), è sufficiente costruire un oggetto di tipo intero (a partire dal numero letto) e invocarne i metodi tostring e toordinalstring. Non ha senso costruire due oggetti differenti a partire dallo stesso numero, e invocare per uno il metodo tostring e per l altro il metodo toordinalstring. Il testo dell esercizio al punto (c) richiede che le lunghezze delle stringhe siano espresse in lettere (come anche evidenziato nell esempio di esecuzione). Molti studenti invece hanno fornito tali lunghezze in cifre. Per il punto (c) occorrono due oggetti di tipo Intero diversi (corrispondenti alle due lunghezze da scrivere in lettere). Nella soluzione proposta qui i due oggetti vengono costruiti e utilizzati uno alla volta (mediante la stessa variabile riferimento lunghezza) per fornire i due messaggi richiesti. È bene evitare di ricalcolare le stesse quantità più volte. La stringa che rappresenta in lettere come cardinale il numero letto viene utilizzata sia nel messaggio al punto (a) sia in quello al punto (c). Analogamente, la stringa che rappresenta in lettere come ordinale il numero letto viene utilizzata sia nel messaggio al punto (b) sia in quello al punto (c). È inutile ricalcolarle (una volta per (a) o (b) e una volta per (c), invocando due volte i metodi tostring e toordinalstring). È meglio invocare i due metodi una volta sola, memorizzando il risultato tramite riferimenti di tipo String (cardinale e ordinale nell esempio di soluzione). Al fine di migliorare la leggibilità del codice, è opportuno calcolare i dati richiesti quando devono essere effettivamente utilizzati. Ad esempio, è meglio ricavare le lunghezze richieste per i due messaggi al punto (c) e costruire gli oggetti di tipo Intero utili per ottenere le stringhe che esprimono in lettere tali lunghezze, immediatamente prima della visualizzazione di ciascuno dei due messaggi. Non vi è alcuna ragione per anticipare tali operazioni prima della visualizzazione dei messaggi richiesti ai punti (a) e (b). Fare ciò produce come unico
4 Compitino del 24 novembre 2008: soluzione 4 effetto una notevole riduzione della leggibilità e quindi della successiva modificabilità del codice. È inutile inizializzare una variabile, se il valore iniziale non viene utilizzato a nessuno scopo. Ad esempio non ha senso scrivere: int n = 0; se il valore 0 non deve essere utilizzato e poi si assegna a n un altro valore, ad esempio con l istruzione n = in.readint("numero? "); Analogamente, non ha senso scrivere Meglio Intero numero = null; numero = new Intero(n); Intero numero; numero = new Intero(n); o meglio ancora la scrittura più compatta: Esercizio 2 Intero numero = new Intero(n); Considerate la seguente dichiarazione di variabile: Sequenza<String> seq; //si riferisce a una sequenza di oggetti String Supponete che seq si riferisca a un oggetto già costruito (quindi non contiene null). Scrivete una porzione di codice alla fine della quale una variabile ncapital (da definire opportunamente) contenga il numero totale di stringhe presenti nella sequenza che iniziano con una lettera maiuscola. Ad esempio, se la sequenza contiene le stringhe "cane", "Gatto","","Lupo","Formica" la variabile ncapital dopo l esecuzione dovrà contenere 3. Soluzione Possiamo utilizzare un ciclo for-each in cui a ogni iterazione si esamina una stringa, controllando se il primo carattere è una maiuscola, incrementando in tal caso ncapital (dichiarata e inizializzata a 0 prima del ciclo): int ncapital = 0; for (String s: seq)...se la stringa riferita da s inizia con una maiuscola allora incrementa ncapital... Possiamo estrarre il primo carattere dalla stringa con il metodo chatat, indicando come argomento la posizione 0: char c = s.chatat(0);
5 Compitino del 24 novembre 2008: soluzione 5 Controlliamo poi che esso sia una maiuscola, ricorrendo al metodo statico isuppercase della classe Character: if (Character.isUpperCase(c)) ncapital++; Tuttavia la stringa riferita da s potrebbe essere vuota: in questo caso non è possibile estrarre il primo carattere. Pertanto, il codice precedente va eseguito solo nel caso la stringa non sia vuota. Dunque, l istruzione da inserire all interno del ciclo for-each è la seguente: if (!s.equals("")) { char c = s.charat(0); if (Character.isUpperCase(c)) ncapital++; Possiamo evitare di introdurre la variabile c, scrivendo la chiamata del metodo charat direttamente come argomento di isuppercase. Possiamo inoltre sfruttare l operatore di congiunzione e la lazy evaluation, utilizzando così una sola selezione (di fatto, a ogni iterazione dobbiamo unicamente decidere se incrementare oppure no la variabile ncapital). Con queste modifiche, otteniamo infine il seguente codice: int ncapital = 0; for (String s: seq) if (!s.equals("") && Character.isUpperCase(s.charAt(0))) ncapital++; Note ed errori frequenti Uso scorretto del costrutto for-each. Le posizioni nelle stringhe sono contate a partire da 0 e non da 1. Ogni elemento della sequenza riferita da seq è un oggetto di tipo String. Tra le stringhe che possono apparire nella sequenza (come evidenziato anche nell esempio fornito) ci può essere la stringa vuota. Nel caso di stringa vuota il carattere di posizione 0 non esiste e pertanto l invocazione di s.charat(0) produrrebbe un errore in esecuzione. Prima di esaminare il primo carattere di una stringa, è dunque necessario controllare che essa non sia vuota 1. Un metodo statico è un servizio offerto da una classe e pertanto deve essere invocato indicando il nome della classe che lo fornisce (vedere anche Esercizio 3). Esercizio 3 Completate il seguente metodo main in modo che legga: (a) un importo soglia espresso in euro (di cui l utente fornisce euro e centesimi) (b) un intero n. Il metodo deve poi: (c) generare a caso n prezzi in lire, inferiori a un milione, visualizzandoli man mano vengono generati, insieme ai corrispondenti in euro (d) comunicare, infine, quanti tra i prezzi in euro ottenuti al punto (c) superano l importo soglia fornito inizialmente. 1 Si osservi invece che tra gli elementi di una Sequenza non vi possono essere riferimenti null.
6 Compitino del 24 novembre 2008: soluzione 6 Si noti che non è necessario memorizzare la sequenza dei prezzi. Esempio di esecuzione: Inserire l importo: --- euro? cent? 20 Quanti prezzi devo generare? 5 Lire in Euro: 35,08 Lire in Euro: 142,79 Lire in Euro: 144,23 Lire in Euro: 74,25 Lire in Euro: 502,82 Numero importi maggiori di 100,20: 3 public static void main(string[] args) { ConsoleInputManager in = new ConsoleInputManager(); ConsoleOutputManager out = new ConsoleOutputManager();... Soluzione Come evidenziato nel testo dell esercizio, non è necessario memorizzare l intera sequenza, ma è sufficiente memorizzare, man mano si legge la sequenza, il numero di importi che superano la soglia (oltre che la soglia stessa). Il metodo main richiesto può essere strutturato nei seguenti punti: Lettura dell importo soglia. Lettura del numero di prezzi da generare. Generazione e visualizzazione dei prezzi, e conteggio di quelli superiori alla soglia. Comunicazione del risultato. Per il primo punto, occorre leggere il numero di euro e di centesimi, e costruire poi, con questi dati, un oggetto della classe Importo. Il riferimento a questo oggetto viene posto in una variabile di nome soglia: out.println("inserire l importo:"); int euro = in.readint(" --- euro? "); int cent = in.readint(" --- cent? "); Importo soglia = new Importo(euro, cent); Il secondo punto è banale. Assegnamo il numero di prezzi da leggere a una variabile int di nome quanti: int quanti = in.readint("quanti prezzi devo generare? "); Il terzo punto è più articolato: occorre generare un numero di prezzi in lire pari al valore contenuto in quanti, e contare quanti di essi, trasformati in euro, superano la soglia. Questa fase si basa su un ciclo for il cui corpo viene ripetuto quanti volte. Occorre inoltre un contatore, inizializzato a zero, per contare i prezzi che superano la soglia:
7 Compitino del 24 novembre 2008: soluzione 7 int contamaggiori = 0; //generazione ed elaborazione della sequenza... for (int i = 0; i < quanti; i++) {...genera un prezzo in lire......convertilo in euro... if (il prezzo in euro supera la soglia) contamaggiori = contamaggiori + 1; Per generare i prezzi in lire, ricorriamo alla classe Random: gli oggetti di tale classe sono generatori di numeri a caso. Dunque, prima del ciclo, creiamo un generatore di numeri a caso, invocando il costruttore senza argomenti di Random: Random generatore = new Random(); Gli oggetti di Random offrono un metodo nextint che ricevendo come argomento un intero x, genera un numero n tale che 0 n < x. Poiché il testo richiede che i prezzi generati siano inferiori a un milione, utilizzeremo x= Pertanto, per generare un prezzo, all interno del ciclo scriveremo: int prezzo = generatore.nextint( ); Per la conversione del prezzo da lire in euro, ricorriamo al metodo statico fromlire di Importo: Importo prezzoineuro = Importo.fromLire(prezzo); Infine, la condizione della selezione può essere valutata ricorrendo al metodo ismaggiore dell oggetto riferito da prezzoineuro: prezzoineuro.ismaggiore(soglia) Riepilogando, ecco il codice che abbiamo sviluppato per il terzo punto, con l aggiunta di un istruzione per la visualizzazione del prezzo generato in lire e in euro, come richiesto dal testo dell esercizio: int contamaggiori = 0; Random generatore = new Random(); for (int i = 0; i < quanti; i++) { int prezzo = generatore.nextint( ); Importo prezzoineuro = Importo.fromLire(prezzo); out.println("lire " + prezzo + " - in Euro: " + prezzoineuro); if (prezzoineuro.ismaggiore(soglia)) contamaggiori = contamaggiori + 1; Infine, il messaggio finale può essere visualizzato mediante la seguente istruzione: out.println("numero importi maggiori di " + soglia + ": " + contamaggiori); Segue il codice completo del metodo main così ottenuto, inserito in una classe, con l aggiunta delle direttive di importazione (non richieste per lo svolgimento dell esercizio) import prog.io.consoleinputmanager; import prog.io.consoleoutputmanager; import prog.utili.importo;
8 Compitino del 24 novembre 2008: soluzione 8 import java.util.random; class ImportiACaso { public static void main(string[] a) { ConsoleInputManager in = new ConsoleInputManager(); ConsoleOutputManager out = new ConsoleOutputManager(); //lettura della soglia out.println("inserire l importo:"); int euro = in.readint(" --- euro? "); int cent = in.readint(" --- cent? "); Importo soglia = new Importo(euro, cent); //lettura del numero di prezzi da generare int quanti = in.readint("quanti prezzi devo generare? "); //generazione ed elaborazione dei prezzi int contamaggiori = 0; Random generatore = new Random(); for (int i = 0; i < quanti; i++) { int prezzo = generatore.nextint( ); //numero a caso >=0 e < 1milione Importo prezzoineuro = Importo.fromLire(prezzo); out.println("lire " + prezzo + " - in Euro: " + prezzoineuro); if (prezzoineuro.ismaggiore(soglia)) contamaggiori = contamaggiori + 1; //comunicazione del risultato out.println("numero importi maggiori di " + soglia + ": " + contamaggiori); Note ed errori frequenti I metodi statici sono servizi messi a disposizione dalle classi e non dai singoli oggetti. Sebbene il compilatore accetti che un metodo statico venga chiamato tramite il riferimento a un oggetto della classe, scrivendo ad esempio imp.fromlire(prezzo), dove la variabile imp è dichiarata di tipo Importo, è concettualmente sbagliato, oltre che contorto, richiedere a uno specifico oggetto un servizio fornito dalla classe. La scrittura Importo imp = new Importo(0); Importo prezzoineuro = imp.fromlire(prezzo); è pessima: perché definire il riferimento imp e costruire un oggetto che non serve a nulla? Il metodo fromlire è un servizio fornito dalla classe e la sua esecuzione va richiesta alla classe stessa senza creare riferimenti e oggetti inutili che complicano e rendono incomprensibile il codice. Come già indicato per l Esercizio 1, devono essere evitate le inizializzazioni inutili. Mentre è necessario inizializzare la variabile contamaggiori a zero, in quanto lo zero rappresenta il valore da cui si inizia a contare (inizialmente il numero di importi maggiori della soglia è zero), non ha alcun senso scrivere, ad esempio:
9 Compitino del 24 novembre 2008: soluzione 9 int prezzo = 0; prezzo = generatore.nextint( ); o scrivere: Importo prezzoineuro = new Importo(0); prezzoineuro = Importo.fromLire(prezzo); Il testo richiedeve di generare un prezzo in lire inferiore a un milione. Quindi, non deve essere tra i valori generabili. Attenzione ai confronti. Le condizioni prezzoineuro.ismaggiore(soglia) e soglia.isminore(prezzoineuro) non sono equivalenti (vedere anche l Esercizio 4). Per risolvere l esercizio non è necessario memorizzare la sequenza degli importi (come tra l altro evidenziato nel testo dell esercizio stesso). Esercizio 4 Sia x una variabile di tipo double. (a) Esprimete in linguaggio Java la condizione il valore contenuto in x è inferiore a 10 ma non a 4, senza ricorrere all operatore di negazione. (b) Esprimete in linguaggio Java la negazione della condizione precedente, senza ricorrere all operatore di negazione. Soluzione La prima parte della condizione ( il valore contenuto in x è inferiore a 10 ) si esprime come x < 10 la seconda come ( non è inferiore a 4 ) x >= 4 La condizione richiede che il valore di x soddisfi entrambi i vincoli. Pertanto la condizione è la congiunzione, cioè l AND, delle due, e cioè: x >=4 && x < 10 La negazione della condizione data può essere scritta come il valore contenuto in x non è inferiore a 10 o è inferiore a 4, che può essere espressa come: x < 4 x >= 10
10 Compitino del 24 novembre 2008: soluzione 10 Note ed errori frequenti Non si devono confondere gli operatori di congiunzione e di disgiunzione. Attenzione alla negazione degli operatori di confronto: la negazione di < non è >, ma >=. Le negazione di <= è >, ecc. Poiché la variabile x è di tipo double, i letterali utilizzati nelle condizioni possono essere esplicitati come double, scrivendo ad esempio 4d, 4., 4.0, ecc., al posto del letterale 4 di tipo int. Esercizio 5 Supponete che la variabile x sia dichiarata di tipo int e che le sia assegnato un valore iniziale. Per ciascuna delle seguenti istruzioni, rispondete alle domande indicate. (a) while (x + x == x) out.println(x); Il ciclo può essere infinito? Se avete risposto sì fornite un valore iniziale di x per cui ciò avvenga. Esiste un valore iniziale di x per cui l istruzione out.println(x) viene eseguita una sola volta? Se avete risposto sì fornite un esempio di tale valore. (b) while (x!= x / 2) x = x - 1; Se x contiene inizialmente un valore positivo, il ciclo può essere infinito? Se avete risposto sì fornite un valore iniziale di x per cui ciò avvenga. Esiste un valore iniziale di x per cui l istruzione x = x - 1 viene eseguita una sola volta? Se avete risposto sì fornite un esempio di tale valore. Soluzione Osserviamo che nel corpo del ciclo al punto (a) la variabile x non viene mai modificata. Pertanto, se la condizione inizialmente è vera, cioè se il corpo del ciclo viene eseguito almeno una volta, essa resterà sempre vera. Se x contiene 0, dunque, il ciclo è infinito. Quindi la risposta alla prima domanda è affermativa. D altra parte, se x contiene un valore diverso da 0, la condizione è falsa: il ciclo termina immediatamente senza che l istruzione venga eseguita. Di conseguenza la risposta alla seconda domanda è negativa. Nel caso al punto (b), osserviamo che l unico valore di tipo int per x tale che x!= x /2 risulta falsa è 0. Dato un valore iniziale di x positivo, la condizione risulta vera, pertanto viene eseguito il corpo del ciclo, decrementando x di 1. Se il nuovo valore è positivo, di nuovo la condizione è vera e si ripete allo stesso modo. Continuando a decrementare, prima o poi x arriverà a contenere 0. A quel punto la condizione risulta falsa e il ciclo termina. Pertanto la risposta alla prima domanda è negativa. Inoltre, in base al ragionamento precedente, possiamo osservare che se x contiene inizialmente 1, l istruzione all interno del ciclo verrà eseguita una sola volta.
11 Compitino del 24 novembre 2008: soluzione 11 Note ed errori frequenti Le variabili sono intere e la divisione è dunque tra interi. Se si risponde no alla domanda il ciclo può essere infinito?, come è possibile poi fornire un valore per cui ciò avviene? Esercizio 6 Siano x, y e z tre variabili di tipo int. Per ciascuno dei seguenti frammenti di codice e per i valori iniziali delle variabili x e y x 8, y 8 x 8, y 2 scrivete il valore che assumerà z dopo l esecuzione del frammento: (a) Intero i = new Intero(x); Intero j = new Intero(y); if (!i.equals(j)) z = x + y; else z = x - y; if (x == y) z = 2 * z + 1; (b) Intero i = new Intero(x); Intero j = new Intero(y); if (i!= j) z = x + y; else z = x - y; if (x == y) z = 2 * z + 1; Soluzione caso valori iniziali x 8, y 8 Le prime due istruzioni di ogni frammento di codice creano due oggetti distinti (in quanto viene richiamato due volte il costruttore) entrambi rappresentanti il numero 8. I riferimenti i e j si riferiscono a tali oggetti. Nel caso (a), la condizione i.equals(j) è vera, in quanto i due oggetti rappresentano lo stesso numero. Pertanto la condizione della prima selezione, che ne è la negazione, è falsa. Dunque alla variabile z viene assegnata la differenza tra x e y cioè 0. La seconda selezione confronta i valori delle variabili primitive x e y. Poiché contengono lo stesso valore, la condizione è vera. Pertanto viene eseguita l istruzione, che ha l effetto di assegnare 1 a z. Dunque, al termine dell esecuzione del frammento di codice la variabile z conterrà 1. Nel caso (b), la condizione i!= j è vera, in quanto i contenuti di i e j (cioè i riferimenti) sono diversi (cioè si riferiscono a due oggetti distinti). Pertanto a z viene assegnata la somma dei valori in x e y cioè 16. Anche in questo caso la condizione della seconda selezione è vera e dunque viene eseguito l assegnamento finale a z che, in questo modo, conterrà alla fine 33. Soluzione caso valori iniziali x 8, y 2 Le prime due istruzioni di ogni frammento di codice creano due oggetti distinti. Quello riferito da i rappresenta l intero 8, quello riferito da j l intero 2. Nel caso (a), la condizione i.equals(j) è falsa (gli oggetti riferiti da i e da j non rappresentano lo stesso numero). Pertanto la condizione della prima selezione è vera. Anche nel caso (b), la condizione della prima selezione è vera, in quanto i due riferimenti i e j sono diversi. Pertanto, in entrambi i casi a z viene assegnata la somma di x e y, cioè 10. La condizione della successiva selezione è falsa. Pertanto, il valore finale in z è 10.
12 Compitino del 24 novembre 2008: soluzione 12 Note ed errori frequenti Per programmare correttamente è indispensabile conoscere la differenza tra confronto tra riferimenti (effettuato mediante gli operatori di confronto == e!=) e confronto tra oggetti (effettuato mediante i metodi equals disponibili nelle varie classi). È sbagliato affermare che il compilatore segnala un errore sulla condizione i!= j: essa è lecita. In particolare, in questa condizione i e j sono due espressioni di tipo riferimento (più precisamente del tipo riferimento Intero). Pertanto queste espressioni confrontano i riferimenti presenti in i e j (rivedere il Paragrafo 3.3 del libro di testo).
Note ed esercizi aggiuntivi
Corso di Programmazione Anno Accademico 2013 2014 Prof. Giovanni Pighizzini ed esercizi aggiuntivi Gli esercizi proposti sono utili per rivedere gli esempi riportati, che sono stati sviluppati e discussi
DettagliLinguaggio C Debugging
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota
DettagliLinguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
Dettagli9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 di Laurea
DettagliProgrammazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi
DettagliProgrammazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):
Programmazione I 11 gennaio 2012 Matricola:........................................................................ Cognome:........................................................................ Nome:...........................................................................
DettagliProgramma sorgente, compilatore, file oggetto, file eseguibile. Traduzione effettuata dal compilatore. Dichiarazione di variabili (esempi)
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Facoltà di Ingegneria Università degli Studi di Udine Dal linguaggio macchina al linguaggio C 2000 Pier Luca Montessoro (si veda la nota di copyright alla
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli
DettagliLinguaggio C Struct e union
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struct e union 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliTecniche di compressione senza perdita
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliProgrammazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014
Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi
DettagliCodifica dei numeri interi positivi e negativi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei numeri interi positivi e negativi 2000 Pier Luca Montessoro (si veda la nota di copyright
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
DettagliLinguaggio C e sistema operativo
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C e sistema operativo 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliProgrammazione II Compitino (Vers. A)
Programmazione II Compitino (Vers. A) 17 dicembre 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del
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
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Codifica del video
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica del video 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1
DettagliRETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE
RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright
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
DettagliLezione 6 programmazione in Java
Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi
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
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
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
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 all uso degli oggetti in Java (parte II) Walter Didimo
Introduzione all uso degli oggetti in Java (parte II) Walter Didimo Esercizio all uso di oggetti Nel corso viene fornita una classe i cui oggetti permettono di leggere dati immessi dalla tastiera la classe
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
DettagliArchitettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architettura e funzionamento del calcolatore 20 Pier Luca Montessoro (si veda la nota di copyright
DettagliMetro VLAN Switch e standard 802.1ad
Metro VLAN Switch e standard 802.1ad Pietro Nicoletti piero[]studioreti.it VLAN-Metro-802.1ad - 1 P. Nicoletti: si veda nota a pag. 2 Nota di Copyright Questo insieme di trasparenze (detto nel seguito
DettagliIterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare
DettagliBasi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi
Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
DettagliArray. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere
DettagliLaboratorio di Programmazione Laurea in Bioinformatica
Laboratorio di Programmazione Laurea in Bioinformatica 15 dicembre 2008 1 Programmazione strutturata 1.1 Esercizio 1 Si scriva lo pseudocodice di un programma che calcola la media di due numeri reali.
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
DettagliIndice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
DettagliRichiami di Fondamenti di Informatica - 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1
Dettagli2001 Pier Luca Montessoro, Davide Pierattoni (si veda la nota di copyright alla slide n. 2) Fondamenti di Informatica.
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Le trappole del linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliTrasmissione bilanciata e amplificatore differenziale
E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato Trasmissione bilanciata e amplificatore differenziale Pier Luca Montessoro pierluca.montessoro@diegm.uniud.it DIFFAMP -
DettagliProgrammazione II Compitino (Vers. A)
Programmazione II Compitino (Vers. A) 16 gennaio 2009 Cognome Jekyll Nome Doctor Matricola 112233 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del metodo
DettagliControllo e correzione degli errori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Controllo e correzione degli errori 2000 Pier Luca Montessoro si veda la nota di copyright alla
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliLa programmazione in linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliNote sulla macchina a stack
Linguaggi e Traduttori Anno Accademico 2014 2015 Prof. Giovanni Pighizzini Note sulla macchina a stack 20 Maggio 2015 Questo documento contiene alcune note sulla macchina virtuale utilizzata per gli esempi
DettagliIL CABLAGGIO STRUTTURATO DI CATEGORIA 6
IL CABLAGGIO STRUTTURATO DI CATEGORIA 6 21 maggio 2002 PIER LUCA MONTESSORO Dip. di Ingegneria Elettrica Gestionale e Meccanica Università degli Studi di Udine in collaborazione con 2002 Pier Luca Montessoro
DettagliCodifica dei segnali audio
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica dei segnali audio 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliProblemi, algoritmi e oggetti
Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un
DettagliIstruzioni di ripetizione in Java 1
in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni
DettagliEsercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
DettagliLe strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori 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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Università di Camerino Corso di Laurea in Informatica (12 CFU) I periodo didattico Emanuela Merelli email:emanuela.merelli@unicam.it Argomenti della lezione Elementi di un linguaggio
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
DettagliMetodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
DettagliShielding. E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato. Pier Luca Montessoro.
E.M.I. Shield e Grounding: analisi applicata ai sistemi di cablaggio strutturato Shielding Pier Luca Montessoro pierluca.montessoro@diegm.uniud.it SHIELD - 1 Copyright: si veda nota a pag. 2 Nota di Copyright
DettagliERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
DettagliGestione della memoria di massa e file system
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria di massa e file system 2000 Pier Luca Montessoro (si veda la nota di copyright
DettagliCapitolo 2. Protocolli e contratti. c 2005 Pearson Education Italia Capitolo 2-1 / 82
Capitolo 2 Protocolli e contratti c 2005 Pearson Education Italia Capitolo 2-1 / 82 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti
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
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore
DettagliIl cablaggio strutturato degli edifici: cosa c e` ` di nuovo?
Il cablaggio strutturato degli edifici: cosa c e` ` di nuovo? Pier Luca Montessoro Università degli Studi di Udine Dip. di Ing. Elettrica, Gestionale e Meccanica e-mail: montessoro@uniud.it www: http://www.uniud.it/montessoro
DettagliProgrammazione Java Struttura di una classe, Costruttore, Riferimento this
Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento
DettagliDati aggregati. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
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
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
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzioni di controllo Iterative Condizionali Algoritmi e Diagrammi di flusso Esercizi 28/03/2011 2 Istruzioni iterative while do
DettagliProgrammazione, 5 a lezione
Programmazione, 5 a lezione Eugenio Omodeo Dipartimento di Matematica e Informatica, Università degli Studi di Trieste. Trieste, 12.10.2010 Esecuzione sequenziale I All avvio di un programma, il processo
DettagliModulo 2: Strutture fondamentali della programmazione Java
Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliLinguaggio C Struttura dei programmi
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Struttura dei programmi 2001 Pier Luca Montessoro - Davide
DettagliDall analisi alla codifica (1)
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
DettagliLa voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C
La voce di Elvis Presley, la chitarra di David Gilmour e le funzioni di callback in linguaggio C l ingegneria elettronica nella musica moderna Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università
DettagliEsercizi di Addressing. Fulvio Risso Guido Marchetto
Esercizi di Addressing Fulvio Risso Guido Marchetto 1 Nota di Copyright Questo insieme di trasparenze (detto nel seguito slides) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali.
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
DettagliLinguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliCompitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A
Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare
DettagliProprietà delle Classi e degli Oggetti in Java
Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di
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
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
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliUso di metodi statici. Walter Didimo
Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un
DettagliProgettazione delle dorsali in fibra ottica
Progettazione delle dorsali in fibra ottica Mario Baldi Politecnico di Torino mario.baldi@polito.it staff.polito.it/mario.baldi Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide)
DettagliSTRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
DettagliLa Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
DettagliAlgoritmi di Ricerca. Esempi di programmi Java
Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare
DettagliProgrammazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
Dettagli5 - Istruzioni condizionali
5 - Istruzioni condizionali 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
Dettagli18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
DettagliNota di Copyright. Interfaccia audio. Libreria portaudio. Callback function. Un piccolo problema. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Libreria in linguaggio C per elaborazione audio in real time 2010 Pier Luca Montessoro (si veda
DettagliCorso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010
Esercizio 1. Si deve modellare con una classe Java il contenuto di un portamonete, con delle opportune semplificazioni. Le monete da considerare sono di soli 4 tagli: 10, 20, 50 e 100 centesimi (cioè 1
DettagliLinguaggio C Espressioni e operatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing.DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Espressioni e operatori 2001 Pier Luca Montessoro - Davide
Dettagli