RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Vérification

Forum : ALGORITHMES
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ ALGORITHMES

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM ALGORITHMES

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
boobie
Nouveau membre
Inscrit : 18/08/2007
Messages : 6
Message
#141125
Posté le 18/08/07 à 19:47
Bonjour, je débute dans le pseudo-langage algorithmique et je voudrai vous demander une vérification d'un algorithme que je viens d'écrire. Cela reste très basique, mais c'est pour vérifier quelques notions. Alors j'ai voulu réaliser un tableau rempli d'entiers que l'utilisateur choisis lui même, puis d'une recherche de la valeur encore choisie par cet utilisateur. J'ai voulu opérer suivant une manière itérative basique, puis le refaire avec la notion de fonction :

Première façon :


Algorithme chercherValeur Variables : valeur, compteur, i, valeur1 : entier; tab : Tableau [] d'entiers; Début tab <- new entier [5] compteur <- 0 tant_que (compteur < 5) faire lire(valeur) tab[compteur] <- valeur compteur <- compteur + 1 fin tant_que lire(valeur1) i <- 0 tant_que ((i < 5) ET (tab[i]<>(pas égale) valeur1)) faire i <- i+1 fin tant_que si (tab[i]=valeur1) alors ecrire("l'indice de la valeur recherchée est ",i) fin si sinon ecrire("cette valeur n'existe pas dans ce tableau") fin sinon Fin


Deuxième façon :


Algorithme fonctionChercherValeur Variables : tab : tableau[] d'entiers nb, résultat : entier Début tab <- new entier [5] remplirTableau(tab) //appel de la première fonction "remplirTableau" lire(nb) résultat <- chercherValeur(nb, tab) //appel de la deuxième fonction "chercheValeur" ecrire("L'indice de la valeur recherchée est ",résulstat) Fin Fonction remplirTableau(tableau : tableau [] d'entiers): vide Variables : valeur, compteur : entier Début compteur <- 0 tant_que (compteur < 5) faire lire(valeur) tableau[compteur] <- valeur compteur <- compteur + 1 fin tant_que retourne Fin Fonction chercherValeur (nb1 : entier, tab1 : tableau[] d'entiers): entier Variables : i : entier Début i <- 0 tant_que (i < 5) faire si (tab1[i] = nb1) alors retourne(i) fin si sinon i <- i+1 fin sinon fin tant_que retourne (-1) Fin


Merci de votre patience.

edit : modification de l'erreur de la sixième valeur inutile

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Lispy
Nouveau membre
Inscrit : 18/08/2007
Messages : 5
Message
#141131
Posté le 18/08/07 à 20:10
Il me semble que ton code lit six valeurs au lieu de cinq.

Dans la deuxième version, il est curieux de ne pas traiter dans le programme principal le code d'erreur (-1) que peut renvoyer la fonction de recherche. Cela est peut-être sans importance tant qu'on reste dans le cadre de l'algorithmique remarque.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2853
Message
#141134
Posté le 18/08/07 à 20:25
Non, le code lit bien 5 valeurs, on va de 0 à 4 (< 5)...

Je voudrais quelques précisions : tab et valeur sont fixés avant qu'on entre dans ton programme... ? Ton code (1) ne m'en donne pas l'impression... surtout le new int[5] ...

Sinon, juste pour la fonction de recherche, la fonction lire() dans le 1er algo est bien... juste le début de cet algo qu'est pas clair quant à son utilité...

Dans ton 2e algo... J'arrive pas à comprendre pourquoi tu te sert de la fonction lire ici :

Début lire(valeur) compteur <- 0 tant_que (compteur < 5) faire tableau[compteur] <- valeur lire(valeur) compteur <- compteur + 1 fin tant_que retourne Fin


Vu ce que tu as l'air de vouloir de faire, le bon çà serait plutot çà :

Début compteur <- 0 tant_que (compteur < 5) faire tableau[compteur] <- compteur # D'où sortait la variable valeur, elle vaut toujours pareil si elle est préfixé ? compteur <- compteur + 1 fin tant_que retourne Fin


Sinon, le reste est bon...
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

boobie
Nouveau membre
Inscrit : 18/08/2007
Messages : 6
Message
#141136
Posté le 18/08/07 à 20:37
Dans la première version, je crée le tableau grâce aux constructeurs " new entiers[5], et la variable "valeur" est défini par l'utilisateur grâce à la méthode lire(), normalement cette méthode permet à l'utilisateur d'écrire ce que vaut cette variable, non ?
Dans mon deuxième algo, je me sert de la fonction lire() pour que l'utilisateur puisse choisir ses propres valeurs aux tableaux, autrement si je choisis cette expression " tableau[compteur] <- compteur " l'utilisateur n'aurait pas le choix des valeurs du tableau.

Je pense que j'ai mal saisi le notion de la méthode lire() ? Elle permet de saisir la valeur indiquer par l'utilisateur, non ?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

boobie
Nouveau membre
Inscrit : 18/08/2007
Messages : 6
Message
#141137
Posté le 18/08/07 à 20:42
\"tab et valeur sont fixés avant qu\'on entre dans ton programme... ? Ton code (1) ne m\'en donne pas l\'impression... surtout le new int[5] ...\"

En fête, je crée un tableau vide, que je rempli, et la variable valeur est choisi par son utilisateur, remplissant ainsi le tableau.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2853
Message
#141140
Posté le 18/08/07 à 21:36
A oki, je n'avais pas compris ce que tu voulais dire par 'lire(valeur)'... mais si c'est 'demander à l'utilisateur d'entrer une valeur, ben c'est mon alors, c'est nikel... je vois pas de pb dans ton algo

Smiley

__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

boobie
Nouveau membre
Inscrit : 18/08/2007
Messages : 6
Message
#141142
Posté le 18/08/07 à 21:39
merci, ça me rassure , je cherchais l'erreur depuis tout à l'heure ^^

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Lispy
Nouveau membre
Inscrit : 18/08/2007
Messages : 5
Message
#141182
Posté le 19/08/07 à 17:29
Dans la première boucle, le code lit bien cinq valeurs, compteur variant de 0 à 4. Mais avant d'entrer dans la boucle, il y a un "6ème" lire (valeur) dont je ne comprends pas l'utilité.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Lispy
Nouveau membre
Inscrit : 18/08/2007
Messages : 5
Message
#141183
Posté le 19/08/07 à 17:34
Pour être plus clair, il me semble que j'aurais plutôt écrit :


Compteur <- 0; Tant que (compteur < 5) faire lire (valeur); Tab (compteur) <- valeur; compteur++; Fin Tant Que

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Czayfaboo
Co-Administrateur
Superviseur :
- Langages Dot.
Modérateur :
- CSharp (C#)
Chef de projet(s) :
- ID3.NET Library
- MoteurProg Work.

Avatar de Czayfaboo
Inscrit : 05/01/2005
Messages : 2853
Message
#141184
Posté le 19/08/07 à 17:36
Nan, en fait c'est l'inverse...

Avant de rentrer dans la boucle on demande à l'utilise une valeur (fonction lire(valeur)).
On rentre dans la boucle et on met tout de suite cette valeur dans le tableau...
On en demande un autre pour le passage suivant dans la boucle et ainsi de suite...

Mais je suis d'accord avec toi, on lit 6 valeurs...

Il aurait été plus astucieux d'écrire :

tab <- new entier [5] compteur <- 0 tant_que (compteur < 5) faire lire(valeur) tab[compteur] <- valeur compteur <- compteur + 1 fin tant_que


Ca marche dans les 2 cas... mais cette dernière version est plus optimisée quoi...

€dit : no post se sont croisés.
__________________________
Sujet résolu ? Pensez à mettre le tag Image
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM ALGORITHMES



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.