Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Langages de programmation TP6
Prof. Maria-Iuliana Dascălu Assist. Iulia-Cristina Stănică
2
Objectifs pour aujourd’hui
La lecture du clavier Scanner BufferedReader Les fonctions récursives Les tableaux dynamiques (ArrayList)
3
Lire du clavier ~ La classe Scanner~
Utilise l'entrée standard System.in (pour l’affichage, on utilisait la sortie standard System.out) On doit créer un objet Scanner: Scanner sc = new Scanner(System.in); Vous devez importer le paquet nécessaire: import java.util.Scanner; Récupérez ce que vous tapez: System.out.println("Veuillez saisir un mot :"); String str = sc.nextLine(); System.out.println("Vous avez saisi : " + str);
4
Lire du clavier ~ La classe Scanner~
La classe Scanner fonctionne avec plusieurs types de variables: Scanner sc = new Scanner(System.in); int i = sc.nextInt(); double d = sc.nextDouble(); long l = sc.nextLong(); byte b = sc.nextByte(); //Etc.
5
Lire du clavier ~ BufferedReader~
Créer un objet de type BufferedReader pour lire de l'entrée standard System.in: BufferedReader bf=new BufferedReader (new InputStreamReader (System.in) ); Vous devez importer les paquets nécessaires: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; On doit gérer les exceptions possibles: public static void main(String[] args) throws IOException Obs: Les imports, l’action de gérer les exceptions peuvent être faits automatiquement par Netbeans.
6
Lire du clavier ~ BufferedReader~
On prend chaque ligne lu du BufferedReader: String t = bf.readLine(); int a; double d; a = Integer.parseInt(bf.readLine()); d = Double.parseDouble(bf.readLine());
7
Les fonctions récursives
Def: une fonction qui s'appelle elle-même lors de son exécution. la fonction se répète plusieurs fois et renvoie le résultat à la fin de chaque itération Récursivité versus boucle itérative nous utilisons la récursivité lorsque notre problème peut être réduit à un autre problème, plus simple (qui peut être résolu après une réduction).
8
Les fonctions récursives
Chaque récurrence doit avoir les caractéristiques suivantes: Un scénario de base pour lequel nous avons une solution et une valeur de retour. Une façon de rapprocher notre problème du cas de base. Un appel récursif
9
Exemple 1 La fonction “factoriel”:
10
Exemple 2 Les nombres de Fibonacci
11
Les tableaux dynamiques et hétérogènes- ArrayList
Combinaison entre listes et tableaux => les avantages des deux. Def: liste dynamique – on peut modifier le nombre d’éléments ajoutés dans la liste Def: liste hétérogène – on peut avoir plusieurs types de données dans la liste
12
Les tableaux dynamiques et hétérogènes- ArrayList
Declaration: ArrayList<Integer> list = new ArrayList<Integer>(); On doit importer le paquet: import java.util.ArrayList; Ajouter des éléments dans l’ArrayList: list.add(10); list.add(15); list.add(20); Obs: on peut aussi ajouter un élément en spécifiant aussi la position (l’index).
13
Les tableaux dynamiques et hétérogènes- ArrayList
Fonctions utiles: Dimension: int count = list.size(); Parcours des elements: for (int i = 0; i < list.size(); i++) { int value = list.get(i); System.out.println("Element: " + value); }
14
Les tableaux dynamiques et hétérogènes- ArrayList
Fonctions utiles: Trouver la position d’un element: int index = list.indexOf(100); //premier int lastIndex = list.lastIndexOf(100); //dernier Effacer: list.remove(0); //efface le premier element
15
Exercices 1) Utilisez une fonction récursive pour calculer les polynômes d’Hermite. 2) Inversez un String en utilisant une fonction récursive. Hints: Appliquer les pas récursifs pour un « substring » Ajouter a chaque pas le premier caractère du string utilisé dans l’appel
16
Exercices 3) Ecrivez un programme qui lit du clavier deux ArrayList avec certains mots. Créez un troisième ArrayList contenant les mots communs des deux listes précédentes. 4) Ecrivez une fonction qui accepte un ArrayList de nombres entiers comme paramètre et efface les paires adjacents de la liste si l’élément gauche de la liste est plus grand que l’élément droit. Chaque élément gauche a un indice pair, chaque élément droit a un indice impair. Ex: [3, 7, 9, 2, 5, 5, 8, 5, 6, 3, 4, 7, 3, 1] devient: [3, 7, 5, 5, 4, 7]
17
Devoir 1) Écrivez une fonction récursive qui calcule le n-ième élément d'une suite arithmétique. La fonction a deux paramètres: le premier élément de la suite et la raison r. Puis, dans la méthode main du programme, considérez le tableau v avec 5 éléments: v={2,4,6,8,10}. Vérifiez si les éléments du tableau sont en suite arithmétique et calculez le sixième élément de la suite, à l'aide de votre fonction. Rappel: ak = a1 + (k - 1)r, ak est le k-ième élément de la suite arithmétique a, a1 est le premier élément de la suite arithmétique et r est la raison.
18
Devoir 2) Écrivez une fonction récursive qui calcule combien de fois une lettre apparaît dans un texte. La fonction a deux paramètres: la lettre (char) et le texte (String). Hint: Pour obtenir la lettre d'une certaine position dans la chaîne S, utilisez la fonction charAt(i): Puis, dans la méthode main du programme, considérez la chaîne “Ana are mere” et affichez combien de fois la lettre “a” apparaît dans le texte.
19
Devoir 3) Lisez du clavier un ArrayList. Effacez tous les éléments dupliqués de la liste. Ex: (1,2,1,3,2,1,8,5) va devenir (1,2,3,8,5). 4) Ecrivez un programme qui lit du clavier un certain nombre de Strings et fait le tri dynamiquement, en insérant le String sur la position correcte a chaque pas dans l’ArrayList. Hint: Vous pouvez utiliser une méthode appelée compareTo. Exemple ->
20
Devoir 4) (suite) Par exemple:
Shai Ralph Hillary Tom Barbara Fred vont produire le développement suivant de l’ArrayList: [Empty] [Shai] [Ralph, Shai] [Hillary, Ralph, Shai] [Hillary, Ralph, Shai, Tom] [Barbara, Hillary, Ralph, Shai, Tom] [Barbara, Fred, Hillary, Ralph, Shai, Tom]
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.