Algorithme
Fermé
wilikl
Messages postés
1
Date d'inscription
jeudi 8 janvier 2015
Statut
Membre
Dernière intervention
8 janvier 2015
-
8 janv. 2015 à 22:17
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 - 9 janv. 2015 à 11:28
Kaldoran Messages postés 137 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 21 juin 2015 - 9 janv. 2015 à 11:28
A voir également:
- Algorithme
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Tri d'une matrice algorithme - Forum C
3 réponses
Kaldoran
Messages postés
137
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
21 juin 2015
29
Modifié par Kaldoran le 8/01/2015 à 22:29
Modifié par Kaldoran le 8/01/2015 à 22:29
Salut,
Tout simplement une boucle sur une variable N
De n = 1
jusqu'à N >= 99 [ 100 étant pair ].
Il suffit alors d'incrémenter i de 2 en 2.
Ce qui donnera :
1 3 5 etc ;)
Tout simplement une boucle sur une variable N
De n = 1
jusqu'à N >= 99 [ 100 étant pair ].
Il suffit alors d'incrémenter i de 2 en 2.
Ce qui donnera :
1 3 5 etc ;)
Utilisateur anonyme
Modifié par ludobabs le 8/01/2015 à 23:17
Modifié par ludobabs le 8/01/2015 à 23:17
Bonsoir,
pour les impairs entre 0 et 100 :
pour les 100 premier impairs ( et non les chiffres impairs entre 0 et 100 ) :
https://fr.wikipedia.org/wiki/Modulo_%28op%C3%A9ration%29
Cdt
ps -> à mon avis c'est le mot "modulo" que ton prof souhaite voir : )
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
pour les impairs entre 0 et 100 :
de n = 0 à 100 boucler
si n modulo 2 n'est pas 0 alors afficher n
fin de boucle
pour les 100 premier impairs ( et non les chiffres impairs entre 0 et 100 ) :
initialiser compteur = 0
initialiser n = 0
tant que compteur <= 100 boucler
si n modulo 2 n'est pas 0 alors
afficher n
incrementer compteur
fin de si
incrementer n
fin de boucle
https://fr.wikipedia.org/wiki/Modulo_%28op%C3%A9ration%29
Cdt
ps -> à mon avis c'est le mot "modulo" que ton prof souhaite voir : )
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
Modifié par KX le 8/01/2015 à 23:22
Modifié par KX le 8/01/2015 à 23:22
Je complète mon analyse avec ta proposition (le deuxième algo puisque c'est celui qui répond à la question).
Au départ n=0 (compteur=0), tu n'affiches rien, tu incrémentes, n=1 (compteur=1), puis tu rentres dans le si, tu affiches 1, tu incrémentes deux fois (une fois dans le si, une fois en dehors), cela revient donc au même que l'incrément de 2 en 2 que tu critiquais chez Kaldoran. Sauf qu'en plus toi tu rajoutes ce calcul n modulo 2 totalement superflu puisqu'en incrémentant de 2 en 2, le test est toujours vrai. A part la première fois bien sûr, ce qui fais que tu n'affiches que 99 valeurs, comme Kaldoran.
Les deux algos ont finalement le même principe, le même résultat, mais à choisir je préfère celui de Kaldoran (à cause du modulo en trop chez toi)
Au départ n=0 (compteur=0), tu n'affiches rien, tu incrémentes, n=1 (compteur=1), puis tu rentres dans le si, tu affiches 1, tu incrémentes deux fois (une fois dans le si, une fois en dehors), cela revient donc au même que l'incrément de 2 en 2 que tu critiquais chez Kaldoran. Sauf qu'en plus toi tu rajoutes ce calcul n modulo 2 totalement superflu puisqu'en incrémentant de 2 en 2, le test est toujours vrai. A part la première fois bien sûr, ce qui fais que tu n'affiches que 99 valeurs, comme Kaldoran.
Les deux algos ont finalement le même principe, le même résultat, mais à choisir je préfère celui de Kaldoran (à cause du modulo en trop chez toi)
Utilisateur anonyme
>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
Modifié par ludobabs le 8/01/2015 à 23:39
Modifié par ludobabs le 8/01/2015 à 23:39
Merci pour tes remarques !
Cite : " tu incrémentes deux fois (une fois dans le si, une fois en dehors)"
certe non ! dans ma seconde proposition, une seule fois, il ne s'agit pas d'un FOR mais d'un WHILE ( c'etait fait exprès )
et, mais cela n'engage que moi, Zéro est bien un entier naturel il me semble ? donc partir avec n = 1 ... le pauvre 0, encore une fois il est laissé tout seul ^^
cdt
ps -> la parole d'un modo est sacrée je le sais bien mais là ....
Cite : " tu incrémentes deux fois (une fois dans le si, une fois en dehors)"
certe non ! dans ma seconde proposition, une seule fois, il ne s'agit pas d'un FOR mais d'un WHILE ( c'etait fait exprès )
et, mais cela n'engage que moi, Zéro est bien un entier naturel il me semble ? donc partir avec n = 1 ... le pauvre 0, encore une fois il est laissé tout seul ^^
cdt
ps -> la parole d'un modo est sacrée je le sais bien mais là ....
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
>
Utilisateur anonyme
Modifié par KX le 8/01/2015 à 23:39
Modifié par KX le 8/01/2015 à 23:39
"dans ma seconde proposition, une seule fois, il ne s'agit pas d'un FOR mais d'un WHILE"
Arf, tu as changé ton code entre temps...
Du coup ton algorithme est encore plus incompréhensible, toi qui parlais de bricolage tout à l'heure ^^
Avec ton while, tu rentres donc une fois dans le si pour afficher n et l'incrémenter une première fois, puis tu fais un tour de boucle sans passer dans le si, pour incrémenter une deuxième fois n.
Au final tu fais quand même bien deux incréments successifs, mais tu as besoin de deux tours de boucles pour ça... ce serait tellement plus simple de faire +2 directement et de se passer totalement des si et des modulo 2...
"la parole d'un modo est sacrée"
Je ne suis pas là en tant que modo, je suis là en tant qu'informaticien, parce que les algos je connais quand même... et pas qu'un peu ;-)
Arf, tu as changé ton code entre temps...
Du coup ton algorithme est encore plus incompréhensible, toi qui parlais de bricolage tout à l'heure ^^
Avec ton while, tu rentres donc une fois dans le si pour afficher n et l'incrémenter une première fois, puis tu fais un tour de boucle sans passer dans le si, pour incrémenter une deuxième fois n.
Au final tu fais quand même bien deux incréments successifs, mais tu as besoin de deux tours de boucles pour ça... ce serait tellement plus simple de faire +2 directement et de se passer totalement des si et des modulo 2...
"la parole d'un modo est sacrée"
Je ne suis pas là en tant que modo, je suis là en tant qu'informaticien, parce que les algos je connais quand même... et pas qu'un peu ;-)
Utilisateur anonyme
>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
Modifié par ludobabs le 8/01/2015 à 23:47
Modifié par ludobabs le 8/01/2015 à 23:47
idem ^^ mais je n'ai pas modifié mon post, en tout cas pas cette distinction entre FOR et WHILE : ) et je souhaitais apporter la notion de modulo ( qui est quand même le meilleur moyen pour reconnaitre pair / impair : )
En tout cas merci à toi.
En tout cas merci à toi.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
8 janv. 2015 à 23:24
8 janv. 2015 à 23:24
La meilleure solution (celle de Kaldoran et ludobabs corrigée)
nombre = 1
Boucle de 1 à 100
afficher nombre
nombre = nombre + 2
Fin Boucle
Kaldoran
Messages postés
137
Date d'inscription
mercredi 31 octobre 2012
Statut
Membre
Dernière intervention
21 juin 2015
29
9 janv. 2015 à 11:28
9 janv. 2015 à 11:28
En effet, très bonne correction ;)
J'avais en effet pas les 100 premiers dans ma version mais seulement les 50 premiers ( environs )
J'avais en effet pas les 100 premiers dans ma version mais seulement les 50 premiers ( environs )
Modifié par ludobabs le 8/01/2015 à 23:18
Cordialement
Modifié par KX le 8/01/2015 à 23:22
"ce n'est pas tout à fait la réponse à la question"
En fait, si, ou presque. Même si c'est sûrement par erreur.
Le fait que l'on incrémente i de 2 en 2 (et non pas N, qui lui s'incrémente de 1 en 1) va donner le bon résultat. Algorithmiquement c'est la meilleur solution.
Le seul problème c'est qu'il faudrait initialiser i (à 1) et aller jusqu'à N>=100 puisque l'on commence à 1, sinon on n'aurait que 99 nombres.
9 janv. 2015 à 11:26
( Aux erreurs près signalée par KX )