Ecreire programme en vb

Fermé
providence Messages postés 98 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 18 novembre 2015 - 12 juin 2007 à 20:31
 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
A voir également:

3 réponses

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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 juin 2007 à 21:09
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 jeudi 7 juin 2007 Statut Membre Dernière intervention 3 juillet 2007 17
12 juin 2007 à 22:05
Ca ne contrôle pas si il y a plusieurs "1" dans la page ;-)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 juin 2007 à 23:16
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 dimanche 22 janvier 2006 Statut Membre Dernière intervention 18 novembre 2015 7 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
13 juin 2007 à 01:48
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
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