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 dev3
sur 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; }