Como talvez alguns de vocês não estejam muito familiarizados com
maratonas de programação, vou ratificar aqui algumas regras para
a entrega da TAREFA 5: Fly by night.
A correção da tarefa será automática. Será usada uma entrada pré-
definida e cada programa entregue será executado com essa entrada.
A saída dos programas será então comparada automaticamente com
a saída correta através simplesmente de um diff ou similar.
Assim, para que essa correção funcione, peço que sigam as regras:
1 - O código-fonte entregue, e o executável que ele gera, deve ter
o nome do aluno, sem espaços underscores ou hífens. Exemplo:
'JoseDaSilva.c'. Esse nome deve ser exatamente o mesmo que o
aluno usou para se cadastrar no Moodle.
2 - A entrada do programa é feita pela entrada padrão e a saída
pela saída padrão. As tarefas serão testadas mais ou menos assim:
$ JoseDaSilva < EntradaPreDefinida.txt > SaidaJoseDaSilva.txt
$ diff SaidaJoseDaSilva.txt SaidaCorreta.txt
Enfatizando um pouco mais, isso significa:
- NÃO entreguem arquivos com nome 'ep.c', 'tarefa5.java', 'ep5.cpp', etc.
- NÃO façam o programa abrir arquivos, usem a entrada e saída padrão.
- sigam À RISCA o formato de entrada e saída descrito no enunciado.
A melhor maneira de testar se a sua tarefa está seguindo essas regras é
copiar os exemplos de entrada do enunciado em um arquivo, testar o
seu programa como acima, usando o parâmetro '<', que faz o conteúdo
do arquivo ser enviado para o programa como se fosse através da
entrada padrão, e depois comparar a saída com o exemplo de saída
correspondente do enunciado.
Quaisquer dúvidas, venham falar comigo por e-mail ou na monitoria.
Se seu código-fonte tem diversos arquivos:
1 - Faça a entrega em um arquivo tar, tar.gz ou zip. Esse arquivo deve
seguir as regras de nomenclatura mencionadas para evitar confusão.
2 - Entregue um Makefile de forma que eu possa compilar o seu programa
com um simples 'make'. Lembrete: o executável gerado (no caso de Java,
a classe que contém a função main) deve seguir as regras de nomenclatura.
Pretendo corrigir as tarefas na Rede IME. Teoricamente, se a compilação
e a execução funcionam na Rede Linux, vão funcionar na Rede IME.
Pessoal,
Não sei se perdi alguma coisa da discussão, mas ainda não ficou claro o meio de entrega dos arquivos. Devo enviar um e-mail para o professor? Ou para o monitor mesmo? Qual é o e-mail do monitor? O assunto do e-mail deve seguir algum padrão? Ou gravo num disquete e entrego ?
Abraços e obrigado,
Leandro.
http://latin.ime.usp.br/moodle/mod/assignment/view.php?id=724
No final tem um formulário pra fazer upload do EP
E caso a versão seja em java, é para fazer um bash script com nome do auto que chame o java com o nome da classe que contém o static main, usa-se algo do tipo "make run", ou algo mais exótico (especifique o que por favor)?
A segunda pergunta eu não entendi direito. O aluno deve entregar um Makefile se o código-fonte estiver dividido em vários arquivos. Se houver só um arquivo, eu pretendo compilar simplesmente usando
$ gcc NomeDoAluno.c -o NomeDoAluno
$ javac NomeDoAluno.java
Desculpa pela falta de clareza. Mas você disse:
"2 - A entrada do programa é feita pela entrada padrão e a saída pela saída padrão. As tarefas serão testadas mais ou menos assim: $ JoseDaSilva < EntradaPreDefinida.txt > SaidaJoseDaSilva.txt $ diff SaidaJoseDaSilva.txt SaidaCorreta.txt"
Caso seja em java, precisaria ser algo do tipo
$ java JoseDaSilva/JoseDaSilva < EntradaPreDefinida.txt > SaidaJoseDaSilva.txt
, a menos que usemos uma diretriz run no makefile, e daí a linha ficaria
$ make run < EntradaPreDefinida.txt > SaidaJoseDaSilva.txt
ou usássemos um bash/perl/python/etc script de nome "JoseDaSilva", e daí sim a linha ficaria
$ JoseDaSilva < EntradaPreDefinida.txt > SaidaJoseDaSilva.txt
Existe alguma preferência por alguma destas 3 opções acima?
que precisam de um interpretador. Os exemplos de
linha de comando eram mais para enfatizar o uso de
"<" e ">" e destacar que a entrada/saída padrão será
utilizada ao invés de abertura de arquivos.