• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

digital

Ajuda num projecto

8 mensagens neste tópico

Bom dia a todos

Sou nova nestas andanças de Visual Basic e nao sei bem ainda como isto funciona, por isso precisava da vossa ajuda para resolver um problema que me surgiu num projecto.

estou a trabalhar em VB.Net e quero que o programa me devolva todas as combinações de soma de 3 numeros (nao repetidos), possiveis para determinado numero introduzido pelo utilizador

por exemplo: o utilizador introduz o numero 6, o VB deverá devolver (3+2+1) é a unica combinação possivel, mas se o utilizador introduzir o 9 deverá devolver (4+3+2), (1+2+6),(5+3+1) a ordem dos numeros nao interessa.

desde já agradeço a ajuda possivel

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como os valores a introduzir são limitados (até 9, a não ser assim seria uma questão práticamente insoluvel), acho que deves optar por usar o if e imprimir os resultados possíveis.

ex:

Private Sub Command1_Click()

If Text1 = 6 Then

Label1 = 1 & 2 & 3

Label2 = ""

Label3 = ""

End If

If Text1 = 9 Then

Label1 = 1 & 2 & 6

Label2 = 2 & 3 & 4

Label3 = 5 & 3 & 1

End If

If Text1 = 8 Then

Label1 = 1 & 2 & 3

Label2 = 1 & 3 & 4

Label3 = 4 & 3 & 1

End If

If Text1 = 7 Then

Label1 = 1 & 2 & 4

Label2 = 1 & 2 & 4

Label3 = ""

End If

Avisa se deu alguma coisa

End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigada santos1948, já tinha pensado assim mas o problema, e talvez me tenha expressado mal, é que o limite não é o 9. O ideal seria mesmo sem limite de numero introduzido pelo utilizador. Ou em ultimo caso colocar um limite assim até ao 100 no minimo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ola pessoal,

Estive a avançar no projecto que tinha. Já está a funcionar mas o problema é que me dá combinações com numeros repetidos ex: para o numero 7 dá 1 + 2 + 4 e

2 + 2 + 3 esta ultima não deveria aparecer ja que aparece o 2 duas vezes.

o codigo que tenho é este:

Dim num1, num2, num3, soma, inteiro As Integer
        inteiro = InputBox("Insira um numero Inteiro", "Por favor digite Numero")
        LblNumero.Text = "As combinações possiveis para o numero " & inteiro & " são: "
        If inteiro = 0 Then
            MessageBox.Show("Terminou programa")
        ElseIf inteiro < 6 Then
            MessageBox.Show(" O Numero Inteiro a introduzir tem de ser maior que seis", "Erro")
        End If
        For num1 = 1 To inteiro - num1
            For num2 = 2 To inteiro - (num1 + num2)
                soma = num1 + num2
                num3 = inteiro - soma
                If num3 <= num2 Then
                    Exit For
                    If num1 = num2 Then
                        Exit For
                    End If
                End If
                TextBoxResult.Text = TextBoxResult.Text & num1 & " + " & num2 & " + " & num3 & vbNewLine
                Exit For
            Next
        Next

Quem poderia dar uma ajuda?

Obrigada

0

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