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

san115592

[Resolvido] Combinações de número inteiros positivos

8 mensagens neste tópico

Ola boa noite,

precisava de umas dicas para a resolução deste exercicio.

Não sei como começar

"Elabore um programa que receba um número inteiro positivo e apresente todas as

combinaçõesdeinteirosnãorepetidoscujasomasejaessemesmonúmero.

Exemplo:número9(1+2+6)(2+3+4)

Faça com que o programa apresente mensagem de erro caso o número introduzido

sejainferioraomínimopossível(Extra01)

Faça com que o programa vá pedindo números sucessivamente até ser introduzido o

0(Zero).(Extra02)"

Será que alguem está disponivel para me oreintar no começo deste problema.

Obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OI!bem a dificuldade aqui parece me que é saber como calcular todas as combinacoes possiveis, deve haver uma funcao qualquer em matematica para isso mas eu nao sei.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olha fiz uma cena assim:

um projecto com uma textbox para o utilizador colocar o numero maior que 1 e menor que 10 e um botao.

no botao este codigo:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim x, y, z, soma, variavel As Integer 'aqui declaro as variaveis 

        variavel = Val(TextBox1.Text) ' para poder fazer contas com os numeros escritos na textbox tem de se fazer isto
        If variavel < 2 Or variavel > 9 Then 'defino aqui os limites
            MsgBox("Tem de ser um numero maior de 1 e menor que 10, sff.")
            Exit Sub
        End If
        'até 9 realmente é combinacoes de 3 numeros por isso 3 ciclos for resolve
        For x = 0 To variavel
            For y = 0 To variavel
                For z = 0 To variavel
                    soma = x + y + z
                    If soma = variavel Then 'verifica se a soma da combinacao dos 3 numeros é= ao valor introduzido
                        If x <> y And x <> z And y <> z Then 'para que nao repita os numeros na combinacao
                            MsgBox(x & " + " & y & " + " & z & " = " & variavel)
                        End If
                    End If
                Next
            Next
        Next
    End Sub
End Class

isto faz aparecer nnuma msgbox as combinacoes de numeros int nao repetidos que somados dá o numero introduzido.

mas tens ainda muita coisa a acrescentar/alterar

por exemplo aparece os zeros a esquerda tipo 0+1+8

os numeros dentro da combinacao nao se repetem mas repete as combinacoes tipo, aparece a combinacao 0+1+8 e 0+8+1

mas olha pra orientar no começo do problema deve de dar.

conforme vais tendo duvidas diz.

fica bem

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok obrigada foi uma ajuda preciosa mas ainda vou testar com um loop dir-te-ei se conseguir.

Bem Hajas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ola

Aqui vai o final

Dim x, y, z, w, numero, contador As Integer
        numero = InputBox("Insira um numero Inteiro", "Por favor digite Numero")
        LabNume.Text = "Introduziu o Numero " & numero
        contador = 0
        If numero = 0 Then
            MessageBox.Show("Terminou programa")
        ElseIf numero < 6 Then
            MessageBox.Show(" O Numero Inteiro a introduzir tem de ser maior que seis", "Erro")
        End If
        For x = 1 To numero - x
            For y = 2 To numero - (x + y)
                w = x + y
                z = numero - w
                If z <= y Then
                    Exit For
                End If
                ListbNumeros.BeginUpdate()
                ListbNumeros.Items.Add(x & " + " & y & " + " & z & " = " & numero)
                ListbNumeros.EndUpdate()
                contador = contador + 1
                LabCombinacoes.Text = ("Foram calculadas " & contador & " Combinacoes ")
                Exit For
            Next
        Next
    End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim

Já esta a carburar, podes encerrar.

Obrigada por tudo

Agradece ao M@KO :(

PS: Alterei o titulo para algo mais sugestivo

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