====== Esercizi vari ====== ===== Matrici ===== ==== Esercizio 1 ==== Assumendo di avere la seguente matrice: string m[4][4] = { "123", "456", "678", "901", "234" , "567", "890", "123", "456", "789", "012", "345", "678", "901", "234", "567" }; e di avere le seguenti due funzioni: void g(string&); //domanda: perche' e' necessario questo prototipo **qui**? void f(string s) { if ((atoi(s.substr(0,1).c_str()) % 2) ==0) g(s); else s = "000"; } void g(string & s) { if ((atoi(s.substr(0,1).c_str()) % 2) ==0) s = s.substr(0, s.length() -1) + "a"; else s = "000"; } Qual รจ il contenuto della matrice m dopo aver eseguito il seguente frammento di codice (da ''main'')? for (int i=0; i<4; i++ ) for (int j=0; j<4; j+=2 ) if(i%2) g(m[i][j]); else f(m[i][i]); **La funzione atoi**. Prende in input una stringa (stile "C") e restituisce un intero. Ad esempio per la stringa "1024" restituisce l'intero 1024. Osservare che il metodo substr della classe string restituisce una stringa che va poi resa "C-style" con il metodo c_str() (altrimenti atoi non funziona). ==== Esercizio 2 ==== **A.** Scrivere il prototipo di una funzione f(...) che prende in ingresso una matrice di NxN interi e un intero k e che restituisce un booleano **B.** Implementare la funzione f(...) facendo in modo che essa restituisca true se la somma dei valori sulle righe di indice pari e la somma dei valori sulle colonne di indice dispari differiscono per una quantita' al piu' pari a k. ==== Esercizio 3 ==== **A.** Scrivere il prototipo di una funzione f(...) che prende in ingresso una matrice di NxM interi e un intero k e che restituisce un intero. **B.** Implementare la funzione f(...) facendo in modo che essa restituisca il risultato della somma degli elementi che si trovano sulle colonne((nella versione di questo esercizio inviata sulla mailing list qui c'era //righe// invece di //colonne//)) con indice multiplo di 3 decrementati del valore dell'elemento alla loro sinistra (o 0 se questo non esiste).