NUMEROS INTEIROS
Olá
Tenho um problema estranho no seguinte código:
x = ModZum
If Int(x) = x Then
Resultado = x
Else
Resultado = "sqr (" & ZumReal ^ 2 + ZumImag ^ 2 & ")"
End If
Notem que ModZum = sqr(ZumReal ^ 2 + ZumImag ^ 2)
Por exemplo, se ZumReal=2 e ZumImag=3, obtenho o resultado sqr(13), que é o correcto.
Porém, se for ZumReal=4 e ZumImag=3, obtenho o resultado sqr(25), quando deveria obter 5.
Acho que não há erro no código. Será que há alguma coisa estranha com o Int(x)?
Alguém me pode ajudar?
Obrigado desde já.
Tenho um problema estranho no seguinte código:
x = ModZum
If Int(x) = x Then
Resultado = x
Else
Resultado = "sqr (" & ZumReal ^ 2 + ZumImag ^ 2 & ")"
End If
Notem que ModZum = sqr(ZumReal ^ 2 + ZumImag ^ 2)
Por exemplo, se ZumReal=2 e ZumImag=3, obtenho o resultado sqr(13), que é o correcto.
Porém, se for ZumReal=4 e ZumImag=3, obtenho o resultado sqr(25), quando deveria obter 5.
Acho que não há erro no código. Será que há alguma coisa estranha com o Int(x)?
Alguém me pode ajudar?
Obrigado desde já.
Como 5? Ta doido? ehuehuehu 4^2 = 16 ... 3^2 = 9 Logo, 16 + 9 = 25..ta certo...no mesmo exemplo que vc deu acima..
o resultado da srt(25) que seria 5..
ou eu to chapando?
Não estou doido não!
Você é que não percebeu o problema.
é óbvio que o resultado está certo, mas não aparece escrito como eu quero. Eu quero que, em vez de escrever sqr(25), escreva 5.
Quero que isso aconteça sempre que a raiz seja exacta, só usando sqr quando não o for.
De qualquer modo, obrigado.
Ignorante (mas não tanto...)
Você é que não percebeu o problema.
é óbvio que o resultado está certo, mas não aparece escrito como eu quero. Eu quero que, em vez de escrever sqr(25), escreva 5.
Quero que isso aconteça sempre que a raiz seja exacta, só usando sqr quando não o for.
De qualquer modo, obrigado.
Ignorante (mas não tanto...)
Sei não cara, comigo deu certo, olha como testei:
Mostra "5"
ZumReal = 4
ZumImag = 3
ModZum = Sqr((ZumReal ^ 2) + (ZumImag ^ 2))
x = ModZum
If Int(x) = x Then
Resultado = x
Else
Resultado = "Sqr(" & ((ZumReal ^ 2) + (ZumImag ^ 2)) & ")"
End If
MsgBox Resultado
Mostra "5"
Será do meu computador?
Continua a dar sqr(25), mesmo escrevendo o código exactamente igual ao que mandaste (eu não tenho as duas primeiras linhas porque esses valores vêm de uma textbox.
Que hei-de fazer?
Continua a dar sqr(25), mesmo escrevendo o código exactamente igual ao que mandaste (eu não tenho as duas primeiras linhas porque esses valores vêm de uma textbox.
Que hei-de fazer?
Remova a concatenação de strings!
Troque
Por Resultado = Sqr( ZumReal ^ 2 + ZumImag ^ 2 )
Troque
Resultado = "sqr (" & ZumReal ^ 2 + ZumImag ^ 2 & ")"
Por Resultado = Sqr( ZumReal ^ 2 + ZumImag ^ 2 )
Declara uma variável como numérica e joga o resultado nela
Assim, quando o radical não for exacto, dá o seu valor em dÃÂÂzima e eu quero que dê mostrando que é um radical.
Eu pretendo que os resultados apareçam na forma, por exemplo,
7 em vez de sqr(49)
sqr(56) em vez do seu valor em dÃÂÂzima.
Obrigado.
Eu pretendo que os resultados apareçam na forma, por exemplo,
7 em vez de sqr(49)
sqr(56) em vez do seu valor em dÃÂÂzima.
Obrigado.
Faz igual o Matioli fez, só defini algumas variáveis como string, exemplo:
Private Sub Form_Load()
Dim ZumReal As Integer
Dim ZumImag As Integer
Dim ModZum As String
Dim x As String
Dim Resultado As String
ZumReal = 2
ZumImag = 3
ModZum = Sqr((ZumReal ^ 2) + (ZumImag ^ 2))
x = ModZum
If Int(x) = x Then
Resultado = x
Else
Resultado = "Sqr(" & ((ZumReal ^ 2) + (ZumImag ^ 2)) & ")"
End If
MsgBox Resultado
End Sub
Resultou!
Tive de fazer pequenas modificações porque algumas variáveis estavam em textbox e não podia defini-las, mas agora tudo bem.
MuitÃÂÂssimo obrigado ao Tamanini e a todos os que me ajudaram.
Tive de fazer pequenas modificações porque algumas variáveis estavam em textbox e não podia defini-las, mas agora tudo bem.
MuitÃÂÂssimo obrigado ao Tamanini e a todos os que me ajudaram.
Tópico encerrado , respostas não são mais permitidas