Usuário com melhor resposta
Obter a média dos alunos utilizando Arrays

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 SubAonde está o detalhe? Já fiz de tudo dentro das minhas limitações.
Marcelo Silva
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
----------------------------------------------------------
- Editado William John Adam TrindadeModerator terça-feira, 16 de setembro de 2014 15:27
- Marcado como Resposta BITSILVA terça-feira, 16 de setembro de 2014 16:35
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
----------------------------------------------------------
- Editado William John Adam TrindadeModerator terça-feira, 16 de setembro de 2014 15:27
- Marcado como Resposta BITSILVA terça-feira, 16 de setembro de 2014 16:35
-
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.
-
É 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
----------------------------------------------------------
Marcelo Silva