This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
in202:seance_3:td3:part_i [2021/04/06 11:08] bmonsuez created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TD3 - Partie 1 - Les fonctions génériques ====== | ||
- | |||
- | [[..:td3|Sujet complet]] | ||
- | |||
- | ===== Question 1 ===== | ||
- | |||
- | Nous considérons la fonction ''find'' suivante qui recheche si un élément est présent dans un élément dans un tableau. | ||
- | |||
- | <code cpp> | ||
- | int find(const int* theArray, int theArrayLength, int theValue) | ||
- | { | ||
- | for(int index = 0; index < theArrayLength; index ++) | ||
- | { | ||
- | if(theArray[index] == theValue) | ||
- | return index; | ||
- | } | ||
- | return -1; | ||
- | } | ||
- | </code> | ||
- | |||
- | ==== Question 1.1 ==== | ||
- | |||
- | Expliquer ce que fait le code précédent. | ||
- | |||
- | ==== Question 1.2 ==== | ||
- | |||
- | Si nous souhaitons travailler sur des nombres à virgule flottante comme des ''float'' ou des ''double'', que faudrait-il faire pour avoir une telle fonction ? | ||
- | |||
- | ==== Question 1.3 ==== | ||
- | |||
- | Proposer une implantation ''générique'' de la fonction ''find'' qui permette d'écrire un seul code qui fonctionne à la fois avec des types dénotant des valeurs entières mais aussi des nombres à virgule flottante. | ||
- | |||
- | ==== Question 1.4 ==== | ||
- | |||
- | Nous aimerions tester la fonction sur les tableaux suivants : | ||
- | <code cpp> | ||
- | |||
- | </code> | ||
- | |||
- | Vérifier que l'implantation ''générique'' fonctionne correctement. | ||
- | |||
- | ==== Question 1.5 ==== | ||
- | |||
- | Nous aimerions introduire un type point ainsi qu'un tableau de point dont les coordonnées sont entières. | ||
- | |||
- | <code cpp> | ||
- | struct Point | ||
- | { | ||
- | private: | ||
- | int m_x; | ||
- | int m_y; | ||
- | public: | ||
- | Point(): m_x(0), m_y(0) {} | ||
- | Point(int x) : m_x(x), m_y(0) {} | ||
- | Point(int x, int y) : m_x(x), m_y(y) {} | ||
- | |||
- | int x() const { return m_x; } | ||
- | int y() const { return m_y; } | ||
- | }; | ||
- | |||
- | Point* = arrayOfPoints[] = { Point(2,3), Point(4,5), Point(0,0), Point(7, 8) }; | ||
- | |||
- | </code> | ||
- | |||
- | Tester si la fonction ''find'' précédemment définie fonctionne pour rechercher par exemple : ''Point origin = {0, 0}''. | ||
- | |||
- | Expliquer le résultat. | ||