Mudanças entre as edições de "Sistemas automáticos de avaliação"
Linha 43: | Linha 43: | ||
==== 7 - Saída ==== | ==== 7 - Saída ==== | ||
− | Área responsável por explicar | + | Área responsável por explicar qual será a saída do seu programa e como deverá ser formatada. Por mais que seu sistema esteja processando os dados corretamente é preciso apresentar os dados *exatamente* como estão sendo definidos, com o exato numero de espaços e símbolos que estão sendo indicados. |
+ | Lembre-se que quem está avaliando é um outro código, então se a saída do seu código não estiver formatado da forma que o problema pede o código avaliador não conseguirá entender. | ||
+ | |||
+ | ==== 8 - Exemplos ==== | ||
+ | |||
+ | Essa área é responsável por mostrar alguns exemplos de entradas e saídas referentes a aquelas entradas. | ||
+ | Também funciona como um tira duvidas quanto a formatação da entrada e saída do programa | ||
+ | |||
+ | |||
+ | ==== Dicas ==== | ||
+ | |||
+ | A área de entrada (6) e saída (7) são as mais importantes e que mais necessitam de atenção pois são elas que descrevem a parte prática de como deve funcionar e o que seu código deve responder. Então preste o dobro de atenção nessas duas áreas. | ||
+ | |||
+ | Um dos erros mais comuns é o "Presentation error" ou "Erro de apresentação", significa que o sistema de avaliação não entendeu as saídas do seu código, então sempre verifique se a saída do seu código está formatada como indicado. Se a formatação estiver correta e mesmo assim o sistema continuar indicando esse erro, se seu código quebra a linha depois de apresentar. | ||
+ | Por exemplo: | ||
+ | |||
+ | Códigos sem quebrar a linha. | ||
+ | |||
+ | Pascal | ||
+ | <pre> | ||
+ | write("um"); | ||
+ | write("dois"); | ||
+ | write("três"); | ||
+ | |||
+ | saída do código: | ||
+ | umdoistrês | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | printf("um"); | ||
+ | printf("dois"); | ||
+ | printf("três"); | ||
+ | |||
+ | saída do código: | ||
+ | umdoistrês | ||
+ | </pre> | ||
+ | |||
+ | Códigos quebrando a linha. | ||
+ | |||
+ | Pascal | ||
+ | <pre> | ||
+ | writeln("um"); | ||
+ | writeln("dois"); | ||
+ | writeln("três"); | ||
+ | |||
+ | saída do código: | ||
+ | um | ||
+ | dois | ||
+ | três | ||
+ | </pre> | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | printf("um\n"); | ||
+ | printf("dois\n"); | ||
+ | printf("três\n"); | ||
+ | |||
+ | saída do código: | ||
+ | um | ||
+ | dois | ||
+ | três | ||
+ | </pre> | ||
+ | |||
+ | No caso do pascal a função "writeln" quebra a linha após apresentar a informação. Já na linguagem C usemos o "\n" após a informação dentro da função. Verifique qual a melhor forma de fazer isso na sua linguagem escolhida. |
Edição das 13h24min de 29 de junho de 2020
Índice
Sistemas automáticos de avaliação
Durante esse projeto haverá diversas atividades sugeridas para fixar e colocar em prática os conteúdos aqui estudados. Tanto para a leitura quanto para a avaliação da resolução das atividades serão utilizado dois sites: o Uri e o site da OBI
Uri
A URI Online Judge é um projeto desenvolvido pelo departamento de ciência da computação da universidade URI. Esse portal apresenta um repositório com diversos problemas com diversos níveis de dificuldades para serem resolvidos por meio da programação.
Anatomia de um problema URI
1 - Numero
Esse numero é o numero referente ao problema, é ele quem identifica qual é o problema na hora de enviar a resolução para avaliação. Você também consegue acessar a pagina referente ao problema com esse numero nesse formato.
https://www.urionlinejudge.com.br/judge/pt/problems/view/NUMERO/
Por exemplo:
//Pagina da URI referente ao problema "Soma Simples - 1003" https://www.urionlinejudge.com.br/judge/pt/problems/view/1003/
2 - Nome
Essa área é reservada ao nome do problema.
3 - Autor
Esse área é reservada aos dados de quem postou o problema.
4 - Tempo Limite
Ao realizar a correção do seu código, o próprio sistema irá inserir os dados e analisar os resultados obtidos. Por mais que seu código responda corretamente, os problemas tem um "tempo limite" de execução, então se seu código processar e responder mais lentamente que o limite estabelecido no problema o código será considerado incorreto. Porem esse não é um problema que quem está iniciando deve se preocupar, pois seu código raramente irá encontrar esse problema.
5 - Contexto
Essa área é onde há a contextualização do problema, geralmente uma história ou explicação lúdica de pra que o seu sistema está sendo feito.
6 - Entrada
Área responsável por explicar quais serão as entradas do seu programa, o tipo e o formato que seu código deve ler. Se o seu código não ler os dados como essa área indica o sistema não conseguirá inserir os dados corretamente, o que levará a falha na avaliação. São pouquíssimos os problemas que não exigem entradas.
7 - Saída
Área responsável por explicar qual será a saída do seu programa e como deverá ser formatada. Por mais que seu sistema esteja processando os dados corretamente é preciso apresentar os dados *exatamente* como estão sendo definidos, com o exato numero de espaços e símbolos que estão sendo indicados. Lembre-se que quem está avaliando é um outro código, então se a saída do seu código não estiver formatado da forma que o problema pede o código avaliador não conseguirá entender.
8 - Exemplos
Essa área é responsável por mostrar alguns exemplos de entradas e saídas referentes a aquelas entradas. Também funciona como um tira duvidas quanto a formatação da entrada e saída do programa
Dicas
A área de entrada (6) e saída (7) são as mais importantes e que mais necessitam de atenção pois são elas que descrevem a parte prática de como deve funcionar e o que seu código deve responder. Então preste o dobro de atenção nessas duas áreas.
Um dos erros mais comuns é o "Presentation error" ou "Erro de apresentação", significa que o sistema de avaliação não entendeu as saídas do seu código, então sempre verifique se a saída do seu código está formatada como indicado. Se a formatação estiver correta e mesmo assim o sistema continuar indicando esse erro, se seu código quebra a linha depois de apresentar. Por exemplo:
Códigos sem quebrar a linha.
Pascal
write("um"); write("dois"); write("três"); saída do código: umdoistrês
printf("um"); printf("dois"); printf("três"); saída do código: umdoistrês
Códigos quebrando a linha.
Pascal
writeln("um"); writeln("dois"); writeln("três"); saída do código: um dois três
printf("um\n"); printf("dois\n"); printf("três\n"); saída do código: um dois três
No caso do pascal a função "writeln" quebra a linha após apresentar a informação. Já na linguagem C usemos o "\n" após a informação dentro da função. Verifique qual a melhor forma de fazer isso na sua linguagem escolhida.