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). |
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.
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 colonne1) con indice multiplo di 3 decrementati del valore dell’elemento alla loro sinistra (o 0 se questo non esiste).