Langages de programmation TP6

Slides:



Advertisements
Présentations similaires
Strings et Tableaux en Java
Advertisements

C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
1/1/ Synthèse TD 3 Classe et adresse IP Bertrand Chesneau Morgan Nouet.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
D.Enselme : VARI-NFP 135 cours n°5 1 Chapitre 5 : conception de programmes Décomposition par raffinements successifs Décomposition itérative Décomposition.
CINI – Li115 1 Semaine 4 Révisions ● Questions de cours ● Types des expressions ● Déclaration de variables ● Instruction conditionnelle et boucles ● Structure.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ Cycle de vie ● La vie d'un objet ● Destructeur ● Gestion de mémoire dynamique.
Tableaux en C Mardi 2/05.
Semaine 8 Retour sur les tableaux : fonctions et récursivité
Terminaux virtuels (VTY)
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
JAVA.
Ajouter le code dans une page html
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Environnement de développement des BD
LES TABLEAUX EN JAVA.
Algorithmiques Abdelbasset KABOU
Eléments d’Informatique Cours11 – Allocation dynamique, listes chaînées Catherine Recanati.
Pointeurs et langage C.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Représentation de l’information en binaire:
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes
I21 Algorithmique et programmation II
Principes de programmation (suite)
11ième Classe (Mardi, 18 novembre) CSI2572
de toute série statistique
Langages de programmation TP7
Les expressions régulières en javascript
Semaine 11 Les pointeurs (suite)
Les fonctions.
Les fonctions.
Algorithmiques Abdelbasset KABOU
Principes de programmation (suite)
Tableaux à plusieurs dimensions en langage C
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Langages de programmation TP3
Langages de programmation TP10
Formation Microsoft® Office SharePoint® Server 2007
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Cours N°9: Algorithmiques Les Tableaux 1
Les tableaux.
Programmation en C++ C++ de base
Cours N°10: Algorithmiques Tableaux - Matrices
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Calcul Scientifique Initiation à SCILB
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Royaume de Maroc Université Hassan Premier Settat Faculté des Sciences et Techniques de Settat LA CLASSIFICATION K-MEANS SOUS R /MATLAB Master :Automatique.
Les classes et les objets
Langages de programmation TP11
Filière Génie Civil – 2018 Langage C Tableaux – Exercices de révision
RABAH M ed Ali 2018/2019
PROGRAMMATION ET ENSEIGNEMENT
Exercices récapitulatifs
Flowchart Itération Cours 04.
Principes de programmation (suite)
Piles et files.
Programmation Scratch
Tableaux Cours 06.
Le langage C# : Partie 1.
LISTES.
STREAMS (et fichiers).
Lecture/Écriture de fichiers (I/O)
1. 2 TABLEUR: Calc mars 19 Myriam Boullanger - Bureautique - Calc Suite Gratuite Libre Office Dans le navigateur (Internet Explorer, Google Chrome, FireFox,…),
Structure de données Les listes.
TP N°4 Développement d’ une application
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
La programmation dynamique
Transcription de la présentation:

Langages de programmation TP6 Prof. Maria-Iuliana Dascălu Assist. Iulia-Cristina Stănică iulia.stanica@gmail.com

Objectifs pour aujourd’hui La lecture du clavier Scanner BufferedReader Les fonctions récursives Les tableaux dynamiques (ArrayList)

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);

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.

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.

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());

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).

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

Exemple 1 La fonction “factoriel”:

Exemple 2 Les nombres de Fibonacci

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

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).

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); }

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

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

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]

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.

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.

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 ->

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]