none
Obter a média dos alunos utilizando Arrays RRS feed

  • Pergunta

  • Olá pessoal,

    Estou quebrando a cabeça em saber o porque ao calcular a média via console está dando errado!

    Veja o código:

    Sub Main()
            Dim notas(4) As Double
            Dim i, nota, media As Double

            For i = 1 To 4
                media = (nota + nota + nota + nota)
                nota = InputBox("Informe a " & i & "ª Nota: ")
                Console.WriteLine(nota)
            Next
            Console.WriteLine("A sua média é: " & media / 4)
            Console.ReadLine()

        End Sub

    Aonde está o detalhe? Já fiz de tudo dentro das minhas limitações.


    Marcelo Silva

    terça-feira, 16 de setembro de 2014 14:51

Respostas

  • É essa parte que esta errada:

       media = (nota + nota + nota + nota)

    Media é soma de todas as notas dividido pela quantidade de notas... a cada entrada de uma nota voce tem que adiciona-la a um total.

    Outro detalhe.. voce nao esta usando matrizes (array) no seu codigo... vc declara um array mas nao usa...  

    o correto é deste jeito:

    Sub Main()
            Dim notas(4) As Double
            Dim i, nota, soma, media As Double
    
    
            For i = 0 To 3 ' matrizes sao base 0
                nota = InputBox("Informe a " & i+1 & "ª Nota: ")
                notas(i)=nota
                Console.WriteLine(nota)
            Next
            soma=0 
           For i = 0 To 3 ' matrizes sao base 0
                soma = soma + notas(i)'somatorio das notas
            Next
     
             media=soma/4 'calcula media
            Console.WriteLine("A sua média é: " & media)
            Console.ReadLine()
    
        End Sub

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------






    terça-feira, 16 de setembro de 2014 14:59
    Moderador

Todas as Respostas

  • É essa parte que esta errada:

       media = (nota + nota + nota + nota)

    Media é soma de todas as notas dividido pela quantidade de notas... a cada entrada de uma nota voce tem que adiciona-la a um total.

    Outro detalhe.. voce nao esta usando matrizes (array) no seu codigo... vc declara um array mas nao usa...  

    o correto é deste jeito:

    Sub Main()
            Dim notas(4) As Double
            Dim i, nota, soma, media As Double
    
    
            For i = 0 To 3 ' matrizes sao base 0
                nota = InputBox("Informe a " & i+1 & "ª Nota: ")
                notas(i)=nota
                Console.WriteLine(nota)
            Next
            soma=0 
           For i = 0 To 3 ' matrizes sao base 0
                soma = soma + notas(i)'somatorio das notas
            Next
     
             media=soma/4 'calcula media
            Console.WriteLine("A sua média é: " & media)
            Console.ReadLine()
    
        End Sub

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------






    terça-feira, 16 de setembro de 2014 14:59
    Moderador
  • Creio que isso seja dúvida de matemática e não de programação, mas enfim.

    Vc tem que criar um variavel pra armazenar a soma de todas as notas. Dentro do loop vc vai acumulando nessa variavel cada nota informada pelo usuário.

    Depois que sair do loop é só pegar essa variável e dividir por 4 pra saber a média.

    terça-feira, 16 de setembro de 2014 15:02
  • É essa parte que esta errada:

       media = (nota + nota + nota + nota)

    Media é soma de todas as notas dividido pela quantidade de notas... a cada entrada de uma nota voce tem que adiciona-la a um total.

    Outro detalhe.. voce nao esta usando matrizes (array) no seu codigo... vc declara um array mas nao usa...  

    o correto é deste jeito:

    Sub Main()
            Dim notas(4) As Double
            Dim i, nota, soma, media As Double
    
    
            For i = 0 To 3 ' matrizes sao base 0
                nota = InputBox("Informe a " & i+1 & "ª Nota: ")
                notas(i)=nota
                Console.WriteLine(nota)
            Next
            soma=0 
           For i = 0 To 3 ' matrizes sao base 0
                soma = soma + notas(i)'somatorio das notas
            Next
     
             media=soma/4 'calcula media
            Console.WriteLine("A sua média é: " & media)
            Console.ReadLine()
    
        End Sub

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------






    Muito obrigado! Estou tentando entender a lógica pois realmente ficou faltando outra parte onde a nota é dívidido trazendo a média.

    Marcelo Silva

    terça-feira, 16 de setembro de 2014 16:36