User Tools

Site Tools


in202:seance_3:td_3:part_i

This is an old revision of the document!


TD3 - Partie 1 - Les fonctions génériques

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.

Liens vers les éléments syntaxiques C++

in202/seance_3/td_3/part_i.1617867919.txt.gz · Last modified: 2021/04/08 07:45 by bmonsuez