Programmazione 1 A.A. 2015/2016

Похожие документы
Programmazione 1 A.A. 2015/2016

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java]

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

n deve essere maggiore di 0, altrimenti il metodo restituisce null.

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Metodi statici. Dichiarazione e chiamata di metodi statici

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Corso di Laurea in Ingegneria Informatica Prova di Analisi Matematica 1

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

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

Algoritmi di Ricerca. Esempi di programmi Java

Ricerca e ordinamento su array di oggetti. Corso di Programmazione 2 Esercitazione 5

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Esempio su strutture dati dinamiche: ArrayList

Algoritmi di Ricerca. Esempi di programmi Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Algoritmi di Ricerca. Esempi di programmi Java

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 21 Luglio 2010 COGNOME E NOME RIGA COLONNA MATRICOLA

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

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

Le basi del linguaggio Java

Esercizi su programmazione ricorsiva 1. Pericle Perazzo 23 marzo 2012

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

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

Le variabili. Olga Scotti

Esempi di Problemi Iterativi

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Esempio su strutture dati dinamiche: ArrayList

Cognome e Nome : Corso e Anno di Immatricolazione: Modalità di Laboratorio (Progetto/Prova) :

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

Fondamenti di Informatica T-1 Modulo 2

Esempio su strutture dati dinamiche: ArrayList

Esempio: Tombola! Vogliamo progettare una applicazione che realizza il gioco della tombola Versione semplificata: un banco, un

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1

Le basi del linguaggio Java

Strutture dati dinamiche in C (II)

Politecnico di Milano

Corso sul linguaggio Java

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

Esercitazione. Docente Ing. Mariateresa Celardo

Costrutti iterativi. Utilizzo dei costrutti iterativi

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Laboratorio di Sistemi Classi e relazioni Java

Fondamenti di Informatica T-1

Politecnico di Milano

Programmazione con Java

Транскрипт:

Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91, 20, 17, 15; for (int i=0; i<a.length; i++){ if (A[i]%2==0){ for (int j=i+1; j<a.length;j++){ if (A[j]%2==1){ System.out.print (A[i]+A[j] + " "); System.out.println(); Esercizio 2 (11 punti) public static double[] medieparziali (int[] a) che, preso come parametro un array di numeri interi, senza modificare il contenuto dell array, restituisce un array di numeri in virgola mobile della stessa lunghezza di a, in cui in posizione i (i=0,,a.length 1) è inserito il valore della media aritmetica dei primi i+1 elementi di a (dall elemento in posizione 0 all elemento in posizione i). Se a vale null, viene restituito null. Ad esempio, se a=[10, 6, 5, 4] deve essere restituito l array [10.0, 8.0, 7.0, 6.25] Esercizio 3 (11 punti) public static int[] sommarighe (int[][] m) che, preso come parametro un array bidimensionale di numeri interi, senza modificare il contenuto dell array, restituisce un nuovo array di interi di lunghezza uguale a quella dell array m, in cui in posizione i è presente la somma di tutti gli elementi contenuti nell array m[i]. Se m vale null, viene restituito null. Se m[i] vale null, in posizione i dell array restituito viene inserito 0. Ad esempio, se m={ {5,3,7, {7,3,10,5 il metodo deve restituire l array {15,25. Regole per lo svolgimento della prova scritta: Per svolgere il compito si hanno a disposizione 60 minuti per ogni parte. Chi svolge la seconda prova parziale deve consegnare dopo 60 minuti. Scrivere subito nome, cognome, matricola e numero del compito su OGNI FOGLIO (compreso questo). Le risposte al primo e al quarto esercizio devono essere date direttamente nei riquadri di questo foglio. Durante la prova scritta non è possibile abbandonare l aula. Non è ammesso per nessun motivo comunicare in qualsiasi modo con altre persone Non è possibile consultare appunti, libri, dispense o qualsiasi altro materiale. Qualsiasi strumento elettronico di calcolo o comunicazione (telefoni cellulari, calcolatrici, palmari, computer, etc ) deve essere completamente disattivato e depositato in vista sulla cattedra Mettere in vista sul banco il proprio libretto (o altro documento di identità).

Seconda parte Esercizio 4 (10 punti) Cosa stampa il seguente programma Java? public class Main { public static void main(string[] args) { System.out.println(enigma(1)); System.out.println(enigma(5)); System.out.println(enigma(10)); System.out.println(enigma(100)); public static int enigma (int x){ if (x<1) return 0; if (x%2==1) return 1 + enigma(x-1); return 2 + enigma (x-1); Esercizio 5 (12 punti) Si consideri il seguente tipo di dato che rappresenta una data del calendario: class Data { int anno; byte mese; byte giorno; (4 punti) Scrivere un metodo static boolean leq (Data d1, Data d2) che, prese come parametri due date d1 e d2, restituisce true se e solo se d1 precede d2. Se d1 e/o d2 valgono null, viene restituito false. (4 punti) Scrivere un metodo static Data generasuccessivo (Data d) che, presa come parametro una data d, crea e restituisce una nuova data che rappresenta il giorno successivo a d. [gli anni bisestili sono quelli divisibili per 4]. Se d vale null, viene restituito null. (4 punti) static int annopiùfrequente (Data[] a) che, preso come parametro un array a di date, restituisce uno degli anni più frequenti (cioè che compaiono il maggior numero di volte) presenti nell array a. Se a vale null, oppure non contiene nessuna data, viene restituito 0. Esercizio 6 (10 punti) [non è possibile utilizzare nessun metodo scritto a lezione senza riscriverlo completamente] Si consideri il seguente tipo di dati visto a lezione, che rappresenta una lista di numeri interi positivi, identificata dal suo primo elemento. class Elem { int valore; Elem next; (5 punti) public static int secondomassimo (Elem lista) che presa come parametro una lista di interi, restituisce il valore del più grande elemento presente in lista che sia strettamente minore del massimo elemento della lista. Se la lista non esiste o contiene tutti elementi uguali viene restituito 0. Ad esempio se la lista è 356264, viene restituito 5. (5 punti) Scrivere un metodo ricorsivo public static long prodotto (Elem lista) che presa come parametro una lista di interi, restituisce il prodotto di tutti gli elementi presenti nella lista. Se la lista non esiste (o è vuota), viene restituito 0.

Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 2 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 6, 9, 30, 27, 25; for (int i=0; i<a.length; i++){ if (A[i]%2==0){ for (int j=i+1; j<a.length;j++){ if (A[j]%2==1){ System.out.print (A[i]+A[j] + " "); System.out.println(); Esercizio 2 (11 punti) public static double[] medieparziali (int[] a) che, preso come parametro un array di numeri interi, senza modificare il contenuto dell array, restituisce un array di numeri in virgola mobile della stessa lunghezza di a, in cui in posizione i (i=0,,a.length 1) è inserito il valore della media aritmetica dei primi i+1 elementi di a (dall elemento in posizione 0 all elemento in posizione i). Se a vale null, viene restituito null. Ad esempio, se a=[10, 6, 5, 4] deve essere restituito l array [10.0, 8.0, 7.0, 6.25] Esercizio 3 (11 punti) public static int[] sommarighe (int[][] m) che, preso come parametro un array bidimensionale di numeri interi, senza modificare il contenuto dell array, restituisce un nuovo array di interi di lunghezza uguale a quella dell array m, in cui in posizione i è presente la somma di tutti gli elementi contenuti nell array m[i]. Se m vale null, viene restituito null. Se m[i] vale null, in posizione i dell array restituito viene inserito 0. Ad esempio, se m={ {5,3,7, {7,3,10,5 il metodo deve restituire l array {15,25. Regole per lo svolgimento della prova scritta: Per svolgere il compito si hanno a disposizione 60 minuti per ogni parte. Chi svolge la seconda prova parziale deve consegnare dopo 60 minuti. Scrivere subito nome, cognome, matricola e numero del compito su OGNI FOGLIO (compreso questo). Le risposte al primo e al quarto esercizio devono essere date direttamente nei riquadri di questo foglio. Durante la prova scritta non è possibile abbandonare l aula. Non è ammesso per nessun motivo comunicare in qualsiasi modo con altre persone Non è possibile consultare appunti, libri, dispense o qualsiasi altro materiale. Qualsiasi strumento elettronico di calcolo o comunicazione (telefoni cellulari, calcolatrici, palmari, computer, etc ) deve essere completamente disattivato e depositato in vista sulla cattedra Mettere in vista sul banco il proprio libretto (o altro documento di identità).

Seconda parte Esercizio 4 (10 punti) Cosa stampa il seguente programma Java? public class Main { public static void main(string[] args) { System.out.println(enigma(1)); System.out.println(enigma(3)); System.out.println(enigma(7)); System.out.println(enigma(90)); public static int enigma (int x){ if (x<1) return 0; if (x%2==1) return 1 + enigma(x-1); return 2 + enigma (x-1); Esercizio 5 (12 punti) Si consideri il seguente tipo di dato che rappresenta una data del calendario: class Data { int anno; byte mese; byte giorno; (4 punti) Scrivere un metodo static boolean leq (Data d1, Data d2) che, prese come parametri due date d1 e d2, restituisce true se e solo se d1 precede d2. Se d1 e/o d2 valgono null, viene restituito false. (4 punti) Scrivere un metodo static Data generasuccessivo (Data d) che, presa come parametro una data d, crea e restituisce una nuova data che rappresenta il giorno successivo a d. [gli anni bisestili sono quelli divisibili per 4]. Se d vale null, viene restituito null. (4 punti) static int annopiùfrequente (Data[] a) che, preso come parametro un array a di date, restituisce uno degli anni più frequenti (cioè che compaiono il maggior numero di volte) presenti nell array a. Se a vale null, oppure non contiene nessuna data, viene restituito 0. Esercizio 6 (10 punti) [non è possibile utilizzare nessun metodo scritto a lezione senza riscriverlo completamente] Si consideri il seguente tipo di dati visto a lezione, che rappresenta una lista di numeri interi positivi, identificata dal suo primo elemento. class Elem { int valore; Elem next; (5 punti) public static int secondomassimo (Elem lista) che presa come parametro una lista di interi, restituisce il valore del più grande elemento presente in lista che sia strettamente minore del massimo elemento della lista. Se la lista non esiste o contiene tutti elementi uguali viene restituito 0. Ad esempio se la lista è 356264, viene restituito 5. (5 punti) Scrivere un metodo ricorsivo public static long prodotto (Elem lista) che presa come parametro una lista di interi, restituisce il prodotto di tutti gli elementi presenti nella lista. Se la lista non esiste (o è vuota), viene restituito 0.

Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 3 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 10, 11, 40, 15, 17; for (int i=0; i<a.length; i++){ if (A[i]%2==0){ for (int j=i+1; j<a.length;j++){ if (A[j]%2==1){ System.out.print (A[i]+A[j] + " "); System.out.println(); Esercizio 2 (11 punti) public static double[] medieparziali (int[] a) che, preso come parametro un array di numeri interi, senza modificare il contenuto dell array, restituisce un array di numeri in virgola mobile della stessa lunghezza di a, in cui in posizione i (i=0,,a.length 1) è inserito il valore della media aritmetica dei primi i+1 elementi di a (dall elemento in posizione 0 all elemento in posizione i). Se a vale null, viene restituito null. Ad esempio, se a=[10, 6, 5, 4] deve essere restituito l array [10.0, 8.0, 7.0, 6.25] Esercizio 3 (11 punti) public static int[] sommarighe (int[][] m) che, preso come parametro un array bidimensionale di numeri interi, senza modificare il contenuto dell array, restituisce un nuovo array di interi di lunghezza uguale a quella dell array m, in cui in posizione i è presente la somma di tutti gli elementi contenuti nell array m[i]. Se m vale null, viene restituito null. Se m[i] vale null, in posizione i dell array restituito viene inserito 0. Ad esempio, se m={ {5,3,7, {7,3,10,5 il metodo deve restituire l array {15,25. Regole per lo svolgimento della prova scritta: Per svolgere il compito si hanno a disposizione 60 minuti per ogni parte. Chi svolge la seconda prova parziale deve consegnare dopo 60 minuti. Scrivere subito nome, cognome, matricola e numero del compito su OGNI FOGLIO (compreso questo). Le risposte al primo e al quarto esercizio devono essere date direttamente nei riquadri di questo foglio. Durante la prova scritta non è possibile abbandonare l aula. Non è ammesso per nessun motivo comunicare in qualsiasi modo con altre persone Non è possibile consultare appunti, libri, dispense o qualsiasi altro materiale. Qualsiasi strumento elettronico di calcolo o comunicazione (telefoni cellulari, calcolatrici, palmari, computer, etc ) deve essere completamente disattivato e depositato in vista sulla cattedra Mettere in vista sul banco il proprio libretto (o altro documento di identità).

Seconda parte Esercizio 4 (10 punti) Cosa stampa il seguente programma Java? public class Main { public static void main(string[] args) { System.out.println(enigma(1)); System.out.println(enigma(5)); System.out.println(enigma(10)); System.out.println(enigma(100)); public static int enigma (int x){ if (x<1) return 0; if (x%2==1) return 2 + enigma(x-1); return 3 + enigma (x-1); Esercizio 5 (12 punti) Si consideri il seguente tipo di dato che rappresenta una data del calendario: class Data { int anno; byte mese; byte giorno; (4 punti) Scrivere un metodo static boolean leq (Data d1, Data d2) che, prese come parametri due date d1 e d2, restituisce true se e solo se d1 precede d2. Se d1 e/o d2 valgono null, viene restituito false. (4 punti) Scrivere un metodo static Data generasuccessivo (Data d) che, presa come parametro una data d, crea e restituisce una nuova data che rappresenta il giorno successivo a d. [gli anni bisestili sono quelli divisibili per 4]. Se d vale null, viene restituito null. (4 punti) static int annopiùfrequente (Data[] a) che, preso come parametro un array a di date, restituisce uno degli anni più frequenti (cioè che compaiono il maggior numero di volte) presenti nell array a. Se a vale null, oppure non contiene nessuna data, viene restituito 0. Esercizio 6 (10 punti) [non è possibile utilizzare nessun metodo scritto a lezione senza riscriverlo completamente] Si consideri il seguente tipo di dati visto a lezione, che rappresenta una lista di numeri interi positivi, identificata dal suo primo elemento. class Elem { int valore; Elem next; (5 punti) public static int secondomassimo (Elem lista) che presa come parametro una lista di interi, restituisce il valore del più grande elemento presente in lista che sia strettamente minore del massimo elemento della lista. Se la lista non esiste o contiene tutti elementi uguali viene restituito 0. Ad esempio se la lista è 356264, viene restituito 5. (5 punti) Scrivere un metodo ricorsivo public static long prodotto (Elem lista) che presa come parametro una lista di interi, restituisce il prodotto di tutti gli elementi presenti nella lista. Se la lista non esiste (o è vuota), viene restituito 0.

Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 4 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 2, 95, 60, 7, 35; for (int i=0; i<a.length; i++){ if (A[i]%2==0){ for (int j=i+1; j<a.length;j++){ if (A[j]%2==1){ System.out.print (A[i]+A[j] + " "); System.out.println(); Esercizio 2 (11 punti) public static double[] medieparziali (int[] a) che, preso come parametro un array di numeri interi, senza modificare il contenuto dell array, restituisce un array di numeri in virgola mobile della stessa lunghezza di a, in cui in posizione i (i=0,,a.length 1) è inserito il valore della media aritmetica dei primi i+1 elementi di a (dall elemento in posizione 0 all elemento in posizione i). Se a vale null, viene restituito null. Ad esempio, se a=[10, 6, 5, 4] deve essere restituito l array [10.0, 8.0, 7.0, 6.25] Esercizio 3 (11 punti) public static int[] sommarighe (int[][] m) che, preso come parametro un array bidimensionale di numeri interi, senza modificare il contenuto dell array, restituisce un nuovo array di interi di lunghezza uguale a quella dell array m, in cui in posizione i è presente la somma di tutti gli elementi contenuti nell array m[i]. Se m vale null, viene restituito null. Se m[i] vale null, in posizione i dell array restituito viene inserito 0. Ad esempio, se m={ {5,3,7, {7,3,10,5 il metodo deve restituire l array {15,25. Regole per lo svolgimento della prova scritta: Per svolgere il compito si hanno a disposizione 60 minuti per ogni parte. Chi svolge la seconda prova parziale deve consegnare dopo 60 minuti. Scrivere subito nome, cognome, matricola e numero del compito su OGNI FOGLIO (compreso questo). Le risposte al primo e al quarto esercizio devono essere date direttamente nei riquadri di questo foglio. Durante la prova scritta non è possibile abbandonare l aula. Non è ammesso per nessun motivo comunicare in qualsiasi modo con altre persone Non è possibile consultare appunti, libri, dispense o qualsiasi altro materiale. Qualsiasi strumento elettronico di calcolo o comunicazione (telefoni cellulari, calcolatrici, palmari, computer, etc ) deve essere completamente disattivato e depositato in vista sulla cattedra Mettere in vista sul banco il proprio libretto (o altro documento di identità).

Seconda parte Esercizio 4 (10 punti) Cosa stampa il seguente programma Java? public class Main { public static void main(string[] args) { System.out.println(enigma(1)); System.out.println(enigma(3)); System.out.println(enigma(12)); System.out.println(enigma(80)); public static int enigma (int x){ if (x<1) return 0; if (x%2==1) return 2 + enigma(x-1); return 3 + enigma (x-1); Esercizio 5 (12 punti) Si consideri il seguente tipo di dato che rappresenta una data del calendario: class Data { int anno; byte mese; byte giorno; (4 punti) Scrivere un metodo static boolean leq (Data d1, Data d2) che, prese come parametri due date d1 e d2, restituisce true se e solo se d1 precede d2. Se d1 e/o d2 valgono null, viene restituito false. (4 punti) Scrivere un metodo static Data generasuccessivo (Data d) che, presa come parametro una data d, crea e restituisce una nuova data che rappresenta il giorno successivo a d. [gli anni bisestili sono quelli divisibili per 4]. Se d vale null, viene restituito null. (4 punti) static int annopiùfrequente (Data[] a) che, preso come parametro un array a di date, restituisce uno degli anni più frequenti (cioè che compaiono il maggior numero di volte) presenti nell array a. Se a vale null, oppure non contiene nessuna data, viene restituito 0. Esercizio 6 (10 punti) [non è possibile utilizzare nessun metodo scritto a lezione senza riscriverlo completamente] Si consideri il seguente tipo di dati visto a lezione, che rappresenta una lista di numeri interi positivi, identificata dal suo primo elemento. class Elem { int valore; Elem next; (5 punti) public static int secondomassimo (Elem lista) che presa come parametro una lista di interi, restituisce il valore del più grande elemento presente in lista che sia strettamente minore del massimo elemento della lista. Se la lista non esiste o contiene tutti elementi uguali viene restituito 0. Ad esempio se la lista è 356264, viene restituito 5. (5 punti) Scrivere un metodo ricorsivo public static long prodotto (Elem lista) che presa come parametro una lista di interi, restituisce il prodotto di tutti gli elementi presenti nella lista. Se la lista non esiste (o è vuota), viene restituito 0.