-
Exo d'algo
Bonjour, je suis étudiant en premiere année et je vient de commencé en info. G de gros problemes de compréhension mais le prof nous donne kelkes exo a faire a la maison ke je narrive pa a faire. pourrié vou m'aidé?:
Je dois réaliser un petit programme qui manipule des tableaux avec notamment le tri de leurs éléments et leur affichage de sorte que cela devienne un utilitaire de manipulation de données stockées a l'aide d'un tableau ( on définit de la sorte un type MonTab )
On suppose que l'on manipule des tableaux de N ( fixé ou constant ) éléments de type MonType. On souhaite faire le minimum d'hypotheses sur MonType de sorte que les algorithmes ( et donc les méthodes correspondantes ) soient les plus réutilisables possibles.
Remarque: un type s'implantera a l'aide d'une classe.
Merci de m'aider si vous avé le temps .
-
et où se situe ton problème ?
dans le pseudo code ? dans l'énoncé ?
il s'agit d'imaginer un algorithme de tri (il en existe des tas : tri à bulles, tri par insertion, tri par fusion, quicksort ...) ainsi qu'un algo de parcours pour ton affichage de données. L'algo de parcours est tivial, une simple boucle et le tour est joué.
Par contre cet exercice met en avant des points très intéressants grâce au type MonType dont on ne connait rien.
Pour pouvoir trier ton tableau, il va te falloir une fonction de comparaison, pour déterminer si un MonType est inférieur ou non à un autre. De même pour l'affichage d'un MonType, il va te falloir tenir compte du type de données qu'il contient (entier, chaine ...)
Donc en gros, pour le tri, tu vas te retrouver avec l'un des algos qu'on trouve massivement sur internet avec une petite modification : ce sera ta fonction de comparaison [par exemple, une fonction qui prend 2 MonType en paramètres et qui renvoie un booléen].
Et pour ton affichage, tu vas boucler sur une fonction d'affichage d'un MonType.
Cet exercice ne me parait pas spécialement adapté pour étudier les algos (à cause du MonType qui est bien abstrait et mystérieux), mais il me parait impeccable pour appréhender les concepts objets qui vont venir.
En effet, les fonctions d'affichage d'un MonType et de comparaison de deux MonType seront des fonctions membres de la classe MonType.
On pourra donc écrire un code de tri et d'affichage qui sera générique, quel que soit ce qu'on veut trier ou afficher.
-
C justement le MonType qui m'ennui je ne compren pa vrément a koi il correspond.
Le prof nous a dit de dabor créer l'algorithme ki crée une variable de type Montab en utilisant la fonction aléat ( ) mais je ne voit pa comen l'utiliser.
-
MonType est le nom d'une classe qui peut contenir n'importe quel type de données : entier, flottant, chaine de caractères ou même tableau ou encore autre chose.
Il faut donc que tu écrives un algo indépendant du type de données représenté par MonType. Tu te contentes d'appeler une foncton de comparaison.
Le contenu de cette fonction va dépendre de la nature de MonType, que tu ne connais pas pour l'instant. Donc, dans l'immédiat, tu dois juste écrire l'algo de tri sans tenir compte de MonType
-
Oui, ton prof veut de faire toucher du doigt la généricité.
Que tu manipule un type précis (Integer, float, ...) ou un type quelquonque, tes raisonnement sont les mêmes. Le seul point délicat sont les comparaisons entre ces éléments : puisque tu ne connais pas le véritable type des données à l'avance, tu ne peut pas utiliser les opérateurs de comparaison standard ('=','>','<'). Exemple : Si je décide de créer un tableau (monTab) de fuits (monType : fruit), les opérateurs traditionnels ne vont pas fonctionner : comment veux-tu que le compilateur résolve l'expression 'fruit1<fruits2' ? Il faut donc redefinir tes propres opérateurs de comparaisons, adapté aux types types que tu va réellement manipuler.
Après, selon le langage de programmation utilisé, cette notion de généricité va être prise en charge de différentes manière :
en ADA : utilisation du mot clé generic et instanciation via un new
en JAVA : la classe racine Object permet nativement cette forme de généricité
etc...