[ VISUAL BASIC 2005 ] Problema na formula de calculo :

jot4p

Power Member
boas
estou no arranque de aprendizagem em VB:

tive de criar um algoritmo para este problema :

"USANDO UM CICLO CONTROLADO POR UM CONTADOR DESENVOLVA UM ALGORITMO QUE MOSTRE A MEDIA DE "N" NOTAS"

pelo pouco ke sei fiz o seguinte:

Código:
   [FONT=courier new,monospace]Dim NOTA, MEDIA_NOTAS As Double[/FONT]
[FONT=courier new,monospace]        Dim CONTADOR, N_NOTAS As Integer[/FONT]
 
[FONT=courier new,monospace]        ' Inicio:[/FONT]
[FONT=courier new,monospace]         Console.Write(" Introduza um número de notas sujeita a média: ")[/FONT]
[FONT=courier new,monospace]        N_NOTAS = Console.ReadLine [/FONT]

[FONT=courier new,monospace]        CONTADOR = 1[/FONT]
 [FONT=courier new,monospace]        While CONTADOR <= N_NOTAS[/FONT]
[FONT=courier new,monospace]            Console.Write("Introduza a  Nota: ") [/FONT]
[FONT=courier new,monospace]            NOTA = Console.ReadLine[/FONT]

 [FONT=courier new,monospace]            CONTADOR = CONTADOR + 1[/FONT]
[FONT=courier new,monospace]        End While[/FONT]
 
[FONT=courier new,monospace]        MEDIA_NOTAS = NOTA / N_NOTAS[/FONT]

 [FONT=courier new,monospace]        'NOTA:  FALTA DETERMINAR UMA FOMULA , ou metodo para escrever no V.B. algo como [(nota1, nota2.....nota N) / N_NOTAS ][/FONT]
 
[FONT=courier new,monospace]        Console.Write("a média: " & MEDIA_NOTAS)[/FONT]
[FONT=courier new,monospace]         MEDIA_NOTAS = Console.ReadLine[/FONT]
[FONT=courier new,monospace]        Console.WriteLine()[/FONT]
 [FONT=courier new,monospace]        Console.Write(" criado por João Daniel da Silva Pereira, 2007 ")[/FONT]
portanto , o problema esta aki axo eu : [FONT=courier new,monospace] MEDIA_NOTAS = .... / N_NOTAS

alguem sabe como fazer a formula?

:sad:
[/FONT]
 
Não sei se é isto que pretendes, mas talvez, fazer logo a soma das notas dentro do ciclo, isto é, declaras uma variável auxiliar NOTAS onde vais guardando o somatório das notas e, à medida que guardas o valor da nota na variável NOTA, somas esse mesmo valor ao valor que já estava guardado na variável NOTAS. Para isso basta inicializar NOTAS a 0 e começar a partir daí. Não sei VB mas talvez:

Código:
[color=red]//Dim NOTAS As Double
[FONT=courier new,monospace]//NOTAS = 0[/color]
CONTADOR = 1[/FONT]
 [FONT=courier new,monospace]        While CONTADOR <= N_NOTAS[/FONT]
[FONT=courier new,monospace]            Console.Write("Introduza a  Nota: ") [/FONT]
[FONT=courier new,monospace]            NOTA = Console.ReadLine
            [color=red]//NOTAS = NOTAS + NOTA[/color]
[/FONT]
 [FONT=courier new,monospace]            CONTADOR = CONTADOR + 1[/FONT]
[FONT=courier new,monospace]        End While[/FONT]
 
[FONT=courier new,monospace]        MEDIA_NOTAS = [color=red]NOTAS[/color] / N_NOTAS[/FONT]
 
Última edição:
Tal como já disse o Baderous, tens de somar todas as notas.
No teu código, no ciclo While, sempre que estás a ler uma nota estás a substituir a anterior. Ou seja, quando sais do ciclo só tens a última nota inserida. :D
 
ai tens isso a funcionar

é muito simples
foram 5 mts

podes minimizar o code mas esta a funcionar

Código:
    Sub Main()

        Dim i, CONTADOR As Integer
        'guarda a media das notas
        Dim media_notas As Double
        ' vai guardando o total da soma das notas inseridas,
        ' a medida que o for vai sendo executado
        Dim total As Integer = 0
        ' faz a pegunta ao utilizador de quantas notas deseja inserir para guardar na 
        'var contador
        Console.Write("quantas notas deseja inserir: ")
        Console.Write("  Notas: ")
        CONTADOR = Console.ReadLine

        While i < CONTADOR
            Console.Write("Introduza a  Nota ")
            Console.Write("Nota  " & i & " ->>")
            Dim nota As Integer = Console.ReadLine
            total = total + nota
            i = i + 1
        End While

        media_notas = total / i
        Console.Write("media = " & media_notas)
        ' para o ecrã para ver o resultado
        Console.ReadLine()

    End Sub

espero que tenha ajudado
 
Back
Topo