"A arte de programar consiste na arte de organizar e dominar a complexidade."

terça-feira, 5 de janeiro de 2016

Teste Módulo 10

1.

Código:

Private Sub Command1_Click()
    Dim mat(1 To 6, 1 To 4) As Integer, soma As Integer, media As Single, cama As Integer, valor_elev As Integer, cama2 As Integer, hora As Integer, i As Integer, j As Integer, maior_media As Single
    
    soma = 0
    cama = 0
    cama2 = 0
    hora = 0
    maior_media = 0
    valor_elev = 0
    
    For j = 1 To 4
        For i = 1 To 6
            Do
                mat(i, j) = Val(InputBox("Insira a pulsação do " & j & " paciente na " & i & " medição: ", "Entrada de dados"))
                If mat(i, j) < 40 Or mat(i, j) > 140 Then
                    MsgBox "O valor introduzido é inválido", vbCritical, "Aviso"
                End If
            Loop While mat(i, j) < 40 Or mat(i, j) > 140
        Next i
    Next j
    
    For i = 1 To 6
        For j = 1 To 4
            Picture2.Print mat(i, j);
        Next j
        Picture2.Print Chr(13)
    Next i
    
    For j = 1 To 4
        For i = 1 To 6
            soma = soma + mat(i, j)
        Next i
        media = soma / 6
        If media > maior_media Then
            maior_media = media
            cama = j
        End If
        Picture1.Print j & " paciente: " & media
        soma = 0
        media = 0
    Next j
    
    For j = 1 To 4
        For i = 1 To 6
            If mat(i, j) > valor_elev Then
                valor_elev = mat(i, j)
                cama2 = j
                hora = i
            End If
        Next i
    Next j
    
    MsgBox " O paciente com maior valor média está na cama " & cama & ". O valor mais elevado é " & valor_elev & " do paciente " & cama2 & " na " & hora & " medição.", vbInformation, "Saida"
            
End Sub


2.

Código:

Private Sub Calcular_Click()
    Dim mat(1 To 17, 1 To 4) As Integer, aprovados As Integer, reprovados As Integer, disciplina As Integer, maior_repr As Integer, media As Single, aluno As Integer, melhor_media As Single, aluno2 As Integer, soma As Integer
    
    aprovados = 0
    reprovados = 0
    disciplina = 0
    maior_repr = 0
    aluno = 0
    aluno2 = 0
    soma = 0
    
    For i = 1 To 17
        For j = 1 To 4
            Do
                mat(i, j) = Val(InputBox("Introduza a nota do " & i & " aluno na " & j & " disciplina:", "Entrada de dados"))
                If mat(i, j) < 0 Or mat(i, j) > 20 Then
                    MsgBox "O valor introduzido é inválido", vbCritical, "Saida"
                End If
            Loop While mat(i, j) < 0 Or mat(i, j) > 20
        Next j
    Next i
    
    For i = 1 To 17
        For j = 1 To 4
            Picture1.Print mat(i, j);
        Next j
        Picture1.Print Chr(13)
    Next i
    
    For j = 1 To 4
        For i = 1 To 17
            If mat(i, j) < 10 Then
                reprovados = reprovados + 1
            Else
                aprovados = aprovados + 1
            End If
        Next i
        If reprovados > maior_repr Then
            maior_repr = reprovados
            disciplina = j
        End If
        Picture2.Print "Na " & j & " disciplina foram aprovados " & aprovados & " alunos e foram reprovados " & reprovados & " alunos."
        reprovados = 0
        aprovados = 0
    Next j
    
    Do
        aluno = Val(InputBox("De qual aluno quer ver a média?", "Entrada de dados"))
        If aluno < 1 Or aluno > 17 Then
            MsgBox "Não existe esse aluno", vbCritical, "Aviso"
        End If
    Loop While aluno < 1 Or aluno > 17
    
    For i = 1 To 17
        For j = 1 To 4
            soma = soma + mat(i, j)
        Next j
        media2 = soma / 4
        If i = aluno Then
            media = soma / 4
        End If
        If media2 > melhor_media Then
            melhor_media = media2
            aluno2 = i
        End If
        soma = 0
        media2 = 0
    Next i
    
    MsgBox "A disciplina onde há mais reprovações é " & disciplina & ". A média do aluno " & aluno & " é " & media & ". O aluno com a melhor média é " & aluno2 & ".", vbInformation, "Saida"
    
End Sub

Sem comentários:

Enviar um comentário