• Non ci sono risultati.

Ad esempio per M ed N=4 il valore restituito è true

N/A
N/A
Protected

Academic year: 2021

Condividi "Ad esempio per M ed N=4 il valore restituito è true"

Copied!
2
0
0

Testo completo

(1)

primo compitino di Programmazione, AA 2016-17 27/04/2017

Esercizio 1) Scrivere una funzione che accetta in ingresso

una matrice bidimensionale M di numeri interi, ed un numero intero N,

e restituisce il valore booleano true se e solo se esistono due colonne

distinte contenenti il valore N.

Ad esempio per M = {{-8, 4, -8}, {-7, 5, 4}} ed N=4 il valore restituito è true.

Esempio di soluzione:

public static boolean ricercaNdueColonne(int[][] M, int N){

int conta2N=0;

for (int j=0;j<M[0].length;j++) for (int i=0;i<M.length;i++) if (M[i][j]==N)

{conta2N++; //trovato un N

if (conta2N==2) return true; //se 2 N -- true break;} //se trovato un N fine esame colonna

return false; // se arriva qui non si trovano 2 N }

Esercizio 2)

Considerando le classi viste a lezione, si aggiunga un metodo alla implementazione delle pile (implementazione statica funzionale) che, data una pila p, e due valori N ed M passati come parametri,

restituisce una pila p1 che contiene tutti i valori presenti nella pila originaria ed il valore N se N non appartiene a p

ed il valore M se M non appartiene a p.

Ad esempio se p contiene 2, 9, 5, -1, 50 ed N=3 ed M = 5

p1 conterrà 2, 9, 5, -1, 50, 3 Esempio di soluzione:

static public Pila aggiunginm (Pila p, int n, int m) { boolean trovaton=false;

boolean trovatom=false;

Pila p1=new Pila(Pila.dimensione(p)+2);

while (!Pila.pilavuota(p)){

if (Pila.top(p)==n) trovaton=true;// n e' in p if (Pila.top(p)==m) trovatom=true;// m e' in p p1=Pila.push(p1,Pila.top(p));//copia da p a p1 p=Pila.pop(p);//elimina da p valore copiato in p1 }

if (!trovaton) p1=Pila.push(p1,n);// inserisce n if (!trovatom) p1=Pila.push(p1,m);// inserisce m return p1;

}

(2)

Esercizio 3)

Considerando le classi viste a lezione, si aggiunga un metodo alla implementazione delle code (implementazione statica funzionale) che, data una coda c (non vuota), restituisce il valor medio dei valori contenuti nella coda

e stampa il valore dell’ultimo elemento della coda (il più recente).

Ad esempio se c contiene (in ordine cronologico dal più vecchio al più recente)

-6, 7, 6, 5, 4, 8

il valor medio sarà 4, e stamperà 8.

Esempio di soluzione:

public static float valorMedioEultimo(Coda c){

int contaelementi=0; // conta il num di valori in c int somma=0; //conterra' somma valori nella coda c

int ultimo=0; // conterra' il valore dell'ultimo elem in c while (!Coda.codavuota(c)){

contaelementi++;

somma=somma+Coda.top(c);

ultimo=Coda.top(c);

c=Coda.dequeue(c); // elimina valore esaminato }

System.out.println("Valore ultimo elem in c = "+ultimo);

return(somma/contaelementi); //restituisce valor medio }

Riferimenti

Documenti correlati

Esercizio 9 Un discriminatore d’ampiezza `e un circuito che consente la trasmissione di una parte sola di una generica forma d’onda

3.2 Ammortamenti dei diritti alle prestazioni sportive dei calciatori e di tutto il personale dipendente e ammortamenti di tutte le altre immobilizzazioni.. 3.3 Costi di

La prima fase del concorso prevede una selezione delle migliori iniziative imprenditoriali sulla base di un business plan che descriva dettagliatamente l’idea d’impresa che si intende

Un primo diagramma di flusso per risolvere questo problema `e dato in 11(a). Notare che il blocco di istruzione in cui viene assegnato ad n il numero successivo della sequenza

[r]

• denizione di isometria; un'isometria trasforma rette in rette; punti ssi; se un'isometria ha due punti ssi, tutta la retta individuata dai due punti ssi è ssa;

Effect-sizes are modest for common variants (mostly increases by 1.1-1.5)... Effect-sizes are modest for common variants (mostly increases

• eseguire un blocco di istruzioni (pu`o essere anche contenere una sola istruzione ma non ci sono vincoli riguardo al numero di istruzioni da es- eguire. Questo ` e il motivo per