Ecreire programme en vb [Fermé]

Messages postés
98
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
18 novembre 2015
- - Dernière réponse :  big_ouf - 21 déc. 2007 à 13:02
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
Afficher la suite 

3 réponses

0
Merci
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
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1594 -
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 

Messages postés
90
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
3 juillet 2007
17
0
Merci
Ca ne contrôle pas si il y a plusieurs "1" dans la page ;-)
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1594 -
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 


providence
Messages postés
98
Date d'inscription
dimanche 22 janvier 2006
Statut
Membre
Dernière intervention
18 novembre 2015
7 > fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
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
Merci
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