algorithme test memoire - C - Programmation
Marsh Posté le 29-03-2010 à 19:48:42
elephantdream a écrit : Bonjour! |
Bonjour,
ben ca pourrait ressembler à
1- tu initialises tes données (creer 10 nombres que tu stockes dans un tableau + creation tableau réponse)
2- tu les affiches pendant 10 secondes
3- tu effaces l'ecran
4.1 debut de boucle tant que (l'utilisateur a pas trouvé les dix et temps restant disponible)
4.2 demander un nombre a l'utilisateur
4.3 tester le nombre et modifier les tableaux qui vont bien
4.4 afficher l'etat a l'utilisateur (trouvé, combien, etc)
4.5 fin de boucle
5- Résultat finaux (a t il trouvé dans le temps imparti, combien de bonne réponse, combien d'essai...
6-fin
Marsh Posté le 29-03-2010 à 19:59:35
merci pour les réponses
Oui, en fait, c'est ce à quoi j'ai pensé, sauf que c'est l'organisation de programe et les boucles à choisir qui me posent probleme, voila à quoi ressemble ce que j'ai fait:
algo test mémoire
var: tableau(i), tableau(l), i, l, nombre(donné par l'utilisateur), nbj(nombre des réponses justs),
debut
pour (i de 0 à 9)
tableau(i)<=rand()%1000
tableau(l)<=0
ecrire(tableau(i)
ecrire(rien)
effacer
fin pour.
pour (i de 0 à 9)
ecrire(donne un nombre)
lire(nombre)
l<=0
fin pour
tantque (nombre#tableau(l) et l<9)
l<=l+1
fin tan que.
si nb#tableau(l)
alors ecrire (c'est incorrect)
sinon si tableau(l)=i
alors ecrire (nombre correct mais déja donné)
sinon ecrire(nombre correct)
tableau(l)<==1
nbj<==nbj+1
finsi
ecrire(nombre de repense just est nbj)
voila ce que j'ai trouver, mais c'est incomplet, je sais pas si c'est bien ça et je ne vois pas comment afficher les valeurs non trouvées.
merci de m'aider SVP
Marsh Posté le 29-03-2010 à 20:10:53
Pour le tirage aléatoire, je pense qu'il vaut mieux faire un tirage sans remise. Si non, ça va pas être possible.
Pour les valeur non trouvé, à chaque case de tableau de contrôle, correspond une case du tableau de donnée,
Marsh Posté le 29-03-2010 à 20:20:35
breizhbugs a écrit : |
Comment on fait pour incrémenter le temps ?
Marsh Posté le 29-03-2010 à 20:20:43
d'accord, sinon, tu peut m'eclairer un peut cette histoire de valeurs correspondante! c'est un peu flou! merci!
Marsh Posté le 29-03-2010 à 20:22:25
on fait, dans mon sujet, il y a rien par aapport au temps, c'est l'utilisateur qui doit faire enter une fois qu'il a mémorisé les valeur, en fait, c'est très basic, ce n'est pas un vrai jeu quoi!
Marsh Posté le 29-03-2010 à 20:24:42
elephantdream a écrit : d'accord, sinon, tu peut m'eclairer un peut cette histoire de valeurs correspondante! c'est un peu flou! merci! |
Tu as un tableau de données de dix cases de zéro à neuf et un tableau de contrôle de dix case de zéro à neuf également dans lequel tu marques zéro par défaut pour les valeurs non trouvées et un pour les valeurs trouvées.
Il te suffis de parcourir de tableau de contrôle, et pour chaque case i à zéro tu affiche la case i correspondante du tableau de données.
Marsh Posté le 29-03-2010 à 20:25:19
elephantdream a écrit : on fait, dans mon sujet, il y a rien par aapport au temps, c'est l'utilisateur qui doit faire enter une fois qu'il a mémorisé les valeur, en fait, c'est très basic, ce n'est pas un vrai jeu quoi! |
Et tu termine le programme comment ?
Marsh Posté le 29-03-2010 à 20:29:15
voila, c'est la question que je me pose!, on fait, à la fin, il faut afficher les valeurs non trouvés, et le nombre de réponses justes! si ta regarder mon programme, c'est ca que j'ai essayer de faire sauf que ce n'est pas encore au point je pense! tu peux m'expliquer comment on fait pour faire correspondre une valeur de tableau(i) dans tableau(l)?
Marsh Posté le 29-03-2010 à 20:32:51
pour i allant de 0 à 9 faire
si tableau de contrôle(i) == zéro alors
afficher tableau de données(i);
fi si
fin pour;
C'est pas plus compliqué.
Marsh Posté le 29-03-2010 à 22:31:52
elephantdream a écrit : merci pour les réponses |
Plop,
Quelques remarques:
- En algorithmie, je pense qu'on peut considérer l'indiçage des tableaux comme commençant a 1, C'est une spécificité du language de programmation choisie comme le C de le faire commencer a zero; tous les language ne sont pas comme ça.
- Tes tableau(i) et tes tableau(l) doivent avoir un nom plus explicatif du style ENTIER nombreAMemoriser[1..10]
Je pense que tu dois aussi afficher ce que tu vas demander à l'utilisateur: ECRIRE("Retenez ces 10 nombres:" ) ... ECRIRE("Saisissez un nombre:" )
Si je parlais du contrôle du temps, c'est parce que ca pose la question: que se passe t il si l'utilisateur se souvient plus de tous les nombres et qu'il veut arreter? Que le programme surveille le temps qui passe est une solution
Dans ton algo, tu demandes de saisir les 10 nombres d'un coup et sans les stocker:
Code :
|
Il serait plus facile je pense de traiter une demande a la fois (enfin ca peut etre un choix plus ou moins facile pour l'utilisateur!):
Code :
|
Marsh Posté le 29-03-2010 à 19:16:02
Bonjour!
j'ai besoin de votre aide pour la résolution d'un exercice en algorithmiqque.
l'exercice s'intitule test de mémoire utilisateur:
En fait, je dois ecrire un algo qui permet de génerer dix nombres aléatoirs puis de les cachés, ensuite, il demande à l'utilisateur de les redonner un par un sans suivre l'ordre.
si la valeur donner par l'utilisateur est just, on lui dix c'est just, sinon, c'est faux.
si la valeur donnée est just mais déja donnée on lui dit, just mais déja donnée.
au final, il faux afficher le nombre des réponses justes, ainsi que les valeur non trouvées.
voila moi j'ai pensé à un tableau, de 10 cases, dans les quelles je vais generer des nombres aléatoire entre 0 et 1000, puis un autre tableau permetant de marquer les répenses trouvés par un 1 et les non trouvé par .
sauf que je ne vois pas comment structurer mon programme, merci de m'aider!