EP10 - Dúvida

EP10 - Dúvida

por Alvaro Junior -
Número de respostas: 2

Boa noite,

No teste no python meu programa passa em todos os testes, mas quando submeto ele para avaliação no paca aparece "parece que aceleracao_gravitacional() explodiu 8-O". Isso quer disser que minha estrutura não esta de acordo com que o avaliador quer?

Em resposta à Alvaro Junior

Re: EP10 - Dúvida

por José Coelho de Pina -

Oi Alvaro,

Muito obrigado por perguntar!

Isso quer disser que minha estrutura não esta de acordo com que o avaliador quer?

Não. Isso significa que o programa está errado. No caso, o erro é daqueles que mostram mensagens vermelhas no Python Shell e a execução do programa é encerrada. 

Mas como isso é possível se o programa/função passou nos testes do enunciado?
Bem, vejam o programa que fiz para verificar se um número é primo.
Vejam que ele funciona para a maioria dos números. Passa em vários testes, mas está errado e, em uma situação especifica, explode:


def main():
    n = int(input("Digite um inteiro positivo: "))
    if n != 2 and n % 2 == 0:
        print(n, "não é primo.") # resposta certa
    elif n == 3:
        print(x, "não é primo") # explode 
    else:
        print(n, "é primo") # resposta as vezes errada e as vezes certa
                            # a maioria das vezes errada, mas isso fica
                            # por conta do Teorema do Primos.

if __name__ == "__main__":
    main()

    
Digite um inteiro positivo: 2
2 é primo

Digite um inteiro positivo: 6
6 não é primo.

Digite um inteiro positivo: 10
10 não é primo.

Digite um inteiro positivo: 5
5 é primo

Digite um inteiro positivo: 7
7 é primo

Digite um inteiro positivo: 15  
15 é primo

Digite um inteiro positivo: 3
Traceback (most recent call last):
  File "primos.py", line 13, in <module>
    main()
  File "primos.py", line 6, in main
    print(x, "não é primo") # explode 
NameError: name 'x' is not defined
          
Em resposta à Alvaro Junior

Re: EP10 - Dúvida

por José Coelho de Pina -

P.S. A propósito, cada elemento do parâmetro lista_corpos da função aceleracao_resultante é uma lista com vários elementos que tem a forma [[x_a,y_a], massa_a,...].
Veja exemplos de parâmetros para as na seção Exemplos do enunciado do EP10.

Além disso, o esqueleto do EP10 tem uma função main() para ajudá-l@s a testar suas funções. Não deixem de executar esse main().