Table of Contents

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

1) nella versione di questo esercizio inviata sulla mailing list qui c’era righe invece di colonne