terça-feira, 31 de julho de 2012

SPOJ - Noções básicas

Para início de blog, gostaria de deixar registrado este site extremamente útil para quem deseja testar e praticar suas habilidades de programação.

O site é o SPOJ, e a versão brasileira do site é encontrada neste link.

Ok, do que se trata?
O site contem uma biblioteca de problemas de lógica, no qual você é desafiado a montar um algoritmo em determinada linguagem de programação para que o problema seja resolvido.
Existem problemas de diversos níveis, desde os mais fáceis, até os mais complexos, os quais inúmeros profissionais da área passam sufoco para resolver.
O grande barato do site é que ele conta com um verificador online, no qual você envia seu algoritmo e ele retorna se este está correto ou não, de acordo com o problema.

Vou passar as instruções básicas do site:
A primeira coisa a se fazer é se cadastrar.
Após cadastrado você poderá clicar no link Problemas e escolher algum, aleatoriamente ou não.
Uma dica é prestar atenção nas colunas "usuar" e "acc %", que indicam, respectivamente, a quantidade de usuários que resolveram o problema, e a porcentagem de usuários que resolveram, entre os que tentaram.
Após escolher o problema você só precisará lê-lo e botar a mão na massa.
Após montado o algoritmo na linguagem desejada, basta clicar no link Submeter, colar o código no campo maior, escolher a linguagem utilizada, preencher o campo menor com o nome do problema ou o ID do mesmo, e clicar em Enviar.
Você será levado para uma página onde sua submissão será verificada, e onde você também notará que não está sozinho. Todas as submissões são testadas e expostas para qualquer pessoa que acessar aquela página. Apenas o código, por motivos óbvios, ficará restrito para ser visto e editado apenas por quem enviou.

É bom ressaltar alguns detalhes sobre os problemas, que atrapalham muitos iniciantes:
A maioria dos problemas é bem clara quanto a isso, e é estruturada de forma organizada para compreensão deste detalhe. O teu algoritmo deverá receber dados, e será testado quanto à saída de dados, ou seja, seu algoritmo receberá um valor, e o problema pede na descrição que você faça determinados "cálculos" com este valor e exiba um valor resultante final.
Um exemplo:
O problema pede que, quando dois valores forem digitados, você retorne o resultado da soma dos mesmos.
Portanto a entrada seria, nesse exemplo, 2 e 5, e o teu algoritmo deverá retornar, como saída, 7.

Imagino que o leitor já tenha as noções básicas do vocabulário utilizado na programação, caso contrário leia este tópico. (Se o link está inativo é porque o tópico ainda não foi escrito, peço que aguardem)

Um detalhe importante é que o seu algoritmo deve fazer o que lhe é pedido, e nada além disso. Por exemplo, em momento algum o seu algoritmo deve imprimir uma frase do tipo: "Entre com os valores a serem somados:", se isto não lhe for pedido. Há casos em que o problema pede, e deixa bem claro, que você imprima frases do tipo: "Instancia 1 (pula linha) *resultado (pula linha)", mas caso não peça, apenas imprima o resultado, e finalize o programa.

Resumindo, o seu algoritmo deve fazer apenas o que lhe for pedido, de forma clara e objetiva.

As noções básicas já foram passadas, e em breve pretendo postar mais um tópico com alguns tipos de problemas que requerem uma atenção especial.

Qualquer dúvida eu peço que comentem. Até a próxima.

Nenhum comentário:

Postar um comentário