IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème pour mon examen de programmation !


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut Problème pour mon examen de programmation !
    Bonjour à tous,

    Alors voici mon problème, je suis à ma première année de programmation mais je ne parviens pas à faire tourner ce programme ou plutôt il n'affiche pas ce qu'il devrait afficher ! Alors voici ce qu'il mais demandé :

    Ecrire un programme qui demande à l'utilisateur 2 nombres entiers positifs N1 et N2. Le programme affichera alors tous les nombres entiers compris entre ces deux nombres, sauf les multiples de 3 et de 5.

    Voici mon code :

    ---------------------------------------------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub main()
     
    Dim n1 As Integer
    Dim n2 As Integer
    Dim n3 As Integer
    Dim i As Integer
     
    Do
    n1 = InputBox("Entrez le premier nombre entier positif: ")
    n2 = InputBox("Entrez le deuxième nombre entier posotif: ")
    Loop Until n1 < n2
    n3 = 0
    For i = n1 To n2
     If i Mod 3 = 0 And i Mod 5 = 0 Then
        n3 = 0
     Else: If i Mod 3 > 0 And i Mod 5 > 0 Then n3 = n3 + 1
     End If
    Next i
    MsgBox ("Nombres entiers compris entre ces deux nombres sauf les multiples de 3 et de 5 :" & n3)
     
    End Sub
    ---------------------------------------------------------------------------

    Qu'est ce qui ne va pas pour que mon programme m'affiche toujours 0 ?

    Merci d'avance...
    20cents

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    bonjour , est bienvenue sur le forum.. déjà as tu lu les régles .. du dit forum ..? modifie ton titre ..et rajoute y le tag approprié ( en modifiant ton permier post .. et tu rajoute.. [VB6] .. par exemple..)


    ensuite relis-ton code ... et voir la position remise à 0 de ton compteur n3. (la deuxiéme ..) . et ton affichage résultat..?.. n'y aurai t'il pas un probléme ?

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Désolé de ne pas avoir appliqué la règle mais ca ne se passera plus la prochaine fois!
    Quand au programme pour tu êtres plus précis? J'ai décalé mon deuxième compteur plus vers la gauche quand à l'affichage du résultat je ne vois pas bien le problème! Pouruoi cela m'affiche toujours 0? J'ai fait le test avec 1 et 15, et il me met toujours 0. Bizare nan? Merci pour la réponse rapide je crois que beaucoup de gars de ma classe vont venir chercher de l'aide ici plus tard

    20cents

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et le résultat à touver c'est combien 8 ? le nombre .... Un compteur ?

    et pour ce qui est des régles il y en as une que tu devrai lire :

    4.12. lycéen, collégien, étudiant, (bref un apprenti développeur)

    essai de repenser cette partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If i Mod 3 = 0 And i Mod 5 = 0 Then
        n3 = 0
     Else: If i Mod 3 > 0 And i Mod 5 > 0 Then n3 = n3 + 1
    ? il y as beacoup de if.. ? non ?.. pense aussi qu'elle est exécuté as chaque tour de boucle .. ( fais toi un dessin à la limite .. en écrivant les variations des valeurs de chacune des variables.. à chaque tour de boucle for..)

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Voilà un problème bien facile à résoudre, pour peu que l'on commence par un tout petit algo... ou même du français pur et simple. Et je suis stupéfait de ce que ce soit là une question de fin d'année
    Notre demandeur a-t-il commencé par là, au moins ?
    Si oui :
    qu'il nous montre ce raisonnement par algo ou par français ...
    Si non : qu'il s'y mette sans attendre ... C'est le meilleur service qu'on puisse lui rendre !
    Il s'agit d'un examen, nous dit-il...
    un code tout fait ne lui rendra certainement pas service....

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Ce n'est pas un programme de fin d'année nan! C'est un programme de début d'année auquel le prof ne m'a pas encore donné de solution! Pour le moment nous faisons les chaînes de caractères et ca bizarement ca va! J'ai déja fait un GNS mais mal je crois. Mon algorithme n'a pas l'air de m'aider fort alors que c'est la partie la plus importante d'un programme si on réussi ca on résussi le codage! Mais moi nan...

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    auquel le prof ne m'a pas encore donné de solution
    Et... tu crois vraiment que le "prof" ne la connait pas, cette solution ultra-simple ?
    Montre-nous ton algo, tel qu'il est, donc...
    On commencera par corriger l'algo....
    Si tu ne connais rien en algo : pas de problème : exprime-le en français élémentaire....
    Nous voulons juste voir tes efforts !

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Non non je ne dis pas que le "professseur" ne le sait pas mais qu'il n'a tout simplement pas donné le bon code pour ceux qui n'y étaient pas arriver!
    Enfin bon, je vais refaire mon analyse et vous la montrer mais tout d'abord une question : Je viens à me demander si il faut vraiment un compteur. A mon avis il y a un petit truc que je ne saisi pas et qui fait que je ne vois pas très bien comment le résoudre.
    Je suis désolé d'être un peu lent à la détente mais je ne demande qu'à progresser...

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par 20cents
    ... Je viens à me demander si il faut vraiment un compteur....
    ben c'est ce que j'ai pensé en lisant le sujet

    Le programme affichera alors tous les nombres entiers
    pas le nombre de nombres entiers...

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu ne demandes qu'à progresser et je t'approuve.
    Commence par cette analyse et montre-nous tes conclusions. Ce sera là le 1er vrai pas... et il me semble qu'il est temps de le faire...
    Si l'exposé de ton analyse montre bien que tu en as faite une, tu recevras volontiers mon aide

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Voici le début d'une analyse que je viens de faire :

    - Réserver espace mémoire pour les variables intN1; intN2; intN3; inti

    - Fais

    - Demander à l'utilisateur d'entrer deux nombre entiers positifs N1 et N2

    - jusque N2 > N1

    - Pour i allant de N1 à N2

    - Si i Mod 3 = 0 et si i mod 5 = 0 alors N3 = 0

    - Sinon N3 = N1 + 1


    [B]Voilà à partir d'ici je bloque parce que je pense au fait qu'il peut y avoir plus d'un nombre compris entre N1 et N2 et non-multiple de 3 et de 5. Mais dans ce cas comment faire afficher plusieurs nombres dans VB?

    Le début est-il déja bon?

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je vais te donner la solution... ami... mais il me semble que ce qui te fait le plus défaut n'est pas la connaissance de VB (la syntaxe)... mais bien autre chose !
    Je suis désolé...
    Je fais une boucle de N1 à N2.
    Si N2 est plus petit que N1, je la fais décroissante
    si N2 est plus grand que N1, je la fais croissante
    dans la boucle, je ne garde que ce qui n'est pas un multiple de 3 ou de 5

    Il m'a fallu quelques secondes à peine pour faire celà (et je suis totalement autodidacte !)

    Sur une form : 2 textBoxes Text1 et Text2 et un bouton de commande Command1
    et ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command1_Click()
      N1 = Val(Text1.Text)
      N2 = Val(Text2.Text)
      If N1 < N2 Then
        toto = -1
      Else
        toto = 1
      End If
      For i = N2 To N1 Step toto
        If i Mod 5 <> 0 And i Mod 3 <> 0 Then
          MsgBox i
        End If
      Next
    End Sub
    Tu lances, renseignes Text1 et Text2 et appuies sur command1

    Vraiment...!
    Je te laisse le soin (au moins çà, quand même) :
    - de gérer N2 = N1
    - de remplacer le msgbox par une listbox
    J'espère qu'en fin d'année, tu sais faire celà ...

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Merci beaucoup,

    mais juste avant que tu ne me répondes j'avais fait ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Dim n1 As Integer
    Dim n2 As Integer
    Dim n3 As Integer
    Dim i As Integer
     
    Private Sub main()
      Do
        n1 = InputBox("Entrez le premier nombre entier positif: ")
        n2 = InputBox("Entrez le deuxième nombre entier positif: ")
      Loop Until n1 < n2
      For i = n1 To n2
        If i Mod 3 = 0 And i Mod 5 = 0 Then
          n3 = 0
        Else
          n3 = n1 + 1
        End If
      Next i
      MsgBox "Nombres entiers compris entre n1 et n2 sauf les multiples de 3 et de 5 : " & n3
     
    End Sub

    C'est bon aussi?

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Pardonne-moi...
    Je ne regarde même pas (il s'agit de vraiment trop élémentaire).
    A toi de jouer... tu as tous les éléments, maintenant !

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par 20cents
    ...
    C'est bon aussi?
    ben cela correspond à ton algo .. mais celui-ci est-t'il bon ..?
    - qu'el résulat ve tu obtenir dans N3 .?
    as tu essayer de mettre des valeurs

    dans tes variabes i, N1, N2 ,N3
    - Pour i allant de N1 à N2

    - Si i Mod 3 = 0 et si i mod 5 = 0 alors N3 = 0

    - Sinon N3 = N1 + 1
    et d'essayer de faire "tourner le code à la main"..?
    Par exemple N1 = 1, N2 =3 ..

    1° tour de boucle
    i = 1 N1= 1 N2 = 3 N3 =
    i Mod 3 = 1 ... et i Mod 5 = 1
    ==> N3= N1 +1 => N3 = 2
    2° tour de boucle
    i = 2 N1= 1 N2 = 3 N3 = 2
    i Mod 3 = 2 ... et i Mod 5 = 2
    ==> N3= N1 +1 => N3 = 2
    3° tour de boucle
    i = 3 N1= 1 N2 = 3 N3 = 2
    i Mod 3 = 0 ... et i Mod 5 = 3

    d'ou au final N3 =2 ......


    Maintenant N1 = 14, N2 =15 ..
    1° tour de boucle
    i = 14 N1= 14 N2 = 15 N3 =
    i Mod 3 = 2 ... et i Mod 5 = 4
    N3 = N1+1 = 15
    2° tour de boucle
    i = 15 N1= 14 N2 = 15 N3 = 15
    i Mod 3 = 0 ... et i Mod 5 = 0
    N3 = 0

    au final N3 = 0 ..

    alors tu est sur que c'est ce que tu ve ..? ...

Discussions similaires

  1. Problème pour mon 1er projet.
    Par bigwade dans le forum Android
    Réponses: 2
    Dernier message: 08/10/2012, 12h26
  2. Problème pour mon P.F.E
    Par b2o92ikho dans le forum Forms
    Réponses: 3
    Dernier message: 01/04/2009, 07h12
  3. Petit problème pour mon projet
    Par dad72 dans le forum Langage
    Réponses: 8
    Dernier message: 27/05/2008, 17h52
  4. Réponses: 5
    Dernier message: 22/11/2007, 20h12
  5. problème pour mon application java
    Par smile2206 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/01/2007, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo