Eu gostaria de saber,zs eu preciso entregar somente o arquivo código do EP ou preciso entregar o código e mais os headers(stack.h,item.h e queue.h) que utilizei?Pergunto isso pois tive que alterar uma,e acredito que isso possa variar de código pra código...
Diego
gostaria de saber também. Apesar de ter feito sem interface, ficaria mais legível com alguns headers (além de poder praticar). É que o texto que acompanha o EP parece tão severo (NAO EDITE OU MODIFIQUE NADA QUE ESTA ESCRITO NESTE ESQUELETO)!
Re: Sobre as interfaces em relação ao EP3
Eu ia criar outro tópico, ams acho que a minhda dúvida é muti parecida com a de vocês.
Eu posso criar funções para deixar o código mais legivel, como empilhar e desempilhar?
Porque, se não, vou ter que repetir várias vezes o mesmo bloco de código.
Eu aposto que, como o outro EP, pode, mas acho que nao custa perguntar.
Mas eu ACHO que apesar de o Coelho ter mostrado como fazer pilha e fila implementada com Headers, nesse caso deveriamos implementar as funções no próprio arquivo .c mesmo, mas realmente que, com headers, o código ia ficar mais bonito.
Pois é,eu usei os headers para o código ficar menor e mais fácil de procurar algum erro,e não me preucupar com a implementação da pilha/fila dentro do código,só usar as funções.
Ois,
Respondendo algumas perguntas, acho. . .
Funções
No EP3 vocês podem criar as funções que quiserem.
Quebrar um programa em várias funções é sempre muito bom.
Entretanto, vocês não podem alterar o que foi dado e devem seguir o que foi descrito no enunciado do EP3.
Por exemplo, o programa de vocês deve manipular filas e pilhas em que todos os elementos são do tipo Celula, como definido no enunciado.
Interfaces
Ao criar funções para manipular filas e pilhas vocês podem:
- incluir essas funções diretamente no arquivo fonte do ep3 (como foi feito no EP2); ou
- criar interfaces e implementações.
Se vocês criarem interfaces e as respectivas implementações vocês devem entregar:
- o fonte de ep3;
- todos os arquivos de interface (por exemplo, stack.h e queue.h);
- todos os arquivos com implementações (por exemplo, stack.c e queue.c);
- um Makefile de tal forma que
meu_prompt> make
produza o executável do seu EP3.
Entrega
O Paca não costuma aceitar a entrega de vários arquivos.
Por isto, aqueles que quebraram o EP3 em vários arquivos (o que é excelente!), devem depositar um arquivo no formato tar ou zip com todos os arquivos.
O único inconveniente aqui é que não será possível utilizar o teste de compilação do Paca.
Por exemplo, para criar um arquivo zip com todos os arquivos do seu EP3 faça
meu_prompt> zip meusarquivos stack.* queue.* meuep3.c Makefile
Isto criará no diretório corrente um arquivo de nome meusarquivos.zip contendo os arquivos stack.h stack.c queue.h queue.c meuep3.c e Makefile.
Para ver a lista dos arquivos em meusarquivos.zip faça
meu_prompt> unzip -l meusarquivos.zip
Re: Sobre as interfaces em relação ao EP3
Seria possível criar também um "item.h" para declarar a struct Celula do esqueleto e usá-la na implementação da fila/pilha? Porque assim eu poderia criar uma interface mais genérica, como a mostrada em aula.
E aproveitando a oportnutidade, quando vou dar o comando #include, qual a diferença entre fazer #include "item.h" e #include<item.h> ? Há alguma diferença entre usar as aspas e os <> ao incluir as interfaces?
Re: Sobre as interfaces em relação ao EP3
Seria possível criar também um "item.h" para declarar a struct Celula do esqueleto e usá-la na implementação da fila/pilha? Porque assim eu poderia criar uma interface mais genérica, como a mostrada em aula.
Sim, pode fazer isto.
E aproveitando a oportnutidade, quando vou dar o comando #include, qual a diferença entre fazer #include "item.h" e #include<item.h> ? Há alguma diferença entre usar as aspas e os <> ao incluir as interfaces?
Com
#include <item.h>
o gcc vai procura o arquivo item.h no diretório /usr/include/ (e não vai achar).
Já com
#include "item.h"
o gcc procura o arquivo item.h no diretório corrente.
Re: Sobre as interfaces em relação ao EP3
Olhando um pouco a implmentação de stack.c para o polonesa3 nas notas de aula, percebi que havia a seguinte declaração:
" static Link topo; "
Qual a função do 'static' dentro desta construção? Pelo highlight que meu editor deu, percebi que esta é uma palavra reservada do C. Qual seria a função dela dentro da linguagem?