[ADA]Recherche séquentielle?

Fermé
Spectrom - 18 nov. 2010 à 15:43
 anonyme - 14 nov. 2012 à 14:38
Bonjour à tous, j'ai un travail à faire en Ada, il s'agit d'un générateur de notes aléatoire qui doit générer 30 notes (sur 20) et qui ne peut pas avoir deux notes identiques parmi elles (toutes les notes doivent être différentes), et le tout doit être précis au quart de point, j'ai commencé mon code mais j'ai beaucoup de mal à faire des fonctions.
Je dois faire une autre fonction (ou une procédure peut être) qui permet, une fois la génération aléatoire effectuée, de demander à l'utilisateur d'entrer une note pour voir si elle figure dans la liste de notes générées. Et pour avoir des notes différentes j'ai pensé à faire une autre fonction mais je n'ai pas d'idée :/

Voici ce que j'ai fait pour l'instant:

WITH Ada.Float_Text_IO, Ada.Integer_Text_IO, Ada.Text_IO;
USE Ada.Float_Text_IO, Ada.Integer_Text_IO, Ada.Text_IO;
with Ada.Numerics.Discrete_Random;

PROCEDURE Tirage_Alea IS

TYPE Tab IS ARRAY (Integer RANGE <>) Of float;
T: Tab (1..30);

TYPE Numero IS RANGE 0..80;
package aleatoire is new Ada.Numerics.Discrete_Random(Numero);
USE Aleatoire;
Note : Numero;
G : Generator;
X : Float;
Y : Float;
Chercher: Float;
N: Integer;

function Recherche (T: IN Tab; N : IN Integer; X :IN Float) RETURN Integer IS --pour rechercher la note spécifiée (recherche séquentielle)
Trouve : Integer;
i : integer;
BEGIN
i := 0;
WHILE Trouve /= 1 AND I <= N LOOP
IF T(I) = X THEN
Trouve :=1;
END IF;
end loop;
RETURN Trouve;

END;






BEGIN
Put ("Generation de 30 notes dans 2 secondes");New_Line;
Delay 2.0;
Reset (G);
FOR I IN T'Range LOOP
Note := Random (G);
X := Float(Note) /4.00;
Put(X,2,2,0); New_Line;
END LOOP;
Put ("Donnez une note");
Get (Chercher);
Chercher := Float(Recherche(Tab,N, Chercher));
Put (Chercher);

END tirage_alea;


Ma fonction recherche est à refaire car n'ayant pas trouvé de solution j'ai été voir sur quelques sites et j'ai bricolé un truc bancal.
Les fonctions n'étant décidément pas ma tasse de thé, je souhaiterais avoir un peu d'aide sur ce que je devrais faire pour la fonction recherche et l'autre pour les nombres différents.

3 réponses

Clemzd Messages postés 177 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 7 avril 2013 18
24 nov. 2010 à 16:18
Bonsoir, attention à la triche heu oui oui.
4
Turfdgfdgdgg
24 nov. 2010 à 16:19
Il ne faut pas y aller à la sensation!
0
ta juste a écouté en cour le prof l'a deja expliquer
2
Il faut que tu mettes tes valeurs dans le tableau sinon la recherche n'aboutit pas.
0