Objectifs exercice 2
- Manipuler des tableaux à l’aide de fonctions
- Exercer les tableaux
Travail à faire
Exercice 2.1
Écrivez une fonction prenant un tableau d’entiers en argument et qui retourne comme résultat l’élément le plus grand du tableau.
Exemple : votre fonction doit retourner 5 pour le tableau {2,5,3,1}
Exercice 2.2
Écrivez une fonction prenant un tableau de String en argument et qui retourne comme résultat le nombre de fois que la lettre ‘e’ apparaît dans le tableau.
Exemple : {"hello", "je suis", "edmund"} retourne la valeur 3 car il y a trois 'e' dans ces Strings
Exercice 2.3
- Écrivez une fonction prenant deux tableaux d’entiers en argument et qui retourne comme résultat un tableau qui est la somme des deux tableaux.
- Testez votre fonction sur les deux tableaux ci-dessous pour mettre la somme des deux tableaux dans un tableau
v3. Vérifiez que votre code fonctionne correctement en affichant le contenu dev3sur la console. - Rajoutez dans votre fonction une condition qui vérifie que les deux tableaux ont bien la même taille. Si ce n’est pas le cas, votre fonction doit retourner la valeur
null.
int[] v1 = {1,2,3};
int[] v2 = {4,3,2};
Une solution possible
// Exercice 2.1
public static int findMax(int[] a) {
if (a.length < 1) {
System.err.println("Size of the array was 0");
return -1;
}
// max contains the largest number so far
int max = a[0];
for (int i = 0; i < a.length; i++) {
// if the current element is bigger than max, update it
if (a[i] > max) {
max = a[i];
}
}
return max;
}
// Exercice 2.2
public static int countE(String[] a) {
int cnt = 0;
// Go over all strings
for (int i = 0; i < a.length; i++) {
String current = a[i];
// Go over all chars in current string
for (int pos = 0; pos < current.length(); pos++) {
if (current.charAt(pos) == 'e')
cnt++;
}
}
return cnt;
}
// Exercice 2.3
public static int[] sum(int[] a, int[] b) {
if (a.length != b.length)
return null;
// size of s is a.length or b.length (as they are both equal in size)
int[] s = new int[a.length];
// sums all elements of both arrays
for (int i = 0; i < a.length; i++) {
s[i] = a[i] + b[i];
}
return s;
}
