• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Koi

Conversao de forma simplificada

8 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:-[ Arcaico pq vou repetir o codigo montes de vezes. Basicamente vou usar esse codigo cinco vezes com poucas variacoes.

cumps  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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 :cheesygrin:

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Francamente não sei. Não sou grande coisa a VB, vi isso ontem nesta página, imaginei que funcionasse assim.

EDIT

Supondo que estás a usar VB6: Switch@MSDN. É efectivamente como a utilizei. Não entendo esse erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, está lá no topo da página a dizer Visual Basic 6.0

0

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