Ce sujet est résolu.
1 | |||
Auteur | Messages | ||
---|---|---|---|
stracoma | #1 Posté le 24/9/2015 à 18:02:29 | ||
Apprentissage programmation pour le plaisir | Bonjour tout le monde. J'ai écris un code qui dois vérifier si une variable x entier est un nombre premier. Mais mon code affiche toujours "ce n'est pas un nombre premier". je n'arrive pas à retrouver l'erreur dans le code:
Merci SVP patience avec moi car neurones > 50 ans | ||
stracoma | #2 Posté le 24/9/2015 à 18:11:59 | ||
Apprentissage programmation pour le plaisir | Je viens de repérer mon erreur: FOR i = 2 TO (x - 1) et non FOR i = 1 TO (x - 1) SVP patience avec moi car neurones > 50 ans | ||
didier18 | #3 Posté le 25/9/2015 à 11:42:08 | ||
Bonjour stracoma Quelques petites précision pour ton code... Tu peux parfaitement déclarer plusieurs variables dans Dim, il suffit quelle soit du même type et séparées par une ','. Exemple : Dim i, x as integer=0 est la même chose que : Dim i as integer=0 Dim x as integer=0 Ce qui te fais déjà gagner une ligne de code... Si tu utilise seulement une partie de la condition d'un IF, autant mettre tout sur une seule ligne... Exemple : If (x % i) == 0 Then NBP = False est la même chose que : IF (x % i) == 0 THEN NBP = FALSE ENDIF sauf que là tu 'économise' 2 lignes de code... Enfin et pour finir... Puisque MBP est boolean, autant utiliser le IIF... Exemple : msg = IIf(NBP, "c'est un nombre premier", "ce n'est pas un nombre premier") Print msg est la même chose que : IF NBP THEN PRINT "c'est un nombre premier" ELSE PRINT "ce n'est pas un nombre premier" ENDIF sauf que là tu 'économise' 3 lignes de code... Voici le code une fois modifié...
Regarde la doc pour voir la différence entre le IF et le IIF (il me semble que IIF est plus rapide en exécution -a confirmer par l'assemblée-). Bonne journée. | |||
stracoma | #4 Posté le 30/9/2015 à 20:51:01 | ||
Apprentissage programmation pour le plaisir | Bonsoir didier18. Merci pour l'info. iif est nouvelle pour moi (j'ai jamais vu). En faisant quelques essais j'ai remarqué qu'on peut se passer de la variable string "msg"
une autre fois merci SVP patience avec moi car neurones > 50 ans | ||
gambix | #5 Posté le 3/10/2015 à 17:01:36 | ||
Faire simple ! | iif est plus lent assez souvent dans la mesure ou les valeurs sont toute évaluée a chaque appel a la fonction. Donc pour des valeurs calculées c'est a fuir. Il ne faut pas résonner en terme de nombre de ligne de code mais en terme d’efficacité de code. Parfois, les pertes de rendement ne situe pas la ou on pense, et souvent c'est pas le code le plus esthétique qui remporte la palme. Moins de texte dans une signature c'est agrandir son espace. | ||
1 |