Jump to content
carmezim

Introduzir nota de aluno

Recommended Posts

carmezim

tenho de criar um programa que pergunte quantos alunos tem uma turma, e depois receber o valor das notas de cada aluno e colocalos numa listbox(botão introduzir notas) .

outro botão tem de calcular a media, fazer a soma de todas as notas, dizer a melhor nota e a pior nota.

a minha duvida esta no introduzir notas, pois eu declarei um array no public

Public Class Form1
    Dim quant As Integer {este é o numero de alunos}
    Dim num() As Long{este é o arrai que vai guardar as notas}

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim cont As Integer

        quant = Val(InputBox("Quantos alunos são?"))
        For cont = 1 To quant

            num(cont) = Val(InputBox("Insira a nota ")) '<------- e aqui que da o erro ao inserir notas

            ListBox1.Items.Add(num(cont))
        Next
    End Sub


End Class

agradecia ajuda, e desde já obrigado

Share this post


Link to post
Share on other sites
carmezim

ja consegui fazer isto funcionar

acrecentei o codigo redim num(quant)

logo a seguir a pergunta quantos alunos são

Share this post


Link to post
Share on other sites
thoga31

ja consegui fazer isto funcionar

acrecentei o codigo redim num(quant)

logo a seguir a pergunta quantos alunos são

Podes colocar o código após a resolução, para futura referência completa. :thumbsup:


Knowledge is free!

Share this post


Link to post
Share on other sites
carmezim

está

Public Class Form1
    Dim quant As Integer
    Dim num() As Long

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        Dim med As Double
        Dim som As Integer
        Dim mn As Integer
        Dim pn As Integer
        Dim cont As Integer

        
        som = 0
        For cont = 1 To quant
            som = som + num(cont)
        Next
        pn = num(1)
        mn = num(1)

        For cont = 1 To quant
            If mn < num(cont) Then
                mn = num(cont)
            ElseIf pn > num(cont) Then
                pn = num(cont)

            End If
            med = som / cont
            lblme.Text = "Média= " & med
            lblMN.Text = "Melhor Nota= " & mn
            lblpn.Text = "Pior Nota= " & pn
            lblS.Text = "soma = " & som
        Next
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim cont As Integer

        quant = Val(InputBox("Quantos alunos são?"))
        ReDim num(quant)

        For cont = 1 To quant

            num(cont) = Val(InputBox("Insira a nota "))

            ListBox1.Items.Add(num(cont))
        Next
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim op As Integer
        Dim cont As Integer
        Do
            op = Val(InputBox("Qual o indice que quer alterar?"))
            If op < 1 Or op > quant Then
                MsgBox("Esse indice não existe")
            Else
                num(op) = Val(InputBox("Insira o novo valor"))
            End If

        Loop Until (op >= 1 And op <= 4)

        ListBox1.Items.Clear()
        For cont = 1 To quant
            ListBox1.Items.Add(num(cont))
        Next
    End Sub

   
End Class

este aqui é um segundo form que mostra os "creditos"

Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        End
    End Sub


End Class

Não sei como colocar imagens, agradecia que me indica-sem, pois poderia mandar os formularios do programa, e assim compreendiam melhor para que funciona este programa.

Se encontrarem alguma forma de "rebentar" o programa por favor informem , este é apenas um dos programas que tenho fazer para linguagens de programação

Share this post


Link to post
Share on other sites
Andrepereira9

Fazes upload para um site de partilha de imagens

Ex:

ImageShack

E depois metes aqui o link


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

1º Se meteres texto em vez de números, o programa assume o valor como 0 (zero)

2º Está a aceitar valores negativos e valores superiores a 100.

Não sei qual é a escala que estas a usar se de 0 a 20, se de 0 a 100. mas ele aceita valores maiores.


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
carmezim

1º Se meteres texto em vez de números, o programa assume o valor como 0 (zero)

2º Está a aceitar valores negativos e valores superiores a 100.

Não sei qual é a escala que estas a usar se de 0 a 20, se de 0 a 100. mas ele aceita valores maiores.

r 1º pergunta, utilizei o código val, para o programa não "rebentar" se coloca-se letras, mas o que sugere? não aceitar o valor até ser um numero superior a 0?

r2º no enunciado não indica a escala , portanto não meti, mas acho que vou colocar, pois realmente sempre ficava melhor, quanto aos numeros negativos está a aceitar, mas o programa não rebenta por ai, mas ao colocar a escala resolverá o problema.

Share this post


Link to post
Share on other sites
Andrepereira9

Ao facto das letras não sei como dar a volta. Mas ele assume como zzero, já não é mau :)

Em relação à escala, podes fazer assim

num(cont) = Val(InputBox("Insira a nota "))
If num(cont) < 0 Or num(cont) > 20 Then
      MsgBox("Introduza uma nota válida!!")
      cont -= 1
Else
      ListBox1.Items.Add(num(cont))
End If


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
carmezim

por acaso sem ter visto esta mensagem tinha colocado o mesmo codigo so com a diferença de acrecentar o do loop

mas n tava a aparecer na listebox

retirei o do loop, e coloquei o que não tinha igual a esse codigo o cont=cont-1

e ja esta com a escala

obrigado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.