1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB 6 - Como fazer um gerador das séries de collatz

Discussão em 'Programação' iniciada por [email protected], 15 de Outubro de 2008. (Respostas: 2; Visualizações: 1782)

Estado do Tópico:
Fechado a novas mensagens.
  1. Boas pessoal!! Tenho aki um trabalho para fazer mas n estou a perceber mt bem como se faz :confused:... Será k m podem orientar?!

    Tenho d modificar este programa:

    [​IMG]

    K tem o código:​

    Código:
    [LEFT]Private Sub Command_Gerar_Click()
    Dim Numero As Long, Contador As Integer
    Numero = Text_ValorEntrado.Text
    List_Saida.Clear
    List_Saida.AddItem Numero
    Contador = 1
    Do Until Numero = 1[/LEFT]
     
    [LEFT]If Numero Mod 2 = 0 Then
    Numero = Numero / 2
    Else
    Numero = Numero * 3 + 1
    End If[/LEFT]
     
    [LEFT]List_Saida.AddItem Numero
    Contador = Contador + 1[/LEFT]
     
    [LEFT]Loop
    Label_NumeroElementos.Caption = Contador
    End Sub[/LEFT]
    

    De modo a k este apresente o total de elementos da série de Collatz para diversos números de partida. Os números de partida são os inteiros compreendidos entre os dois números especificados ( de:... e até:... ).​

    [​IMG]

    Não estou bem a ver as alterações k tenho de fazer!!! :confused:

    Espero rsp
    Cumps ;)
     
    Última edição pelo moderador: 15 de Outubro de 2008
  2. aqui tens...

    Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim numinicial As Long, numfinal As Long, numero As Long, cnt As Long, maximo As Long

    numinicial = txt_numinicial.Text
    numfinal = txt_numfinal.Text
    txt_resultados.Clear()

    If numinicial <= 1 Or numinicial > numfinal Then
    MsgBox("Erro na entrada de dados. O número inicial deve ser maior que 1 e o número final deve ser maior que o número inicial.")
    Else
    For n = numinicial To numfinal
    numero = n
    maximo = numero
    cnt = 1
    Do
    If numero Mod 2 = 0 Then
    numero = numero / 2
    Else
    numero = numero * 3 + 1
    End If
    cnt = cnt + 1
    If numero > maximo Then maximo = numero
    Loop Until numero = 1
    txt_resultados.AppendText(n & " " & cnt & " " & maximo & vbCrLf)
    Next
    End If
    End Sub
    End Class
     
  3. Jack-O-Lantern

    Jack-O-Lantern Colaborador
    Staff Member

    O cálculo não era fácil... (jk, não faço a mínima :D)
     
Estado do Tópico:
Fechado a novas mensagens.

Partilhar esta Página