Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Localhost

Assert

Recommended Posts

Localhost

Alguém me podia explicar a utilidade disto? Já vi em vários códigos, por exemplo em soluções dadas pela usaco para os problemas propostos após resolvidos que utilizam isto. Nunca percebi o que é e para que serve.

Obrigado desde já, Localhost :thumbsup:


here since 2009

Share this post


Link to post
Share on other sites
merlin3000

http://ptolemy.eecs.berkeley.edu/~johnr/tutorials/assertions.html

Aqui provavelmente percebes a ideia.

Mas a ideia em si é simples, são testes que têm que dar verdadeiro ou o programa sai. É bom para quando fazes alterações de código, se souberes alguns resultados que têm que ser verdadeiros depois desse código executar, podes criar os asserts para esses casos. Uma vantagem é que com uma simples opção de compilação podes eliminar o overhead desses asserts.

Se usares programming by contract, também podes colocar isso no inicio de uma função por exemplo em que o código só corre se os parâmetros forem válidos.


Criar é Divertido

Share this post


Link to post
Share on other sites
Localhost

E quando eu faço isto, dentro de uma função exterior à main:

assert(0);

Vai sair dessa função ou do programa? Nesse caso ele vai sair sempre, correcto?


here since 2009

Share this post


Link to post
Share on other sites
merlin3000

lol por acaso não tinha a certeza se com o 0 iria sair (embora fosse relativamente lógico) mas sim sai sempre. Se der numa função acho que o caso normal é terminar a aplicação, nunca usei muito asserts mas devem haver formas de evitar que isso aconteça.


Criar é Divertido

Share this post


Link to post
Share on other sites
Localhost

Obrigado pela ajuda. Já entendi isto e até gostei, acho que assim já posso poupar alguns if's  :thumbsup:


here since 2009

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.