Dicas para Iniciantes

Compilando o código-fonte no linux e executando o programa

Para códigos em linguagem C digite o seguinte comando no terminal (shell, bash, etc):

gcc <arquivo.c> -o <nome_do_executável> -lm -Wall -ansi -pedantic -g

Para códigos em linguagem C++ digite o seguinte comando no terminal:
g++ <arquivo.cpp> -o <nome_do_executável> -lm -Wall -ansi -pedantic -g

Se precisar usar o tipo de variável long long, remova as opções -ansi -pedantic.

Para executar o programa basta digitar o seguinte comando no terminal, após compilar o código:

./<nome_do_executável>

Juízes on-line

Existem vários sites de juízes on-line para problemas de maratona. Neles você encontra enunciados de problemas e pode enviar seu código para verificar se ele está correto. Não deixe de cadastrar nesses sites (não precisa ser em todos) e utilizá-los, pois são ferramentas essenciais para seu treino.

Em especial, no TopCoder você também encontra artigos e tutoriais sobre diversos assuntos relacionados com solução de problemas.

Livros e links recomendados

  • Algoritmos em geral
    • Introduction to algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
    • Algorithms in C (também nas versões para Java e C++), Robert Sedgewick
    • Páginas do Feofiloff
    • Tutoriais do TopCoder
  • Linguagem C
    • C - a Linguagem de Programação Padrao Ansi, Brian Kernighan e Dennis M Ritchie

Redirecionamento de entrada/saída e diff

Ao invés de digitar um exemplo de entrada direto no terminal, salve a entrada em um arquivo (por exemplo, programa.in).
Para testar o programa, digite no terminal:

./programa < programa.in

Para comparar saídas longas com o exemplo de saída, redirecione a saída do seu programa para um arquivo programa.out, rodando-o assim:

./programa < programa.in > programa.out

Salve a saída exemplo em algum arquivo (por exemplo, "saida") e compare com sua com o comando

diff programa.out saida

Se algo for impresso na tela, você errou! Existe alguma diferença entre a saída de seu programa e a saída esperada. Caso contrário, seu programa corre o risco de estar certo, pois passou nos casos de teste. =)

Discuta sobre esta página

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License