Ecreire programme en vb

providence Messages postés 99 Statut Membre -  
 big_ouf -
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

  1. maxou_80
     
    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
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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 
      
      
      0
  2. .nono. Messages postés 90 Statut Membre 17
     
    Ca ne contrôle pas si il y a plusieurs "1" dans la page ;-)
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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 
      
      
      
      0
      1. providence Messages postés 99 Statut Membre 7 > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Merci 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
        0
  3. big_ouf
     
    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
    0