Mudanças entre as edições de "Leitura e Escrita de Dados"
(Criou página com '== Como resolver um problema no formato das maratonas == * Identificar o problema: enunciados contextualizados * Projetar a solução algorítmica * Desenvolver o código * T...') |
|||
Linha 63: | Linha 63: | ||
− | == | + | == Contribuintes == |
+ | * Mauro Miazaki | ||
+ | |||
+ | |||
+ | == Referências == | ||
* [http://www.inf.ufpr.br/maratona/ Maratona de Programação na UFPR] | * [http://www.inf.ufpr.br/maratona/ Maratona de Programação na UFPR] | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | [[Ensino Extracurricular de Programação de Computadores | CLIQUE AQUI]] para voltar. |
Edição das 00h49min de 13 de maio de 2015
Índice
Como resolver um problema no formato das maratonas
- Identificar o problema: enunciados contextualizados
- Projetar a solução algorítmica
- Desenvolver o código
- Testar
Origem (leitura) dos dados
- Leitura na entrada padrão (scanf, fgets)
- Resolver cada caso de teste individualmente
- Identificar marcadores de início/término de cada caso de teste:
- Casos consecutivos na entrada terminados com uma linha contendo um 0:
scanf("%d",&n);
while (n != 0) {
// Le a entrada para um caso de teste e a processa
...
scanf("%d",&n);
}
- Concatenação de todas as instâncias terminada por um fim de arquivo (EOF):
(função scanf retorna o número de variáveis lidas e armazenadas com sucesso)
while (scanf("%d",&n) == 1) {
// Lê a entrada para um caso de teste e a processa
...
}
Saída (escrita) dos dados
- Escrita na saída padrão:
- Printf
- Inserir marcadores conforme especificação
- Retirar quebras desnecessárias
Regras básicas
- Siga estritamente o formato de entrada e saída
- Confie no enunciado do problema: se o enunciado garante que N não ultrapassa 10000, não é necessário realizar esse tipo de teste
- Coloque apenas os comentários que ajudarão você e sua equipe a entender o código; nomes de variáveis adequados contribuem (e muito!)
- Não use alocação dinâmica de memória (as funções são lentas), use vetores estáticos com o tamanho máximo que você poderá precisar
Teste em linha de comando
- As entradas e saídas de exemplo de um problema devem ser usadas para testar sua solução
- Edite os arquivos .in e .out para testar
- Execute seu programa, redirecionando o fluxo de entrada (<) e saída (>)
>meuprog < dados.in > dados.out
Dica
"Lembre-se sempre que o seu programa será executado com uma entrada diferente, maior e mais difícil do que a entrada de exemplo. O fato de o seu programa funcionar para a entrada de exemplo não indica que o mesmo irá funcionar para a entrada dos juízes."
Contribuintes
- Mauro Miazaki
Referências
CLIQUE AQUI para voltar.