IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

function js nombres pairs 0-2-4-6-8 à 20 avec les tirets


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut function js nombres pairs 0-2-4-6-8 à 20 avec les tirets
    Bonjour,

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      var nb, i;
      for(var i=0;i<=20;i=i+2) {
      alert(nb=nb + );  
    }

    J'essaye de créer une fonction qui affiche les nombres paires de 0 jusqu'à 20
    -les valeurs doivent être séparées par des tirets (sauf la dernière valeur)

    Pourriez vous me donner une indication?

    Merci

    ps: j'espère être dans la bonne partie du forum sinon Messieurs les admin n'hésitez pas à déplacer mon sujet.

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var nbs = [];
    for(var i=0; i<=20; i+=2) {
    nbs.push(i);
    }
    alert(nbs.join('-'));
    ps : pour debugger, je te conseilles d'abandonner alert();
    et de passer par les console.log(); visible dans l'outil de developpement du navigateur
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse Doksuri, mais je ne suis pas encore au niveau des push c'est pourquoi je devrais m'en passer pour cette partie et donc trouver une autre solution?
    j'ai vu la partie :
    - variables
    - boucles
    - fonctions

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oui, ou encore :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var nbs_pair = [];
    for(var i=0; i<=10; i++) {
       nbs_pair[i] = i*2 ;
    }
    alert(nbs_pair.join('-'));
     
    var nbs_impair = [];
    for(var i=0; i<=10; i++) {
       nbs_impair[i] = i*2 + 1 ;
    }
    alert(nbs_impair.join('-'));

    À retenir : il existe souvent plusieurs façons d'arriver au même résultat.

    Dans le genre "usine a gaz" (niveau "grand débutant") :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var nbs_pair = '';
    for(var i=0; i<=10; i++) {
       nbs_pair += i*2 ;
       if( i != 10 )
       {
          nbs_pair += '-' ;
       }
    }
    alert( nbs_pair );
    Dernière modification par Invité ; 13/09/2018 à 10h38.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par djey693 Voir le message
    ...J'essaye de créer une fonction qui affiche les nombres paires de 0 jusqu'à 20...
    OK.
    Si on parle de fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function nbre_pairs( nbre_max )
    {
     var nbs_pair = '';
     var i_max = Math.floor(nbre_max/2);
     for(var i=0; i<=i_max; i++) {
       nbs_pair += i*2 ;
       if( i != 10 )
       {
          nbs_pair += '-' ;
       }
     }
     return nbs_pair;
    Affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( nbre_pairs( 20 ) );
    Remarque :
    Grâce à Math.floor(nbre_max/2), on obtient le même résultat avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( nbre_pairs( 21 ) );
    21 n'étant pas pair !

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Une autre approche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function nbre_pairs( nbre_max ){
    var i=0, p=[], m=nbre_max+1;
    while(i++<m){ !(i&1) && p.push(i)};
    return p.join('-');
    }
    console.log( nbre_pairs(20));
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses, je vais voir avec toutes les infos que vous m'avez donné.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Doksuri Voir le message
    ps : pour debugger, je te conseilles d'abandonner alert();
    et de passer par les console.log(); visible dans l'outil de developpement du navigateur


    Merci du conseil et j'en prend bonne note.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    attention à
    Citation Envoyé par djey693
    ...mais je ne suis pas encore au niveau des push c'est pourquoi je devrais m'en passer pour cette partie et donc trouver une autre solution
    il reste donc la concaténation d'une chaine, je pense que l'utilisation des tableaux fera l'objet d'un autre leçon.

    Donc comme la dit jreaux62
    il existe souvent plusieurs façons d'arriver au même résultat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var nombre = 0;   // on commence à 0
    var max = 20;     // nombre maximum
    var result = "";  // la chaine résultat
    while( nombre < max){
      // ajout à la chaine résultat
      result = result +nombre +"-"
      // incrémentation de nombre
      nombre = nombre +2;
    }
    // ajout nommbre maximum
    result = result +nombre;
    // affiche résultat
    console.log("résultat :",  result);

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    OK.
    Si on parle de fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function nbre_pairs( nbre_max )
    {
     var nbs_pair = '';
     var i_max = Math.floor(nbre_max/2);
     for(var i=0; i<=i_max; i++) {
       nbs_pair += i*2 ;
       if( i != 10 )
       {
          nbs_pair += '-' ;
       }
     }
     return nbs_pair;
    Affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( nbre_pairs( 20 ) );
    Remarque :
    Grâce à Math.floor(nbre_max/2), on obtient le même résultat avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert( nbre_pairs( 21 ) );
    21 n'étant pas pair !
    super ta premiere solution mais je n'arrive pas a la faire s'afficher.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Oups...
    Il manque une accolade fermante (à la fin de la fonction) :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function nbre_pairs( nbre_max )
    {
     var nbs_pair = '';
     var i_max = Math.floor(nbre_max/2);
     for(var i=0; i<=i_max; i++) {
       nbs_pair += i*2 ;
       if( i != 10 )
       {
          nbs_pair += '-' ;
       }
     }
     return nbs_pair;
    }

    IMPORTANT : il faut APPRENDRE à DEBUGUER toi-même.

    1- Là, j'ai pris soin d'INDENTER mon code : il était FACILE de VOIR qu'il manquait cette accolade fermante.

    2- utiliser l'"INSPECTEUR" du navigateur : touche F12 du clavier.
    - > voir l'onglet "CONSOLE".


  12. #12
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Merci oui je me suis finalement aperçu qu'il manquait une accolade grace au debugueur.
    C'est tout de meme gentil d'avoir répondu.

  13. #13
    Invité
    Invité(e)
    Par défaut
    vu que le pb semble résolu

    une variante recursive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    r=(x=0,s='')=>x<20?r(x+2,s+x+'-'):console.log(s+20)
    r()

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Septembre 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Septembre 2018
    Messages : 16
    Points : 7
    Points
    7
    Par défaut
    Pfiou ca a l'air simple et a la fois compliqué mais j'en suis pas encore à ce niveau la?

    Merci tout de même.

  15. #15
    Invité
    Invité(e)
    Par défaut
    LOL...


    Avec tous les codes et variantes qui t'ont été fournis, te voilà rhabillé pour l'hiver !!

Discussions similaires

  1. un nombre pair en random?
    Par megaben dans le forum VB.NET
    Réponses: 13
    Dernier message: 07/10/2007, 03h23
  2. Nombre pair ou bien impair
    Par monoar dans le forum Ruby
    Réponses: 10
    Dernier message: 12/08/2007, 21h21
  3. [TP] Nombres pairs et impairs
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 04/05/2007, 17h32
  4. Nombre pair sur Matlab
    Par cricri04 dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/03/2007, 16h46
  5. XSL nombre pair de pages
    Par Urthgard dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 25/06/2004, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo