Programmazione 1 A.A. 2015/2016

Documenti analoghi
Programmazione 1 A.A. 2015/2016

Laboratorio di Programmazione 1 [Java]

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre 2001

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.

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Esonero di Informatica I. Ingegneria Medica

Laboratorio di Programmazione Lezione 3. Cristian Del Fabbro

Studente (Cognome Nome):

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

Programmazione II Compitino (Vers. B)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

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

Insieme.java. Printed by Paolo. Feb 24, 04 16:44 Page 1/1 class Insieme { private int[] elementi; Tuesday February 24, /10

Corso di Laurea in Ingegneria Informatica Prova di Analisi Matematica 1

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010

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

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

Algoritmi di Ricerca. Esempi di programmi Java

Cognome Nome Matricola Postazione PC. Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a Gennaio 2015

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Programmazione II Compitino (Vers. A)

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

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

Informatica A a.a. 2010/ /02/2011

Esempio su strutture dati dinamiche: ArrayList

Algoritmi di Ricerca. Esempi di programmi Java

Programmazione Orientata agli Oggetti in Linguaggio Java

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

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

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

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

Richiami di Fondamenti di Informatica - 1

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

Studente (Cognome Nome):

Esempi di Problemi Iterativi

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

Gestione dei compiti

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

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a gennaio 2012

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a Febbraio 2016 Testo

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

Array mono- e bi-dimensionali Cicli while e do-while

Fondamenti di Informatica T-1 Modulo 2

RIGA COLONNA MATRICOLA

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Esempio su strutture dati dinamiche: ArrayList

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

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

Programmazione II Compitino (Vers. A)

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

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI

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

Programmazione II Compitino (Vers. B)

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

Decomposizione per scelta

Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.

Le basi del linguaggio Java

Introduzione Programmazione Java

Studente (Cognome Nome):

Strutture dati dinamiche in C (II)

Calcolare x n = x x x (n volte)

Politecnico di Milano

Introduzione alla Programmazione in Java attraverso un esempio commentato

Corso sul linguaggio Java

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

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

Politecnico di Milano

TEMA D ESAME 1. Segnalare eventuali errori o situazioni non gestibili con opportune eccezioni o messaggi di errore. TEMA D ESAME 2

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 24 Gennaio 2011 COGNOME E NOME RIGA COLONNA MATRICOLA

Fondamenti di Informatica T-1

Politecnico di Milano

Programmazione con Java

Transcript:

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.