Jump to content
Lukas S.

Visual Basic - Consola

Recommended Posts

Lukas S.

Boas pessoal ;) a quanto tempo :) ... Estava a ver os exercicios da minha namorada quando eu decido fazer um exercicio dela que ela fez em c++ para vb mas para a consola ... só que o estranho é que algo se passa pois não está a funcionar ... deixo aqui o código

Module Module1
Sub Main()
	Dim distanciaViagens = 0, distanciaTotal = 0, maiorViagem = 0, menorViagem = 0
	Dim i = 1
	Dim mediaViagem = 0
	Console.WriteLine("Qual o numero de Viagens?")
	Console.WriteLine("")
	Dim numeroViagens = Console.ReadLine
	For i = 1 To i = numeroViagens
		Console.WriteLine(i)
		Console.WriteLine("Qual a distancia da Viagem " + i + "em km?")
		Dim input1
		input1 = Console.ReadLine
		distanciaViagens = input1
		distanciaTotal = distanciaTotal + distanciaViagens
	Next
	If i = 0 Then
		maiorViagem = distanciaViagens
		menorViagem = distanciaViagens
	Else
		If distanciaViagens > maiorViagem Then
			maiorViagem = distanciaViagens
		End If
		If distanciaViagens < menorViagem Then
			menorViagem = distanciaViagens
		End If
	End If
	If numeroViagens <> 0 Then
		mediaViagem = distanciaTotal / numeroViagens
	End If
	Console.WriteLine("A Viagem mais longa foi de " & maiorViagem & "kms")
	Console.WriteLine("A Viagem mais curta foi de " & menorViagem & "kms")
	Console.WriteLine("A Distancia Total percorrida foi de " & distanciaTotal & "kms")
	Console.WriteLine("A média de kms percorridos foi de " & mediaViagem & "kms")
End Sub
End Module

Ele automaticamente passa de

For i = 1 To i = numeroViagens

para i=0 ( i nunca vai ser 0 logo como ele passa praqui ?)

Se alguém poder ajudar agradeço

Edited by Lukas S.

E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Share this post


Link to post
Share on other sites
ribeiro55

Muita magia negra faz o compiler para passar estas situações para CIL...

Repara, tu não especifícas nem um tipo de dados. Nem um!

Para além disso, tu estás a definir o i=1 no início.

Depois no loop estás basicamente a dizer que deverá iterar até, e cito:

For i = 1 To i = numeroViagens

Ou seja, De 1 até Boolean... i não é igual ao número de viagens, a menos que seja 1, logo, estás a iterar 1 até False. Resultado: salta do ciclo. Não há nada para iterar.

Também tens para ali umas confusões e atropelamentos de variáveis... ora analisa lá esta proposta e tenta perceber o que tens de marado do teu lado:

Module Module1
   Sub Main()
       Dim totalViagens As Integer
       Dim maiorViagem As Integer = Integer.MinValue
       Dim menorViagem As Integer = Integer.MaxValue
       Console.Write("Qual o numero de Viagens? :")
       Dim numeroViagens As Integer = Integer.Parse(Console.ReadLine)
       If numeroViagens < 1 Then Console.WriteLine("Vai gozar com outro!") : Console.Read() : End
       For i As Integer = 1 To numeroViagens
           Console.Write("Qual a distancia da Viagem " & i.ToString & " em km? :")
           Dim dist As Integer = Integer.Parse(Console.ReadLine)
           totalViagens += dist
           maiorViagem = Math.Max(maiorViagem, dist)
           menorViagem = Math.Min(menorViagem, dist)
       Next
       Console.WriteLine("--------------------")
       Console.WriteLine("A Viagem mais longa foi de " & maiorViagem.ToString & " kms")
       Console.WriteLine("A Viagem mais curta foi de " & menorViagem.ToString & " kms")
       Console.WriteLine("A Distancia Total percorrida foi de " & totalViagens.ToString & " kms")
       Console.WriteLine("A média de kms percorridos foi de " &
                         Math.Round(totalViagens / numeroViagens, 2).ToString & " kms")
       Console.Read()
   End Sub
End Module


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

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

×
×
  • Create New...

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.