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

Ajuda com trabalho em visual basic

Discussão em 'Programação' iniciada por daniel6344, 5 de Dezembro de 2008. (Respostas: 14; Visualizações: 780)

  1. preciso de uma ajuda vossa sff

    o meu stor de AI pediu para fazer um algoritmo que consiste em:
    introduzimos 1 numero por exemplo 257, mas o numero pode ter mais ou menos dígitos, e o resultado final é ficarmos com a soma dos números, neste caso 2+5+7=14.

    algum expert em visual basic me pode ajudar?

    ps:a versão que usamos é o visual basic 2008 express edition
     
    Última edição pelo moderador: 6 de Dezembro de 2008
  2. ribeiro55

    ribeiro55 Power Member

    Assim não aprendes nada. No pain no gain.
    Mas como estou aqui para ajudar e não para julgar, toma lá uma solução:

    Código:
            Dim Num As Integer = 256452234
            Dim Soma As Integer = 0
    
            For Each C As Char In Num.ToString
                Soma += CInt(C.ToString)
            Next
    
            MsgBox("Soma dos caracteres: " & Soma)
    Cada um sabe de si.
     
    Última edição: 5 de Dezembro de 2008
  3. Tomb4000

    Tomb4000 Power Member

    se tirares o resto da divisão por 10, vais sempre obter o ultimo algarismo, adicionas a uma variavel inicializada a 0. No fim tens a soma pretendida. Percebeste?
     

  4. n podes por isso em codigo?sff

    é que eu ainda percebo que para achar o ultimo algarismo faço (numero mod 10) mas depois não sei como faço para os somar todos
     
  5. ribeiro55

    ribeiro55 Power Member

    Ainda que funcione, é lógica e processamento desperdiçado.
    A framework faz te a papinha.
     
  6. Tomb4000

    Tomb4000 Power Member

    nao pesco nada de visual basic :p

    mete aí as maos ao serviço e vai metendo aí as duvidas, de certeza que alguem ajuda se te esforçares...
     
  7. ribeiro55

    ribeiro55 Power Member

    A solução que dei lá em cima está testada em VB2k8 Express.

    Como lá disse, e como disse o Tomb, meter as mãos ao serviço é que nos faz evoluír, mas como não estou aqui para julgar ninguém, ajudo. Se houver dúvida com a solução, fico extasiado em esclarecer.
     
  8. eu tmb n percebo muito

    eu sei que:
    pede um numero(que pode variar de digitos)por exemplo 257
    e o resultado final é a soma dos numeros 2+5+7

    para chegar ao ultimo digito é fazer numero mod 10, mas não sei como é que faço para os outros digitos e depois soma-los todos
     
  9. Tomb4000

    Tomb4000 Power Member

    Ambas as formas funcionam, ele que veja a melhor solução a aplicar à disciplina ou cadeira ou la o que seja :p se está a iniciar e não pesca muito e a cadeira é básica e ainda não deram os "castings" concelho a minha solução, se já deu isso tudo é melhor a solução do ribeiro. tens que ver...
     
  10. Tomb4000

    Tomb4000 Power Member

    Fazes o mod para obter o resto da divisao por 10 e soma a uma variavel.
    Resultado = X Mod 10

    Depois fazes a divisão inteira por 10 para teres os numeros que faltam.

    Tas a ver a cena?
     
  11. como é que faço uma divisão inteira pelos outros que faltam?

    eu ja tenho assim o codigo

    Sub soma_numeros()

    Dim num As Single
    Dim soma As Single = 0
    Dim resto As Single = 0

    Console.WriteLine("Introduza os números")
    num = Console.ReadLine()

    resto = num Mod 10
     
  12. Tomb4000

    Tomb4000 Power Member

    tens que utilizar em vez de single, Integer.

    Depois de fazeres:
    resto = num Mod 10
    Adicionas este resto a uma variavel para te ir guardando as somas.
    E fazes num = num / 10 onde este numero te fica com os restantes numeros para voltares a fazer o mode e dividir novamente por 10. ate tudo se acabar, por tanto tens que ter isso dentro de um ciclo com a condição ( enquanto (num / 10)>0 fazer )
     
  13. Sub numeros()

    Dim soma As Single = 0
    Dim resultadodivisao As Single
    Dim resto As Single
    Dim num As Single = 0

    Console.WriteLine("Introduza os números")
    num = Console.ReadLine()

    cicle()
    when resultadodadivisao >0
    resto = resultadodadivisão Mod 10
    resultadodadivisao = resultadodadivisão \ 10
    soma = soma + resto
    end cicle

    End Sub

    cheguei até aqui mas não percebo akilo dos cicles. podias corrigir só o meu codigo sff?
     
  14. Tomb4000

    Tomb4000 Power Member

    Não pesco nada de visual basic mas vou tentar corrigir com base no que está aqui de codigo:


    Sub numeros()

    Dim soma As Single = 0
    Dim resto As Single
    Dim num As Single = 0

    Console.WriteLine("Introduza os números")
    num = Console.ReadLine()

    do while(num/10 > 0) //isto dá a divisão inteira por 10 espero eu, em c da lolol

    resto = num Mod 10
    soma = soma + resto
    num = num \ 10

    loop

    End Sub
     
  15. é isso já consegui obrigado
     
    Última edição: 6 de Dezembro de 2008

Partilhar esta Página