Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Messana

na hora de arredondar média

Recommended Posts

Olá

Estou com uma duvida num projeto, exemplo:

Eu quero que apareça a média real no TextBox assim:

 

7.2 = 7.0

 

A média real, depois um igual, e depois o valor arredondado.

 

que seria assim:

 

7.3 = 7.5

 

De 6.75 a 7.2 é uma nota, de 7.25 a 7.7 é outra nota.

 

Meu código que estou usando é:

 

ma.Text = Val(p1.Text) + Val(p2.Text) + Val(p3.Text) + Val(p4.Text)
If ma.Text >= media_escola.Text Then
sit.Text = "Aprovado"
Else
sit.Text = "Recuperação"
End If

Compartilhar este post


Link para o post
Compartilhar em outros sites

Titulo alterado: [DUVIDA] AJUDA NA HORA DE ARREDONDAR MÉDIAhttp://forum.imasters.com.br/public/style_emoticons/default/seta.gifAjuda na hora de arredondar média

 

 

--

 

 

If(MEDIA_REAL >= 6.75 And MEDIA_REAL <= 7.2)Then
Text1.text = MEDIA_REAL & "= 7.00"
ElseIf(MEDIA_REAL >= 7.21 And MEDIA_REAL <= 7.7)Then
Text1.text = MEDIA_REAL & "= 7.50"
End If
Pelo que eu entendi é isso que você ta querendo...

 

 

Qualquer duvida volta a postar ae!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu, olha uma screen:

Imagem Postada

 

Eu quero que apareça, no campo Média assim, no caso:

 

6.2 = 6.0

 

Se aparecer um maior que 6.3 = 6.5

 

Entendeuu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha solução seria.

 

subtrair o número decimal pelo arredondado dele.

 

nota = 6.3

 

x = (nota) - round(nota)

 

você vai ter que x = 0.3

 

ai você faz o seu tratamento

 

if x < 0.3 then

nota = nota

else if x > 0.3 and x < 0.5 then

nota = round(nota) + 0.5

else

nota = round(nota)

 

no else teriamos a nota arredondada pra mais que 6.5, o que daria 7, se conseguir entender essa lógica beleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas do jeito que eu passei pra você era para aparecer.

Posta o código pragente da uma olhada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas era pra funcionar só com aqueles valores

 

tem um erro no código

 

nota = 6.3

x = (nota) - round(nota)

você vai ter que x = 0.3

ai você faz o seu tratamento

if x < 0.3 then 
  nota = round(nota)
else if x > 0.3 and x < 0.5 then
  nota = round(nota) + 0.5
else
nota = round(nota)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cod, estaria ficando assim:

 

Private Sub verif_Click()

ma.Text = Val(p1.Text) + Val(p2.Text) + Val(p3.Text) + Val(p4.Text)

If (MEDIA_REAL >= 6.75 And MEDIA_REAL <= 7.2) Then

ma.Text = MEDIA_REAL & "= 7.00"

ElseIf (MEDIA_REAL >= 7.21 And MEDIA_REAL <= 7.7) Then

ma.Text = MEDIA_REAL & "= 7.50"

End If

If ma.Text >= media_escola.Text Then

sit.Text = "Aprovado"

Else

sit.Text = "Recuperação"

End If

End Sub

Amigo, nao entendi seu jeito, coompreendi mais o do scorpio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apesar de você ter entendido mais o meu código, o dele vai ficar bem menor que o meu.

 

Faça assim, usando a mesma lógica do Paulo, mas de uma forma diferente...

resto = nota - Int(nota)

If(resto <= 0.25)Then
nota=Int(nota)
ElseIf(resto >=0.26 And resto <=0.74)Then
nota=nota - resto + 0.5
ElseIf(resto >=0.75)Then
nota = nota - resto + 1
End if

O que o código faz e pegar o resto (a primeira linha) depois comparar para ver se vai ficar X, X.5 ou X+1

Entendeu ?

 

FLw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.