Jump to content

Conversao de forma simplificada


Koi

Recommended Posts

Boas  😁

Estou a fazer um programa para converter polegadas, cms, pés, jardas e milhas e tou a usar o seguinte layout na forma :

Textbox--- combobox com as diversas medidas---- texbox onde ira aparecer o output e combobox para escolher a medida de output.

A nivel do ciclo de calculo estava a pensar algo assim:

If (Uni1.SelectedItem = "Pé") Then

                If (Uni2.SelectedItem = "Polegada") Then

                    Dados2.Text() = Dados1.Text() * 12

                End If

                If (Uni2.SelectedItem = "Jarda") Then

                    Dados2.Text() = Dados1.Text() / 3

                End If

                If (Uni2.SelectedItem = "Milha") Then

                    Dados2.Text() = Dados1.Text() / 5.28

Mas sinceramente acho mt arcaico....  :nono:

Que dizem...

Abc

Link to comment
Share on other sites

1º Usa a ferramenta Geshi para colocares o codigo. Fica mais legivel.

2º Deves fazer umas pesquenas correcções ao teu codigo. Dados1.Text() devolve-te uma String e não um valor Numérico. Para ficar mais correcto poe assim:

If (Uni1.SelectedItem = "Pé") Then
                If (Uni2.SelectedItem = "Polegada") Then
                    Dados2.Text() = CDbl(Dados1.Text()) * 12
                End If

                If (Uni2.SelectedItem = "Jarda") Then
                    Dados2.Text() = CDbl(Dados1.Text()) / 3
                End If

                If (Uni2.SelectedItem = "Milha") Then
                    Dados2.Text() = CDbl(Dados1.Text()) / 5.28
                End If
End If

Podes fazer de outra forma, apenas te apresentei uma solução.

Quanto ao chamar "arcaico" ao teu código, não vejo o porquê. Para que complicar o que é simples.

Cumps

Link to comment
Share on other sites

E que tal...

Select Case Uni1.SelectedItem
Case "Pé"
	mult=Switch(Uni2.SelectedItem = "Polegada", 12, Uni2.SelectedItem = "Jarda", 1/3, Uni2.SelectedItem = "Milha", 1/5.28)
Case "Polegada"
	mult=Switch(...)
Case "Jarda"
	mult=Switch(...)
Case "Milha"
	mult=Switch(...)
End Select
Dados2.Text() = CDbl(Dados1.Text()) * mult

É só colocar ali nos Switches os restantes valores da conversão. E deixa de haver repetição de código, que como referiste é muito má prática 😁

Isto, claro, se o Select Case funcionar com strings.

Desaparecido.

Link to comment
Share on other sites

  • 4 weeks later...

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.