Exercice simple d'algorithmique [Résolu/Fermé]

Messages postés
37
Date d'inscription
jeudi 30 décembre 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
Bonjour,
Comme étant débutant en programmation, j'ai rencontré un problème en essayant de résoudre cet algorithme qui est pourtant simple :
"Ecrire un algorithme qui cherche et affiche le plus grand de trois nombres saisis"
Merci pour votre aide.



Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
121
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 avril 2012
11
29
Merci
Si tu veux utiliser cette facon de faire il te faudra ajouter 2 autres variables qui sont N3 et max. ensuite tu modifie ton algo de cette facon:

Algorithme Comparaison_Rapide
Variables: N1,N2,N3,max (flèche d'affectation) réel
DEBUT
Ecrire("Tapez le premier nombre:")
Lire(N1)
Ecrire("Tapez le deuxieme nombre:")
Lie(N2)
Ecrire("Tapez le troisieme nombre:")
Lie(N3)
Si(N1>N2) alors
max=N1
Sinon Si(N2>N3) alors
max= N2
Sinon
max=N3
Ecrire("Le plus grand nombre est:",max)
fin si
FIN

NB: pour 4 nombres tu n'auras donc qu'ajouter une variable N4 et une nouvelle condition si

Dire « Merci » 29

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70133 internautes nous ont dit merci ce mois-ci

poukkid
Messages postés
110
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
4 avril 2012
8 -
Pensez qu'il est plus utile de guider les débutants vers la solution que de leur donner toute faite, surtout une solution fausse !!!

Si(N1>N2) alors  
     max=N1  
Sinon Si(N2>N3) alors  
     max= N2  
Sinon  
     max=N3 


==> Si N1>N2 mais que N1<N3, dans ton algo, N1 est le max alors qu'en réalité c'est N3.


Pour correction au besoin, l'algo doit être écrit comme ça :

Si(N1>N2) alors  
     max=N1  
Sinon   
     max=N2  
fin si  

Si(N3>max) alors  
     max= N3  
fin si  

Ecrire("Le plus grand nombre est:",max) 
anas212
Messages postés
37
Date d'inscription
jeudi 30 décembre 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
Bonjour dedian_ ,poukkid
Merci pour la solution.C'était facile et il fallait juste un peu de concentration.
Merci à tous pour votre précieuse aide.
je pense que c'est trop long .cela va utiliser beaucoup de variables.
Merci pour l'aide
Messages postés
121
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
2 avril 2012
11
7
Merci
Tu as parfaitement raison. j'ai sauté une etape dans mon alogo. mais je pense que tout le monde fait des erreurs. La prochaine fois essayes de rester humble et surtout evite d'utiliser le mot "betise" je trouve ça grossier et vilain.

Merci
poukkid
Messages postés
110
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
4 avril 2012
8 -
Pardon d'avoir été insultant. D'autant que ce qui m'a réellement géné, ce n'est pas l'erreur dans l'algo, c'est que tu donnes une solution toute faite à quelqu'un qui apprend l'algorithmique, et qui a l'air d'être à ses débuts... mieux vaut guider et aider la personne a chercher par soi-même...
anas212
Messages postés
37
Date d'inscription
jeudi 30 décembre 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
Merci pour votre intérêt.
Baracaca
Messages postés
1
Date d'inscription
dimanche 24 novembre 2013
Statut
Membre
Dernière intervention
24 novembre 2013
-
Programme Afficher la plus grande valeur

VAR
a,b,c :entiers
Debut
Saisir (a)
Saisir (b)
Saisir (c)

Si (a>b) et (b>c) Alors
Afficher a
Sinon si (b>a) et (b>c) Alors
Afficher b
Sinon
Afficher c

Fin
Messages postés
630
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016
374
4
Merci
Sans te donner la réponse, voici quelques indices.

- Tes éléments doivent être placés dans un tableau (ou une liste).

- Tu dois avoir une boucle pour passer au travers de chaque élément du tableau.

- Tu peux utiliser une variable pour stocker le plus grand élément trouvé pendant que tu boucles.

Exemple:

Tu as 3 nombres dans un tableau; [1,3,2] ainsi qu'une variable max qui contient le nombre le plus élévé (sera le bon à la fin du traitement seulement).

tableau = [1,3,2]
max = null

Le premier nombre du tableau (1) est-il plus grand que max (null)? Oui donc max = 1
Le deuxième nombre du tableau (3) est-il plus grand que max (1)? Oui donc max = 3
Le troisième nombre du tableau (2) est-il plus grand que max (3)? Non donc max ne change pas, il reste 3.

Voilà, le max est 3.
Maintenant, il ne te reste qu'à transformer ça en algo!


Echo "Lima Mike Alfa";
KX
Messages postés
16075
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 novembre 2019
2455 -
Pour trois variables, on n'est pas obligé de passer par un tableau, on peut bien sûr, mais il suffit de quelques if bien placés pour faire ça sans encombre...

Mais tu as raison des indices bien donnés valent mieux que faire l'exo à sa place !
Doctor C
Messages postés
630
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016
374 -
En effet, mais dans un souci de réutilisabilité (c'est un mot ça?), c'est toujours bien de faire une solution souple qui s'adapte à n'importe quelle situation.
KX
Messages postés
16075
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 novembre 2019
2455 -
réutilisabilité existe en jargon informatique, ça consiste à reprendre un code déjà fait (et optimisé depuis belle lurette) mais du coup ça va à l'encontre de ce genre d'exercices très scolaire...
Messages postés
16075
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 novembre 2019
2455
2
Merci
Facile, tu prends le max, tu l'affiches...
La confiance n'exclut pas le contrôle
Messages postés
37
Date d'inscription
jeudi 30 décembre 2010
Statut
Membre
Dernière intervention
28 avril 2011
2
Merci
Bonjour,
Je vous remercie pour vos suggestions.
Mais peut-on résoudre cet algorithme en utilisant les simples notions de ce dernier ? voilà un exemple utilisé pour comparer deux nombres (trouver le plus grand) :
Algorithme Comparaison_Rapide
Variables: N1,N2 (flèche d'affectation) réel
DEBUT
Ecrire("Tapez le premier nombre:")
Lire(N1)
Ecrire("Tapez le deuxieme nombre:")
Lie(N2)
Si(N1>N2) alors
Ecrire("Le plus grand nombre est :",N1)
Sinon
Ecrire("Le plus grand nombre est:",N2)
fin si
FIN

Quand vous dites tableau, est ce que vous voulez dire la structure à choix multiple? de ce type :
Suivant Variable Faire
Valeur1:Instructions1
Valeur2:Instructions2
.
.
.
Valeur n: Instructions n
fin suivant

MERCI D'AVANCE
Messages postés
110
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
4 avril 2012
8
1
Merci
Non, un tableau est une variable également.
la structure dont tu parles est aussi appelé switch/case (ou autre selon les langages) qui joue exactement le même role qu'un "SI....ALORS... SINON SI... ALORS....." mais qui est plus pratique et surtout plus lisible quand il ya beaucoup de choix, pour éviter de faire des SINON SI... SINON SI... à n'en plus finir...

si tu ne connais pas encore les tableau alors attends de les étudier avant de les utiliser, pour information, c'est une variable qui peut contenir plusieurs valeurs dans ses "cases". par exemple la case 1 d'une variable "tablo" peut contenir la valeur 7, tandis que la case 2 de la variable "tablo" peut contenir la valeur 18.

Ton exemple est tres bien, il te manque plus qu'à rajouter la troisième variable lue (N3) et il va te falloir une variable intermédiaire pour mieux t'y retrouver.

Ce que tu veux faire lorsque tu auras comparé N1 et N2 n'est plus de dire qu'un des deux est plus grand, mais de récupérer la valeur du plus grand des deux pour pouvoir la comparer à N3. c'est ici que tu vas utiliser ta variable intermédiaire, pour récupérer la plus grande valeur de N1 et N2.
Il ne te restera plus ainsi qu'à comparer ta variable intermédiaire avec N3 et dire quel nombre est le plus grand...
Messages postés
6198
Date d'inscription
lundi 11 janvier 2010
Statut
Contributeur
Dernière intervention
16 juillet 2019
2532
1
Merci
Si tu nous précisais le langage à utiliser?
poukkid
Messages postés
110
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
4 avril 2012
8 -
On parle d'algorithme (pseudo-code) il n'est pas nécessaire d'avoir un langage spécifique, de plus, pour un débutant c'est normal bien plus efficace de commencer par l'algorithmique que directement par un langage précis....
bjour
Messages postés
6198
Date d'inscription
lundi 11 janvier 2010
Statut
Contributeur
Dernière intervention
16 juillet 2019
2532 -
ben ça dépend, si il sait déjà sur quoi il va travailler!
alors, quel langage, si tu sais, anas212?
anas212
Messages postés
37
Date d'inscription
jeudi 30 décembre 2010
Statut
Membre
Dernière intervention
28 avril 2011
-
Bonjour,
Ce qu'a dit poukkid est vrai, j'apprend actuellement la base de l'algorithmique sans procéder à des langages spécifiques.En tant que débutant quel langage débuter avec?
MERCI