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

san115592

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

Recommended Posts

san115592

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


Clarisse

Share this post


Link to post
Share on other sites
M@KO

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

Share this post


Link to post
Share on other sites
san115592

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

Bem Hajas


Clarisse

Share this post


Link to post
Share on other sites
san115592

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


Clarisse

Share this post


Link to post
Share on other sites
jpaulino

Sim

Já esta a carburar, podes encerrar.

Obrigada por tudo

Agradece ao M@KO :(

PS: Alterei o titulo para algo mais sugestivo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.