
Exercice 2
1. ´
Ecrire une m´ethode int nbPos(int[] tab) renvoyant le nombre d’entiers positifs dans
le tableau pass´e en argument.
Correction :
static int nbPos(int[] tab)
{
int res=0;
for (int i=0; i<tab.length; i++)
if (tab[i]>=0) res=res+1;
return res;
}
2. ´
Ecrire une m´ethode int[] nPremier(int n) renvoyant un tableau constitu´e des n+ 1
premiers naturels. Par exemple, nPremier(5) devra renvoyer {0, 1, 2, 3, 4, 5}.
Correction :
Dans toutes les m´ethodes, il faut commencer par cr´eer un tableau de la bonne taille, puis trouver
comment le (( remplir )).
int[] nbPos(int n)
{
int[] res=new int[n+1];
for (int i=0; i<res.length; i++)
res[i]=i;
return res;
}
3. ´
Ecrire une m´ethode int[] sansPremier(int[] tab) renvoyant le tableau pass´e en ar-
gument auquel on a enlev´e le premier ´el´ement.
Correction :
int[] sansPremier(int[] tab)
{
int[] res=new int[tab.length-1];
for (int i=0; i<res.length; i++)
res[i]=tab[i+1]; //attention au d´ecallage d’indice.
return res;
}
4. (bonus) ´
Ecrire une m´ethode int[] intercalle(int[] tab) renvoyant le tableau pass´e
en argument, auquel on a intercall´e des z´eros. Par exemple, intercalle({2, 3, 5})
devra renvoyer {2, 0, 3, 0, 5}.
Correction :
Il faut voir tout d’abord que la taille du tableau renvoy´ee doit ˆetre 2tab.length −1.
Ensuite, il faut faire assez attention au remplissage, et ne pas s’emmeler les pinceaux dans les
indices. Une bonne question `a se poser, qui permet de trouver ses erreurs, est de se demander si
pour les valeurs extr`emes des boucles, on n’est pas en train de sortir des bornes du tableau.
Il faut aussi v´erifier qu’on a bien r´ecup´er´e tous les ´el´ements du tableau de d´epart.
4