#
# este código:
#
# 1 - simula a aplicacao de uma prova a oitenta estudantes diferentes
# que recebem notas variando de 19 (inclusive) a 89 (inclusive)
# 2 - escreve enumeracao das oitenta notas da prova
# 3 - apresenta as oitenta notas da prova em um gráfico
#
import random
#
# definir a contagem de estudantes
#
contagem = 80
#
# parametro para definir ordem de prova
#
primeiro_parametro_range_ordem_incluido = 1
segundo_parametro_range_ordem_excluido = 1 + contagem
passo_range_ordem = 1
#
# iniciar a lista de ordem de prova
#
ordem_prova = []
#
# parametro para definir limite de nota de prova
#
menor_nota = 19
maior_nota = 89
#
# iniciar a lista de nota de prova
#
nota_prova = []
#
# parametro para geracao "quase aleatoria" de nota
# entre limites inferior e superior
#
primeiro_parametro_randrange_nota_incluido = menor_nota
segundo_parametro_randrange_nota_excluido = 1 + maior_nota
#
# adicionar elemento a lista
#
for ordem in range ( primeiro_parametro_range_ordem_incluido , segundo_parametro_range_ordem_excluido , passo_range_ordem ) :
ordem_prova .append ( ordem )
#
# sortear nota "quase aleatoria" de um estudante
#
nota = random .randrange ( primeiro_parametro_randrange_nota_incluido , segundo_parametro_randrange_nota_excluido )
nota_prova .append ( nota )
#
# ecoar lista de ordem de prova
#
print ( 'ordem_prova = ' , ordem_prova )
print ( )
#
# verificar cardinalidade das duas listas
#
print ( f'cardinalidade de ordem_prova = { len ( ordem_prova ) } ' )
print ( )
#
# ecoar lista de nota de prova
#
print ( 'nota_prova = ' , nota_prova )
print ( )
#
# parametrizar enumeracao de ordem e nota de prova
#
primeiro_indice_de_lista_incluido = 0
ultimo_indice_de_lista_excluido = len ( ordem_prova)
#
# escrever titulo de enumeracao
#
print ( 'enumeração de: ordem de prova ... nota de prova ')
print ( )
#
# simular realizacao de provas de <contagem> estudantes diferentes
#
#
for indice in range ( primeiro_indice_de_lista_incluido , ultimo_indice_de_lista_excluido ) :
ordem_de_prova = ordem_prova [ indice ]
nota_de_prova = nota_prova [ indice ]
#
# escrever enumeracao de ordem e nota de prova
#
print ( f'ordem = {ordem_de_prova} ... nota = {nota_de_prova} ' )
print ( )
print ( ' -- fim de enumeração -- ' )
#
# lançar em grafico a ordem de prova e a nota de prova
#
import matplotlib.pyplot as plt
x = ordem_prova
y = nota_prova
plt .plot ( x , y , marker='o' )
plt .title ( 'Notas de prova de matemática' )
plt .xlabel ( 'Ordem de prova' )
plt .ylabel ( 'Nota de prova' )
plt .show ()