Esercizi aggiuntivi

by user

on
Category: Documents
15

views

Report

Comments

Transcript

Esercizi aggiuntivi
Esercizi su vettori 1. Si scriva un metodo filtraVettore che riceve in ingresso un array V di numeri interi e restituisce un vettore di interi W contenente tutti gli elementi di V di valore positivo che si trovano in posizione dispari. Ad esempio, se V = [13, -­‐11, 4, 7, -­‐17, 5] allora W = [7, 5]. 2. Si scriva un metodo creaVettore che riceve in ingresso un array V di numeri interi e restituisce un vettore di interi S di dimensione pari alla dimensione di V, in cui l’elemento S[i] è la somma degli elementi V[i], V[i+1],…, V[V.length-­‐1] con valore positivo. Ad esempio, se V = [20, -­‐11, 4, 7, -­‐17, 5] allora S = [36, 16, 16, 12, 5, 5]. 3. Si scriva un metodo rimuovi che riceve in ingresso due vettori v1 e v2 di interi, e restituisce un vettore v3 contenente gli elementi di v2 che non sono multipli di qualche elemento di v1. Ad esempio, se v1= [ 2 , 9 , 8 , 4 , 12 ] e v2 = [ 7 , 10 , 13 , 33 ], il vettore restituito è v3 = [ 7, 13, 33 ]. 4. Si scriva un metodo verifica che riceve come parametro un array V di interi e restituisce un booleano. In particolare, il metodo restituisce true se ogni elemento V[i] successivo al primo (i > 0) è pari alla somma i + V[i-­‐1], cioè dell’indice della posizione che esso occupa e del valore dell’elemento che lo precede; altrimenti il metodo restituisce false. Ad esempio, se V=[5, 6, 8, 11, 15, 20, 26], il metodo restituirà true, in quanto: V[1] = 1 + V[0], V[2] = 2 + V[1], e così via. Esercizi su matrici Si scriva un programma per elaborare matrici quadrate 5x5 contenente i seguenti metodi: 1. Un metodo duplicati che riceve una matrice di interi M e restituisce true se M presenta elementi duplicati, false altrimenti; 2. Un metodo seleziona che riceve una matrice quadrata di interi M e due numeri r e c e restituisce una matrice contenente due righe, ottenute rispettivamente invertendo la riga r di M e la colonna c di M. Si assuma che i valori di r e c siano validi per le dimensioni di M; 3. Un metodo ripetuti che riceve in input una matrice M e un intero r e restituisca un array di interi in cui siano memorizzati i valori presenti esattamente r volte in M; 4. Un metodo main che utilizzi i metodi precedenti. Esempio: sia M la matrice riportata a destra, allora: 1. duplicati(M)  true 2. seleziona(M,1,3)  16 21 -­‐9 9 17 3 M = 3. ripetuti(M,2)  22 8 -­‐3 7 14 22 3 17 9 8 21 16 33 27 44 51 17 22 51 21 22 13 8 1 -­‐3 22 4 2 0 17 -­‐9 -­‐3 Si realizzi un programma per la gestione di matrici quadrate 5x5 che contenga almeno i seguenti metodi: 1. un metodo creaVettoreSegmentiOR che riceve in ingresso una matrice quadrata A e restituisce un array H in cui la generica posizione i contiene la somma degli elementi appartenenti al segmento Si (si vedano gli esempi nei box tratteggiati in figura); 2. un metodo creaVettoreTI che riceve in ingresso una matrice quadrata A e restituisce un vettore contenente tutti gli elementi posti nel triangolo inferiore al di sotto della diagonale principale che sono numeri pari con indice di riga pari; 3. un metodo annullaRigheDispari che riceve in ingresso una matrice quadrata A e pone a zero il valore di tutti gli elementi delle sue righe di indice dispari. 4. un metodo main in cui viene letta da input una matrice quadrata A di interi, e vengono opportunamente invocati i metodi al punto 1. 2. e 3. Esempio: 6 2 11 9 12 S1 1. H= [40, 27, 15, 8, 3] 2. [14, 10, 12, 10] 8 13 10 3 1 S2 A= 14 21 11 2 2 S3 8 1 13 1 7 S4 10 17 12 10 3 S5 3. 6 2 11 9 0 0 0 0 12 0 14 21 11 2 2 0 0 0 0 0 10 17 12 10 3 
Fly UP