Ecreire programme en vb

providence Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

3 réponses

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