Você está na página 1de 9

Sumário

Maratona de Programação - Dicas Para


Iniciantes

Prof. Josué Pereira de Castro

Universidade Estadual do Oeste do Paraná


Curso de Bacharelado em Informática

Cascavel, 2009

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Sumário

Sumário

1 Conceitos Fundamentais

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Conceitos Fundamentais

Maratona de Programação (ACM ICPC - International


Collegiate Programming Contest): Um playground para
explorar a inteligência dos programadores
Iniciantes: tente encontrar primeiro os problemas mais
fáceis e resolvê-los no tempo mais curto possível.
Tente gastar menos tempo com a codificação e mais
tempo pensando no algoritmo de solução e na depuração.

“Bons programadores gastam 10% do tempo com a


codificação, 45% do tempo pensando na solução e 45% do
tempo com a depuração do programa.´´

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Linguagens de Programação e Depuração

Inicialmente, tente aprender apenas uma linguagem de


programação profundamente.
Somente após dominar uma linguagem razoavelmente
bem, tente explorar as outras linguagens permitidas.
Esta abordagem reduz o tempo necessário para a escrita
dos problemas e para a depuração dos códigos.
Com o tempo, tente escolher a linguagem mais adequada
para resolver cada problema específico.

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Evite Erros de Compilação


Muitos iniciantes gastam bastante tempo enviando
submissões que não compilam na máquina do juiz. As
principais causas, geralmente são:
1 usar funções que não estão definidas no padrão da
linguagem
2 tentativa de manipular os arquivos de entrada e saída
diretamente dentro do programa. A saída deve ser
lida/escrita diretamente para o console através das
funções/objetos padrão da linguagem.
3 uso de bibliotecas que não estão no padrão das linguagens
permitidas (Ex: conio.h)
4 utilização de pacotes (packages) na linguagem java, que
geralmente provocam erros quando compilados na
máquina dos juizes
5 certifique-se de que está enviando a solução certa para o
problema correto, pois os sistemas de submissão
consideram estas submissões como erros, e os juizes
também.
Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes
Conceitos Fundamentais

Esqueça a eficiência (a menos que seja necessário)

Muitos problemas em torneios são especificamente


projetados para medir a capacidade do concorrente em
construir códigos eficientes e rápidos, mas muitos pedem
apenas qualquer solução.
Inicialmente, concentre-se em encontrar uma solução para
o problema (qualquer solução) e submeta. Se a solução
estourar o tempo determinado, tente otimizar o código
para reduzir o tempo de execução.

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Tenha na cabeça (ou em mãos) vários tipos de


algorimos

Muitos problemas só podem ser resolvidos pela aplicação


de vários algoritmos clássicos combinados, ou através de
variações efetuadas nestes algoritmos clássicos. É
importante tê-los disponíveis.
Prefira inicialmente os algoritmos mais simples para
resolver os problemas, ainda que estes não sejam os mais
eficientes. O torneio não leva em conta elegância nem
eficiência (a não ser em alguns problemas específicos).

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Faça uma programação simples

Evite o uso dos operadores “++´´ e “–´´ dentro de


expressões ou de chamadas de funções.
Evite expressões da forma *p++.
Evite o uso da aritmética de ponteiros Use p[5] em vez
de (p+5).
Evite abusar do operador ternário.
Utilize sempre nomes descritivos para suas variáveis.

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes


Conceitos Fundamentais

Finalmente

Não se pode ensinar a resolver problemas. Só se aprende


a resolvê-los tentando.
Aprender uma linguagem de programação requer prática
constante.
Para ser um bom programador é preciso gostar de
programar.
Uma boa bagagem matemática é fundamental.
Persistência e determinação são imprescindíveis.

Prof. Josué P. Castro Maratona de Programação - Dicas Para Iniciantes

Você também pode gostar