Ir para o conteúdo
deuzivaldo

Gerar combinações

Mensagens Recomendadas

deuzivaldo    0
deuzivaldo

Bom dia a todos

Vi um postagem de um código para gera combinações sem repetições por Jlpcalado Em datagridview

Este e o código dele

Public Class Form1

   Dim matrizNum

   Dim matrizSeq

   Dim table As DataTable

   Dim contador As Integer = 0

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    table = New DataTable

    table.Columns.Add("Id", GetType(Integer))

    table.Columns.Add("n1", GetType(Integer))

    table.Columns.Add("n2", GetType(Integer))

    table.Columns.Add("n3", GetType(Integer))

    table.Columns.Add("n4", GetType(Integer))

    table.Columns.Add("n5", GetType(Integer))

   End Sub

   Sub geraComb(ByVal totalNum As Integer, ByVal totalElementos As Integer, ByVal ElementoAtual As Integer, ByVal num As Integer, ByVal sequencia As String)

    Dim seqTemp As String : Dim limiteElem As Integer

    limiteElem = totalNum - (totalElementos - ElementoAtual)

    For i = num To limiteElem

            seqTemp = sequencia & (matrizNum(i - 1))

            If ElementoAtual < totalElementos Then

                   Call geraComb(totalNum, totalElementos, ElementoAtual + 1, i + 1, seqTemp & "  ")

            Else

                   matrizSeq = Split(seqTemp, "  ")

                   contador += 1

                   table.Rows.Add(contador, matrizSeq(0), matrizSeq(1), matrizSeq(2), matrizSeq(3), matrizSeq(4))

            End If

    Next i

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    matrizNum = Split(txtnumeros.Text, ",")

    Call geraComb(UBound(matrizNum) + 1, 5, 1, 1, "")  ' combinações 5 a 5

    DataGridView1.DataSource = table

    ToolStripStatusLabel1.Text = table.Rows.Count.ToString

   End Sub

end class

 Confesso que a adorei, gostaria de saber se tem como fazer em um listview.

 Bom dia e abraços a todos

 

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade