Ajuda com trabalho em visual basic

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:
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:
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?
 
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?


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
 
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.
 
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...
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
 
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...
 
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?
 
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?

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
 
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 )
 
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 )

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?
 
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
 
Back
Topo