Jump to content

Erro na Conversão de Valores para obter Tabua de Cordas


Chamuanza

Recommended Posts

Um Bem Aja a Todos

Tenho uma Combobox com um ciclo For de 3 a 100 que vai funcionar para a divisão de uma circuferencia com base em raio 1

Tenho depois um Select Case que vai fazer as diversas divisões

Sucede que no select referente aos resultados em que a divisão tem resto zero o valor final da corda está correcto (segue o codigo)

Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
 Label11.Text = Round(360 / ComboBox2.Text, 6)
 Label13.Text = Mid(360 / ComboBox2.Text, 4, 2)

 'Insere nas Labels os valores correspondentes de angulo, minutos e cordas
 Select Case ComboBox2.SelectedIndex
  'Valores DIVISÃO
  '	3  4  5  6  8  9 10  12 15  18  20  24  30  36  40  45  60  72  90
  Case 0, 1, 2, 3, 5, 6, 7, 9, 12, 15, 17, 21, 27, 33, 37, 42, 57, 69, 87
' Label11.Text = 360 / ComboBox2.Text
Label14.Text = Round(Sin(Label11.Text * 3.1416 / 360), 4) * 2 & " mm"

No entanto quanto aos resultados (valor da Corda) em que a divisão não dá resto zero existe diferenças em relação a uma tabela que tenho feita em VB6. (segue o código que dá erro)

'Valores DIVISÃO
'   7  11 13  14  17  19  21  22  23  26  27  28  29  31  32  33  34  35
  Case 4, 8, 10, 11, 14, 16, 18, 19, 20, 23, 24, 25, 26, 28, 29, 30, 31, 32
Label11.Text = Mid(360 / ComboBox2.Text, 1, 2)
Label13.Text = Mid(Mid(360 / ComboBox2.Text, 4, 2) * 60, 1, 2)
Label14.Text = Round(Sin(Label11.Text * 3.1416 / 360), 4) * 2 & " mm"

Alguem me pode dar uma dica sobre o que tenho mal nisto?

Edited by Chamuanza
Link to comment
Share on other sites

Porque é que tens de verificar os números que dão resto zero e os que não dão?

O VB sabe dizer-te isso. Usa o MOD.

Rounds e Mids são sombras do VB6: usa o Round da classe Math e usa substrings e procede a conversões.

O mesmo sucede para o Sin. Usa o da classe Math.

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"

Link to comment
Share on other sites

Ola Ribeiro

Tenho que verificar para poder converter e apresentar o valor dos Graus e Minutos.

e estou a usar a classe Math pois faço o Import da mesma (Imports System Math) no inicio do projecto.

Mas continuo sem perceber a razão de me dar valores diferentes quando a divisão dos 360º pelo Nº de divisões não dá resto zero.

A formula que apresento não está correta?

Ou falta-me alguma formatação?

Link to comment
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.