Comment dire : if (x n'est pas un multiple de 5?)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment dire : if (x n'est pas un multiple de 5?)

Re: Comment dire : if (x n'est pas un multiple de 5?)

par @rthur » 21 août 2019, 13:01

Le plus simple pour tester si un chiffre est multiple d'un autre on test si leur division est un entier
Le plus simple c'est d'utiliser l'opérateur modulo qui fait précisément cela en 1 fonction :-D
https://www.php.net/manual/fr/language. ... hmetic.php

Par ailleurs, vu que tu réponds à une question d'il y a 12 ans, j'espère que la réponse a été trouvée depuis ;)

Re: Comment dire : if (x n'est pas un multiple de 5?)

par jdrocard » 21 août 2019, 10:40

Le plus simple pour tester si un chiffre est multiple d'un autre on test si leur division est un entier :
et le top c'est de supprimer le 0
c'est à dire :

Code : Tout sélectionner

if ( is-int($valeur/5) and $valeur <> 0 ) { echo "$valeur est divisible par 5" ; }

par jojolapine » 11 janv. 2007, 16:10

pas big bug tactique, mais petit oubli parceque moi je sais ce que c'est alors je me disait que les autre aussi :langue:
mais je l'ai expliqué lorsque abricot me l'a demandé ;-)

par AB » 11 janv. 2007, 16:02

Jojolapine,

En lisant ton avant dernier post, je me disais bien que ça devait arriver... :wink:
Tu prends la peine de tout expliquer de manière ultra simple et détaillée, mais toute ta démo est conditionnée par la connaissance de la définition de "division euclidienne".
Big bug didactique :?:
Enfin, c'était pour te taquiner un peu :D

...et pour avouer au passage que je ne me rappellais même plus ce que ça voulais dire, une division euclidienne :oops: j'ai pourtant eu un DUT de mesures physiques, il y a longtemps il est vrai.

Concernant l'explication du modulo, ça serait difficile d'en rajouter.

EDIT : En lisant ton avant avant avant avant dernier post...
ça devait arriver...qu'abricot te repose encore une question!

par Ultim4T0m » 11 janv. 2007, 15:51

Je suis en éco ! Enfin trève de hors sujet... Vivement les cours plus poussé en JAVA :P

par jojolapine » 11 janv. 2007, 15:50

Oui, c'est cela.
Tu prends le reste de la division, si il est égal à 0, alors q divise x, sinon, non.

Edit : Grillé ^^ ( faut pas m'en vouloir, je suis en cours ! :P )
tututut retourne à ta progra...! c'ets pas bien de pas suivre les cours :non:
:langue:

par Ultim4T0m » 11 janv. 2007, 15:45

Oui, c'est cela.
Tu prends le reste de la division, si il est égal à 0, alors q divise x, sinon, non.

Edit : Grillé ^^ ( faut pas m'en vouloir, je suis en cours ! :P )

par jojolapine » 11 janv. 2007, 15:45

et ben voilà on peut dire que c'est à peu près rentré ;-)

par abricot » 11 janv. 2007, 15:43

d'accord j'ai compris donc si on prend le cas de

x = 14
q = 5

x = q*2 + 4 soit 14 = 5*2 + 4

est faux ; je peu l'ecrire que de cette maniere en entier car si j'ecris 14 = 3*5 + 0 j'aurais 15

par contre si je change q :

x = 14
q = 7
x = 2*7 + 0

est vrai car je peu multiplier q par un entier pour obtenir x

j'ai tout compris? j'suis un bon eleve? lol

par jojolapine » 11 janv. 2007, 15:23

lorsque l'on parle de multiples, on parle de divisions entières, c'est à dire dont les composants n'ont pas de virgules, c'est ce qu'entend une division euclidienne, en effet dans cette écriture:
x=d*q+r
x,d,q et r sont tous des entiers, donc on ne peu pas avoir le cas de figure dont tu viens de parler

par abricot » 11 janv. 2007, 15:17

lol jojolapine!

Oui j'ai une autre question!

Donc si
x = 13
x = 2*5 + 3

on est d'accord?

Mais on pourrais aussi ecrire
x = 13
x = 2,6*5 + 0

donc ca en reviens à ce que je disais au debut, si le resultat de la division de X par 5 est decimal elle est consideré comme fausse mais pourtant elle est valide!

par jojolapine » 11 janv. 2007, 14:56

bon alors je vais essayer d'être plus clair!
On va prendre des exemples
disons qu'on essaye de diviser 10 par 5, le résultat est 2.
ça c'est facile.
maintenant on peut écrire ça comme ça:
10 = 5 x 2
pas trop dur...
maintenant on va essayer de diviser 13 par 5, le résultat est 1,6
pas trop dur, avec une calculette, ça se fait tout seul avec une calculette :langue:
maintenant, on va essayer de l'écrire comme la seconde écriture de 10/5
ça donne:
13 = 5 x 2 + 3
et on se rend compte que on peut écrire pour la première division:
10 = 5 x 2 + 0
ça ne sert à rien en soit, mais c'est pour montrer, que pour tout nombre X (entier -sans virgule-), on peut écrire:
X = q x d + r
où r est le reste de la division euclidienne de X par d

Donc maintenant revenons à nos moutons:
on sait que pour un chiffre X donné, si X est divisible par d, alors le reste de la division euclidienne de X par d est égal à 0

Voilà pour la théorie, maintenant pour appliquer à php, pour obtenir le reste de la division euclidienne, on utilise l'opérateur %
ainsi
echo 10%5; // affiche 0
echo 13%5; // affiche 3
voilà si tu as d'autres questions n'hésite pas ;-)

EDIT: tripled grilled :-(

par abricot » 11 janv. 2007, 14:53

Ahhhhhhhh donc par exemple

x = 10
q = x/5 soit (q = 10/5)
q=2
x - (5*q) soit 10 - (5*2) = 0

je vais prendre un autre exemple pour voir si j'ai bien compris

x = 90
q = x/5 soit (q = 90/5)
q = 18
x - (5*q) soit 90 - (5*18) = 0

C'est tout bete!! J'ai tout compris, merci sadeq![/u][/i]

par Maitrepylos » 11 janv. 2007, 14:52

ah non c'est pas ca en fait je crois que j'ai compris!

par exemple si x = 5 et que je divise x par 5 j'aurais come resultat 1 sois un nombre entier! donc vrai
par contre si je prend x = 6 et que je le divise par 5 j'aurais un nombre decimal, donc faux

mais les deux sont divisble!

c'est ca? ou j'ai encore faux?

Ben disons que dans ce cas les deux seront faux puisque il retourne quelque choses.

L'avantage avec le modulo comme l'explique Iclo et sadeq, c'est que si le reste de la division est 0, c'est que c'est vrai

par iclo » 11 janv. 2007, 14:45

bof pas vraiement ça:

un exemple, avec une division entière (sans virgule)

7 divisé par 2, ça donne 3 et un reste de 1
9 divisé par 2, ça donne 4 et un reste de 1
13 divisé par 5, ça donne 2 et un reste de 3.

L'opérateur % te permet d'obtenir le reste.

Si un nombre est divisible par un autre, le reste doit valoir 0
6 divisé par 2, ça donne 3 et un reste de 0
9 divisé par 3, ça donne 3 et un reste de 0

Donc si il n'est pas divisible, le reste est >0.
A partir de là, c'est un jeu d'enfance d'obtenir ce que tu souhaites.

[EDIT] Grillé par sadeq, mais bon, deux explications pour le prix d'une, c'est jamais mauvais à prendre :lol: