Ecreire programme en vb

bsr a tous
j'ai un programme à ecrire en vb dans le cadre d'un projet d'ecole.l'enoncé est le suivant:
Dans l'enclypedie des jeux 2007, il a fallu utiliser 2007 fois "1" pour numeroter toutes les pages.
Ecrire un programme VB6 qui puisse nous permettre de determiner le nombre de pages de cette encyclopedie.
Nb: Quand on numerote par exemple de 1 à 20, on utilise 12 fois 1!

je sais pas trop par où commencer.Merci pour votre aide
Configuration: Windows XP
Firefox 2.0.0.3

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut providence alors je n'ai pas trop réchléchit mais voilà un petit début :

    Option explicit //toujours préférable....

    dim i as integer
    dim chaine as string
    dim nb_page as integer

    nb_page =0
    i=0 //initialisations

    While (i<>2007)

    chaine=str(i) //j'ai des doutes quant à la syntaxe de conversion d'un entier en chaine de caractères

    //ici tu lis ta chaine de caractères en mettant un if du style

    if (chaine="1") then
    nb_page=nb_page+1
    end if

    i=i+1 //indispensable pour ne pas avoir de boucle infini!

    Wend

    voila j'espère que ca pourra t'aider
    1. Contributeur
      Salut

      Ton code ne marche pas. Dès que le nombre dépasse les dizaines, ça ne pourra pas être égale à "1".
      Voici une petite correction

      
      Option explicit //toujours préférable....
      
      dim i as integer
      dim chaine as string
      dim nb_page as integer
      
      nb_page =0
      i=0 //initialisations
      
      While (i<>2007)
      
           chaine=str(i) 'j'ai des doutes quant à la syntaxe de conversion d'un entier en chaine de caractères
      
          'ici tu lis ta chaine de caractères en mettant un if du style
      
          ' On vérifie si "1" appartient au chiffre
          if (substring(chaine,"1")>0) then
               nb_page=nb_page+1
          end if
      
          i=i+1 'indispensable pour ne pas avoir de boucle infini!
      
      Wend 
      
      
  2. Ca ne contrôle pas si il y a plusieurs "1" dans la page ;-)
    1. Contributeur
      Lol.
      Tu as parfaitement raison. Je me suis un peu emporté. ^^
      Voici une version corrigée. again. lol

      Option explicit //toujours préférable....
      
      dim i as integer
      dim chaine as string
      dim nb_page as integer
      
      nb_page =0
      i=0 //initialisations
      
      While (i<>2007)
      
           chaine=str(i) 'j'ai des doutes quant à la syntaxe de conversion d'un entier en chaine de caractères
      
          'ici tu lis ta chaine de caractères en mettant un if du style
      
          ' On parcourt tant qu'il reste des "1" dans la chaine.
          j=0
          while(substring(j,chaine,"1")>0) 
              nb_page=nb_page+1
             j=substring(j,chaine,"1")
          wend
          i=i+1 'indispensable pour ne pas avoir de boucle infini!
      
      Wend 
      
      
      
    2. @fiddyMerci a tous pour votre promptitude mais une petite inquietude p/r à la fonction substring:je souhaiterais savoir si c'est bien l'equivalent de la fonction Mid dans vb6.merci
  3. Pour faire une similitude à la fonction mid, tu peux utiliser tout d'abord la fonction len pour savoir le nombre de chiffres que comporte ton nombre.
    Dans une boucle, tu fais un

    position =1         ' Position du pointeur dans le mot, mais je ne sais plus s'il commence à 0 ou à 1
    for i = 1 to len(nombre)
          if mid(nombre,position,1) = "1" then
                 j = j+1               'j etant le nombre de "1"
          endif
          position = position +1
    next i