Liste des nombres premiers

Soyez le premier à donner votre avis sur cette source.

Vue 11 881 fois - Téléchargée 320 fois

Description

Bonjour, il s'agit de mon premier exemple posté car je suis débutant en VB.Net Ce programme permet de lister les nombres premiers. Bien sûr, je suis sûr qu'il ne va rien apporter de nouveau mais le but est de progresser et de me dire ce qui va et surtout ce qui ne va pas dans mon code. Merci d'avance pour vos commentaires.

Source / Exemple :


Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Code généré par le Concepteur Windows Form "

    Public Sub New()
        MyBase.New()

        'Cet appel est requis par le Concepteur Windows Form.
        InitializeComponent()

        'Ajoutez une initialisation quelconque après l'appel InitializeComponent()

    End Sub

    'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Requis par le Concepteur Windows Form
    Private components As System.ComponentModel.IContainer

    'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
    'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
    'Ne la modifiez pas en utilisant l'éditeur de code.
    Friend WithEvents btnQuitter As System.Windows.Forms.Label
    Friend WithEvents lstNombresPremiers As System.Windows.Forms.ListBox
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.btnQuitter = New System.Windows.Forms.Label
        Me.lstNombresPremiers = New System.Windows.Forms.ListBox
        Me.Button1 = New System.Windows.Forms.Button
        Me.Button2 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'btnQuitter
        '
        Me.btnQuitter.AutoSize = True
        Me.btnQuitter.Font = New System.Drawing.Font("Times New Roman", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.btnQuitter.ForeColor = System.Drawing.Color.Red
        Me.btnQuitter.Location = New System.Drawing.Point(144, 24)
        Me.btnQuitter.Name = "btnQuitter"
        Me.btnQuitter.Size = New System.Drawing.Size(230, 25)
        Me.btnQuitter.TabIndex = 0
        Me.btnQuitter.Text = "Liste de nombres premiers"
        '
        'lstNombresPremiers
        '
        Me.lstNombresPremiers.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.lstNombresPremiers.ForeColor = System.Drawing.Color.Blue
        Me.lstNombresPremiers.ItemHeight = 16
        Me.lstNombresPremiers.Location = New System.Drawing.Point(64, 80)
        Me.lstNombresPremiers.Name = "lstNombresPremiers"
        Me.lstNombresPremiers.Size = New System.Drawing.Size(104, 260)
        Me.lstNombresPremiers.TabIndex = 1
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(408, 320)
        Me.Button1.Name = "Button1"
        Me.Button1.TabIndex = 2
        Me.Button1.Text = "&Quitter"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(408, 288)
        Me.Button2.Name = "Button2"
        Me.Button2.TabIndex = 3
        Me.Button2.Text = "&Afficher"
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(512, 374)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.lstNombresPremiers)
        Me.Controls.Add(Me.btnQuitter)
        Me.Name = "Form1"
        Me.Text = "Liste des nombres premiers"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim intCompteur As System.Int32  ' Compteur de boucle externe
        Dim intCompteur1 As System.Int32   ' Compteur de boucle interne
        Dim intDiviseur As System.Int32  ' Compteur de diviseur
        Dim strNombre As System.String  ' Mémorise la saisie du nombre max. dans une variable
        strNombre = InputBox("Entrez un nombre", "Saisie d'un nombre")
        lstNombresPremiers.Items.Clear()    ' Efface la ListBox à chaque nouvelle saisie
        For intCompteur = 1 To CInt(strNombre) Step 1
            intDiviseur = 0 ' Réinitialise le nombre de diviseur à chaque boucle interne
            ' Boucle interne déterminant le nombre de diviseurs pour chaque nombre
            For intCompteur1 = 1 To CInt(strNombre) Step 1
                If intCompteur Mod intCompteur1 = 0 Then
                    intDiviseur += 1
                End If
            Next
            ' Si le nombre de diviseur est de 2, il s'agit d'un nombre premier et on l'ajoute à la ListBox
            If intDiviseur = 2 Then
                lstNombresPremiers.Items.Add(intCompteur)
            End If
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub
End Class

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_TLeM4
Messages postés
7
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
23 septembre 2011
-
Pour être plus précis et pour raccourcir considérablement le temps de recherche tu peux te limiter à la racine carré du nombre que tu veux tester, en plus ton code est pas très clair...
us_30
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8 -
Bonjour,

En ce qui concerne l'algorithme mathématique, on peut dire qu'il en existe des biens mieux programmés si VBF... et, je trouve dommage que pour une simple recherche de nb premier, d'avoir un listing si long... je crois que tu devrais revoir la partie concernant la recherche des nb premiers... Faut mieux savoir bien programmer l'essentiel, que toute la floriture autour...

Bonne programmation et bon courage,

Amicalement,
Us.
chewbaka62
Messages postés
67
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
30 juillet 2006
-
Oui je sais mais c'est pour m'imprégner des nouveautés de la plateforme .Net que j'essaie d'être rigoureux.

Merci quand-même
NHenry
Messages postés
14617
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 janvier 2020
138 -
Tu peux remplacer System.Int32 par Integer.
chewbaka62
Messages postés
67
Date d'inscription
mardi 1 novembre 2005
Statut
Membre
Dernière intervention
30 juillet 2006
-
Bonjour Hijakhakker,

Tout à fait d'accord avec toi. Erreur de débutant tout simplement.
Merci pour ta remarque.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.