PythonBrasil

sexta-feira, junho 27, 2008

Cria Prova - Pequenas modificações e melhorias

Fiz algumas melhorias e modificações no script criaprova.
O programa agora cria provas com número de questões iguais entre os arquivos; isto permite uma prova mais balanceada.
Algumas informações sobre as provas são apresentadas, como o nome dos arquivos, o número de questões em cada arquivo, total de questões.
O programa calcula o número de questões que serão selecionadas de cada arquivo; em caso de divisão não exata, a sobra é distribuída aleatoriamente entre os arquivos - uma questão por arquivo.
Também é informada distribuição de questões por arquivo [num.questões, num.arquivo] e o número real de questões que cada prova tem; pode ser que uma prova fique com número de questões menor do que o solicitado se algum arquivo não contém questões suficientes (maior do que o número de questões por arquivo). Para executar o script usei a seguinte linha de comando:


python criaprova_v3.py 5 22 ../q1-3-20080623.txt ../q4-20080623.txt \
../q5.txt ../q6-20080623.txt

Na linha acima, o número 5 após o nome do script indica o número de provas a serem geradas; o número 22 indica o número de questões por prova e os demais são os nomes dos arquivos com as questões.

Abaixo um exemplo das informações que são mostradas:

arquivos ['../q1-3-20080623.txt', '../q4-20080623.txt', '../q5.txt', \
'../q6-20080623.txt']
arquivo 0: ../q1-3-20080623.txt questoes: 33
arquivo 1: ../q4-20080623.txt questoes: 15
arquivo 2: ../q5.txt questoes: 10
arquivo 3: ../q6-20080623.txt questoes: 14
num arquivos: 4 total: 72

Questoes por arquivo 5
Sobra: 2 >>> Arquivo(s) que ficara(o) com a sobra: [3, 1]
Prova: 0 dist. de questoes [[5, 0], [6, 1], [5, 2], [6, 3]] total 22
Prova: 1 dist. de questoes [[5, 0], [6, 1], [5, 2], [6, 3]] total 22
Prova: 2 dist. de questoes [[5, 0], [6, 1], [5, 2], [6, 3]] total 22
Prova: 3 dist. de questoes [[5, 0], [6, 1], [5, 2], [6, 3]] total 22
Prova: 4 dist. de questoes [[5, 0], [6, 1], [5, 2], [6, 3]] total 22


Este é um exemplo de prova gerada pelo script

3 comentários:

Cervejando por ai... disse...

minha prova foi exatamente essa.. rs

Totally Crazy disse...

Nao consegui criar a prova, sempre da o seguinte erro:

Traceback (most recent call last):
File "criaprova_v2.py", line 298, in ?
main()
File "criaprova_v2.py", line 295, in main
provas = crialatex(sequencia, numprovas, questaoporprova)
File "criaprova_v2.py", line 208, in crialatex
prova = random.sample(sequencia,questaoporprova)
File "/usr/local/lib/python2.4/random.py", line 304, in sample
raise ValueError, "sample larger than population"
ValueError: sample larger than population


O que sera isso?

Mario M. disse...

@Totally Crazy
Aparentemente o seu arquivo de questões contem menos questões do que o necessário para a criação da prova.
Experimente aumentar o número de questões e ver o que dá.
Estou providenciando melhorias substanciais ao programa. Em breve aqui no Blog.