Sobre as interfaces em relação ao EP3

Sobre as interfaces em relação ao EP3

por Diego Martos -
Número de respostas: 7

  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

Em resposta à Diego Martos

Re: Sobre as interfaces em relação ao EP3

por Ricardo Mikio Morita -

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)! pensativo

Em resposta à Ricardo Mikio Morita

Re: Sobre as interfaces em relação ao EP3

por Victor Sanches Portella -

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.

Em resposta à Victor Sanches Portella

Re: Sobre as interfaces em relação ao EP3

por Diego Martos -

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.

Em resposta à Diego Martos

Re: Sobre as interfaces em relação ao EP3

por José Coelho de Pina -

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 
Em resposta à José Coelho de Pina

Re: Sobre as interfaces em relação ao EP3

por Renato Cordeiro Ferreira -

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?

Em resposta à Renato Cordeiro Ferreira

Re: Sobre as interfaces em relação ao EP3

por José Coelho de Pina -

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.

Em resposta à José Coelho de Pina

Re: Sobre as interfaces em relação ao EP3

por Renato Cordeiro Ferreira -

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?