Ir para conteúdo
Fórum Script Brasil
  • 0

como fazer média entre os dois maiores de trÊs possiveis?


xiloba

Pergunta

preciso criar uma funçao que extraia a média entre as duas maiores notas.

prova1, prova2, recuperação.

ou seja: tenho 3 possibilidades:

rec>p1>p2, neste caso a média será entre rec e p1

rec>p2>p1, neste caso a média será entre rec e p2

p1>p2>rec, neste caso a média será entre p1 e p2

Repare que

p2>p1>rec, teríamos a média entre p1 e p2, o que já apareceu antes

p2>rec>p1, teríamos a média entre p2 e rec, o que já apareceu antes

p1>rec>p2, teríamos a média entre p1 e rec, o que já apareceu antes.

Eu montei uma tabela, mas ela só funciona quando recuperação é maior que prova 1 e maior que prova 2.

aluno-prova1-prova2 - recuperaçao - comparação entre p1 e p2- comp recup x p1 - comp recup x p2- comp h2 e I2 - média f2:j2

O que está errado? alguém pode me ajudar a criar uma tabela que extraia a média entre as duas maiores notas.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom dia, xiloba

Copie estas funções e utilize a Media2Maiores

Function Media2Maiores(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single
    'Função criada por Alexandre Neves
    'em 2009-06-27
    'para xiloba
    'do fórum scripbrasil

    If IsNull(Valor1) = True Then Valor1 = 0
    If IsNull(Valor2) = True Then Valor2 = 0
    If IsNull(Valor3) = True Then Valor3 = 0
    Select Case Maximo(Valor1, Valor2, Valor3)
    Case Valor1
        If Valor2 > Valor3 Then
        'caso de valor1>valor2>valor3
            Media2Maiores = (Valor1 + Valor2) / 2
        Else
        'caso de valor1>valor3>valor2
            Media2Maiores = (Valor1 + Valor3) / 2
        End If
    Case Valor2
        If Valor1 > Valor3 Then
        'caso de valor2>valor1>valor3
            Media2Maiores = (Valor2 + Valor1) / 2
        Else
        'caso de valor2>valor3>valor1
            Media2Maiores = (Valor2 + Valor3) / 2
        End If
    Case Valor3
        If Valor1 > Valor2 Then
        'caso de valor3>valor1>valor2
            Media2Maiores = (Valor3 + Valor1) / 2
        Else
        'caso de valor3>valor2>valor1
            Media2Maiores = (Valor3 + Valor2) / 2
        End If
    End Select
End Function

Function Maximo(Optional Valor1 = 0, Optional Valor2 = 0, Optional Valor3 = 0) As Single
'Função criada por Alexandre Neves
'em 2009-06-27
'para xiloba
'do fórum scripbrasil

    If IsNull(Valor1) = True Then Valor1 = 0
    If IsNull(Valor2) = True Then Valor2 = 0
    If IsNull(Valor3) = True Then Valor3 = 0
    If Val(Valor3) = 0 Then
        If Val(Valor1) > Val(Valor2) Then
            Maximo = Valor1
        Else
            Maximo = Valor2
        End If
    Else
        Maximo = Maximo(Maximo(Valor1, Valor2), Valor3)
    End If
End Function

Bom trabalho

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...