1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[ VISUAL BASIC 2005 ] Problema na formula de calculo :

Discussão em 'Programação' iniciada por jot4p, 15 de Novembro de 2007. (Respostas: 3; Visualizações: 3114)

  1. jot4p

    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]
     
  2. Baderous

    Baderous Banido

    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: 15 de Novembro de 2007
  3. kzip

    kzip Power Member

    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
     
  4. alfinete

    alfinete Power Member

    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
     

Partilhar esta Página