Skip to content

Marianannn/prova

 
 

Repository files navigation

Prova de programação

Os exercícios desta atividade possuem um formato comum baseado na criação de códigos pela permutação de linhas. O exemplo abaixo ilustra o funcionamento da atividade:

"""
Crie um programa que peça dois números para o usuário e mostre o qual é o maior deles.

* if: 1
"""

print(f"o maior número é o a = {a}")
if a > b:
    a = int(input("a: "))
    elif b > a:
        if b > a:
            print(f"o maior número é o b = {b}")
            elif a > b:
                print(f"os números são iguais")
                else:
                    b = int(input("b: "))

O código acima possui todas as linhas necessárias para a resolução do problema proposto no enunciado da questão, mas embaralhadas em uma ordem aleatória e (provavelmente) com a indentação incorreta.

A solução é obtida modificando a ordem das linhas e (possivelmente o seu nível de indentação). Você não pode acrescentar novas linhas, mas é possível comentar ou apagar qualquer linha desenecessária. Em alguns casos, é necessário remover algumas linhas incorretas e, em outros, podem existir soluções corretas diferentes, cada uma baseada em um certo subconjunto de linhas.

No exemplo acima, reorganizamos as linhas para obter a solução como mostrada abaixo:

"""
Crie um programa que peça dois números para o usuário e mostre o qual é o maior deles.

* if: 1
"""

a = int(input("a: "))
b = int(input("b: "))
# if b > a:
if a > b:
    print(f"o maior número é o a = {a}")
# elif a > b:
elif b > a:
    print(f"o maior número é o b = {b}")
else:
    print(f"os números são iguais")

Observe que foi necessário comentar as linhas if b > a e elif a > b. Poderíamos resolver o problema de maneira alternativa trocando as condições utilizadas (if a > b e elif b > a) pelas linhas comentadas e trocando linha com os dois primeiros comandos print.

A regra importante é que você não pode modificar o conteúdo de nenhuma linha, nem criar linhas novas ou duplicar alguma linha existente no código inicial. As únicas operações permitidas são modifiocar a ordem das linhas e o nível de indentação.

Correção automática

A atividade vem com um script responsável por realizar a correção automática de cada exercício. A correção é realizada pelo script "_corrigir.py" (note o underscore no início do nome). Podemos executá-lo como

$ python _corrigir.py

para realizar a correção de todos os exercícios da prova.

Podemos isolar exercícios específicos, passando-os como argumentos para o script:

$ python _corrigir.py pares zeros

Isso limita a correção a somente estes dois exercícios e facilita a leitura das mensagens de erro.

Avaliação/notas

Cada exercício resolvido corretamente confere 1 ou mais pontos nas competências listadas logo abaixo do enunciado. No código de exemplo acima, teríamos somente um ponto conferido para a competência if. Vale lembrar que é necessário realizar 10 pontos por competência para demonstrar proficiência.

Organização dos arquivos

O repositório consiste neste README, alguns arquivos.py correspondentes aos exercícios e alguns scripts de correção ou outras atividades auxiliares. Todos os scripts de uso interno, inclusive o de correção, são marcados com um "_" no início do nome. Os outros arquivos.py correspondem aos exercícios da prova.

O script de correção cria um arquivo chamado grades.json que pode ser ignorado ou apagado.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%