Ir para o conteúdo
Koi

Conversao de forma simplificada

Mensagens Recomendadas

Koi    0
Koi

Boas  :cheesygrin:

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

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

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Koi    0
Koi

TheDark tou a tentar fazer por essa maneira so que obtenho este erro pq do "Switch"

'Switch' is a type and cannot be used as an expression.

  :dontgetit:

Alguem sabe pq?

Cumps  :hmm:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade