Structures de données et algorithmes – TP2

Slides:



Advertisements
Présentations similaires
Ce, Cette, Ces Ce/Cette/Ces means this, that or these. Ce is used for masculine nouns Cette is used for feminine nouns Cette is used for feminine nouns.
Advertisements

Cours n° 7 Standard Template Library II.
Cours n° 6 Standard Template Library I.
C++ 6ème cours Patrick Reuter maître de conférences
Au programme du jour …. Un peu plus de structures de données
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Résolution structurée des problèmes.
Exercice #20 1. Quelle est la date aujourd’hui?
Cours n° 8 Conception et Programmation à Objets
La programmation générique avec la STL EIUMLV - Informatique et Réseaux 99 Benoît ROMAND.
Exercice 1 1 (père) et 1 (fils) 1 (père) et 0 (fils)
Programmation par Objets et Java
ALGORITHMES RECURSIFS
IPA – Catherine Faron Zucke et Anne Marie Deryr. suite ordonnée d'éléments de taille variable ArrayList liste; liste = new ArrayList (); Ne peuvent contenir.
1 Cours JAVA / Y.Laborde Java : Les types génériques ( ) LES TYPES GENERIQUES : Introduction (diapo 2) Déclaration dun type générique (3) 1re déclaration.
Structures de données et algorithmes – C5 Maria-Iuliana Dascalu, PhD
Asking and telling what classes you have To ask what classes a friend or family member has Tu as quels cours…? Tu as quels cours aujourdhui? Tu as quoi…?
Langage Oriente Objet Cours 4.
Bibliothèque standard du C++
Ma famille.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Structures de données IFT-2000
Base de programmation Script unity en c#.
Structures de données IFT-2000 Abder Alikacem La librairie STL du C++ Département dinformatique et de génie logiciel Édition Septembre 2009.
Le corps The body This powerpoint is on Frog for you to revise at home.
Java, les objets : tout de suite ! Rassembler, grouper les objets
Masters IIGLI et IGLII – Programmation générique et conception objet – – Claude Montacié 1 Cours n° 4 Polymorphisme II.
Structures de données IFT-2000
Formation C++. Hello World ! #include /* Commentaire sur plusieurs lignes */ int main() { //Affiche hello world std::cout
Programmation Orienté Objet en C++ Ricard julien.
Structures de données IFT-2000
Objectifs À la fin de ce cours, vous serez capables de :
Packages et Types De la Spécification Formelle A l'implémentation Ada.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Méthodes de tri.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Conjugation for –er verbs
Les tables de hachage
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
C’est combien ? Les euros
Les surcharges d'opérateurs
CSI 1502 Principes fondamentaux de conception de logiciels
Travail 1 Tutorial de mathématique Français English.
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Prendre is NOTa regular RE verb. It is an irregular verb. Prendre = to take (can also mean to have when used with food) Prendre = to take (can also mean.
Tas et Tas Tri Exercice 1 Insérer dans un min-tas vide des numéros suivants:25, 17, 36, 2, 3, 100, 1, 19, 17 Supprimer.
Annual Best Practices Sessions / Ateliers annuels sur les pratiques exemplaires PERFORMANCE MONITORING, REPORTING AND EVALUATION: WHAT’S THE POINT OF.
Conception de Programmes - IUT de Paris - 1ère année Cours 2 – Références et passage de paramètres Les Références –Introduction aux références.
Pthread Ordonnancement. #define _MULTI_THREADED #include #ifndef _CHECK_H #define _CHECK_H /* headers used by a majority of the example program */ #include.
Liste Une liste est une séquence d’éléments. Concept important: Chaque élément possède une position dans la liste. Notation: De quelles opérations a-t-on.
Introduction à la programmation objet avec java
Mathematics In the mathematics classroom, there are some chairs with desks, there is a whiteboard with markers and chalk. There is a teacher desk, there.
Structures de données et algorithmes – TP7 Maria-Iuliana Dascalu, PhD
FRANÇAIS DEUX Deux pronoms dans la même phrase.  It is possible to use both a direct and an indirect object pronoun in the same sentence.
La Francophonie et le temps... Countries where French is spoken and the weather...
Travail # 1 Tutorial de mathematiques Foyer : 140
DÉCORER AVEC DES UNITÉS Séminaire technique Cours C++(++) 1.
Warm up Lesson 8. You are shopping for some school supplies. A salesperson comes to help you find things. ● Bonjour. ● Je cherche une trousse, s’il vous.
Les ÉglisesLes Musées Les MonumentsLes AutresLes Endroits
Mercredi neuf septembre By the end of this lesson you will able to understand words and instructions commonly used in French classes.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
With a partner, try to name all these things without looking at your vocab list!!
Passé Composé with Etre Il est allé au parc. Elle est revenue au chateau. Ils sont allés à la campagne. Elle est partie.
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Où est la mouche? Paul Widergren © Où est la mouche? The object of this game is to find the fly among the food items. Choose a letter from the index.
Personnages dessinés à la main
Qu’est-ce que c’est?. Qu’est-ce que c’est? It’s a compound tense that we use in French to talk about things that happened in the past!
4C Telling Exact Time.
Transcription de la présentation:

Structures de données et algorithmes – TP2 Maria-Iuliana Dascalu mariaiuliana.dascalu@gmail.com

Objectifs pour aujourd’hui Transition de C (TP1) à C++ (TP2) Struct vs. classes en C++ Templates

Exercice 1 Implémentez une fonction pour trier un tableau de 5 éléments de type double. Utilisez un mécanisme d'échange, qui doit être mis en œuvre dans une autre fonction. (Tip: Passage par valeur/passage par référence)

Exercice 2 Ajoutez à classe complex de nouvelles méthodes pour l'ajout, la division et la multiplication de nombres complexes.

#include <iostream> class complex { public: complex();// constructor without params complex(double param_re, double param_im){//constructor // use to initialize the members of the class with values and to allocates memory for some members this->re=param_re;//re=param_re; this->im=param_im;//im=param_im; } double getRe(){//method: getter return re; double getIm(){//method return im; complex complex_conjugate() {//method complex conjugate(re,-im);//object of type complex return conjugate; private: double re; double im; }; int main(){ complex number(2,3);// number is an object and complex is a class cout<<"The complex number is: "<<number.getRe()<<"+"<<number.getIm()<<"i"<<"\n";//number.getRe() is a method call complex conj=number.complex_conjugate(); cout<<"The conjugate number is: "<<conj.getRe()<<conj.getIm()<<"i"<<"\n"; return 0;}

Template class template<typename T> class KeyStorage { public: int key; T member; //a generic member: we don't know its type when creating the class }; int main() //Everything happens to compile time, not to run time //The compiler analyses the way in which you use the class KeyStorage<long> keyElement1; KeyStorage<int> keyElement2; return 0; }

Exercice 3 Faisez un constructeur, un destructeur, un getter et un setter pour la classe de modèle KeyStorage.

Aussi bon… #include <iostream.h> template<typename Tip1, typename Tip2> class KeyStorage { public: int key; Tip1 member1; //a generic member: we don't know its type when creating the class Tip2 member2; }; int main() KeyStorage<long, char> keyElement1; keyElement1.key=1; keyElement1.member1 = 6; keyElement1.member2 = 's'; cout<<keyElement1.key<<keyElement1.member1<<keyElement1.member2<<"\n"; return 0; }

Function Templates template<typename T> T getMax(T a, T b) { return a > b ? a : b; } …………………………………………………….. getMax<int>(2, 3); getMax<double>(3.2, 4.6);

Exercice 4 Considérons la fonction suivante qui échange deux objets: template <class T> void swap(T& ob1, T& ob2) { T aux = ob1; ob1 = ob2; ob2 = aux; } Mettez en oeuvre une fonction qui trie un tableau de N = 5 éléments de type double à l'aide de la fonction ci-dessus.

Exercice 5 Mettez en oeuvre la structure suivante nommée Point: struct Point { //public: int coord_x, coord_y;//the coordinates of a point void reset() //places the point into the origin coord_x = coord_y = 0; } void moveX(int x); //moves the point horizontally with x positions void moveY(int y); // moves the point vertically with y positions void moveXY(int x , int y); // moves the point horizontally and vertically }; Faisez un programme dans lequel on mettre en oeuvre le déplacement d'un point à l'intérieur les coordonnées d'un rectangle ayant les dimensions 1 x N (N étant donné par l'utilisateur), en partant de l'origine. Compilez et exécutez l'application! Ensuite, remplacez struct avec classe et faisez la même chose!

Exercice 6 Considérons la structure de Ex.5 et la fonction suivante qui échange deux objets de type Point! void Schimba(Point &A, Point &B) { int x = A.coord_x; A.coord_x = B.coord_x; B.coord_x = x; int y = A.coord_y; A.coord_y = B.coord_y; B.coord_y = y; } Créez un programme qui trie 5 points, en prenant en compte la distance de l'origine.

Devoir Terminez les exercices donnés en classe!!! Ecrivez un programme en C++ dans laquelle vous définissez une classe nommée BankAccount qui contient les opérations bancaires usuelles (dépôt, retrait, afficher équilibre, propriétaire d'affichage). Testez la classe.