Regras para a Tarefa 5

Regras para a Tarefa 5

by Marcelo Hashimoto -
Number of replies: 8
Olá,

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.
In reply to Marcelo Hashimoto

Re: Regras para a Tarefa 5

by Fabio Alexandre Campos Tisovec -
Fiz meu código em java. Tem problema se eu entregar vários arquivos .java, ou tenho que colocar tudo em um só?
In reply to Fabio Alexandre Campos Tisovec

Re: Regras para a Tarefa 5

by Marcelo Hashimoto -
(novas regras para responder à dúvida do Fabio)

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.
In reply to Marcelo Hashimoto

Re: Regras para a Tarefa 5

by Leandro Barion -

     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 wink ?
     Abraços e obrigado,
     Leandro.
In reply to Leandro Barion

Re: Regras para a Tarefa 5

by Wendel Scardua -
É pra entregar neste mesmo site smile

http://latin.ime.usp.br/moodle/mod/assignment/view.php?id=724

No final tem um formulário pra fazer upload do EP
In reply to Wendel Scardua

Re: Regras para a Tarefa 5

by Daniel Ribeiro -
Embora a rede ime não tenha java 5 instalado globalemnte (pelo que eu saiba), pode-se entregar o ep feito nesta versão?

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)?
In reply to Daniel Ribeiro

Re: Regras para a Tarefa 5

by Marcelo Hashimoto -
Pode entregar em Java 5. Mas no momento eu realmente não consigo pensar em algo do EP que precise ou fique bem mais fácil com as funcionalidades do 5.

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
In reply to Marcelo Hashimoto

Re: Regras para a Tarefa 5

by Daniel Ribeiro -

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?

In reply to Daniel Ribeiro

Re: Regras para a Tarefa 5

by Marcelo Hashimoto -
Claro que a primeira opção é aceitável para linguagens
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.