====== TD3 - Partie 1 - Les fonctions génériques ======
[[..:td_3|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.
int find(const int* theArray, int theArrayLength, int theValue)
{
for(int index = 0; index < theArrayLength; index ++)
{
if(theArray[index] == theValue)
return index;
}
return -1;
}
==== 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 :
int arrayOfIntegers[8] = {2, 4, 3, 7, 1, 8, 9, 5 };
float arrayOfFloats[6] = {1.3, 3.4, 2.3, 4.7, 1.9, 7.2 };
Vérifier que l'implantation "générique" fonctionne correctement en recherchant un entier ou un nombre à virgule flottante dans le tableau en question.
==== Question 1.5 ====
Nous aimerions introduire un type point ainsi qu'un tableau de point dont les coordonnées sont entières.
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[4] = { Point(2,3), Point(4,5), Point(0,0), Point(7, 8) };
Tester si la fonction ''find'' précédemment définie fonctionne pour rechercher par exemple : ''Point origin = {0, 0}''.
Expliquer le résultat.
==== Code présenté pendant le cours ====
{{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td3/part1/part1.cpp|''part1.cpp''}} Fichier principal contient les fonctions de test et le main.
{{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td3/part1/find.h|''find.h''}} Définition de la fonction générique de recherche.
==== Liens vers les éléments syntaxiques C++ ====
[[cpp:syntax:functions:overload|Les fonctions surchargées en C++]]
[[cpp:syntax:functions:generic|Les fonctions génériques en C++]]
===== Navigation =====
[[.:part_ii|Deuxième partie]]