Departamento de Ciência da Computação - IME - USP

MAC0122 Princípios de Desenvolvimento de Algoritmos

Segundo Semestre de 2012

Manual de correção do EP2

 

 

Orientações Gerais

    

     Para facilitar a correção dos EPs, foi feito um programa testador para testar cada uma das 11 funcões do EP:

/* ////////////////////////////////////////////////////////////////
//                                                               //
//                                                               //
//  Valor de cada funcao                                         //
//                                                               //
//  FUNCAO  1 getPixel                  05 pontos                //
//  FUNCAO  2 setPixel                  05 pontos                //
//  FUNCAO  3 criaImagem                10 pontos                //
//  FUNCAO  4 pintaImagem               05 pontos                // 
//  FUNCAO  5 copiaImagem               05 pontos                //
//  FUNCAO  6 desenhaLinha              05 pontos                //
//  FUNCAO  7 desenhaBorda              10 pontos                //
//  FUNCAO  8 juntaPixels               15 pontos                //
//  FUNCAO  9 segmentaRegioes           15 pontos                //
//  FUNCAO 10 pintaRegiao               15 pontos                //
//  FUNCAO 11  main                     20 pontos                //
//                                                               //
//////////////////////////////////////////////////////////////// */

     Para você corrigir o seu EP2, inicialmente copie os arquivos geratestador.c e corretor.c daqui e coloque na mesma pasta que está o seu EP2. A segui estarão as intruções de como utilizar esses arquivos.

 

 

Compilação

     Apesar de sermos bastante tolerantes, há programas que insistem em não ser compiláveis. . . O número de avisos que vocês vão encontrar então. . . :-(

     Os programas devem ser compilados com as opções -Wall -ansi -pedantic -O2 -Wno-unused-result.

  1. Programa não compila
  2. Warnings: NÃO desconte nada.
    Outros descontos provavelmente virão por conta dos erros relacionados a esses warnings que você deixou no seu EP.

 

 

Programa Testador

      No restante deste manual estaremos supondo que o nome do arquivo que contém o seu EP2 é meu-ep2.c. O programa geratestador.c que você copiou para a mesma pasta do seu EP2 será usado, como o próprio nome já diz, para gerar o programa testador. Agora, abra o geratestador.c e o compile e execute. Segue exemplo para o Linux. Tudo que está em azul foi digitado por quem corrigiu o EP

> gcc -Wall -ansi -pedantic -O2 -Wno-unused-result   geratestador.c -o geratestador 
> geratestador 
Gera testador para EP2 de MAC0122

Digite o nome do seu programa (com o .c e sem espacos): meu-ep2.c
Nome do seu programa= 'meu-ep2.c'
Nome do programa testador= 'testador.c'

      No exemplo acima o programa geratestador gerou o arquivo testador.c que essencialmente é o meu-ep2.c alterado para incorporar mais facilmente a tarefa de correção. No testador.c, nos protótipos, foi acrescentado um '2' no final do nome de cada função que foi pedido que os alunos fizessem (e deveria estar no meu-ep2.c. Assim, no testador.c temos:

/*
 * PARTE I.  P R O T O T I P O S   D A S   F U N C O E S
 */

float getPixel2(Imagem *img, int x, int y);

void  setPixel2(Imagem *img, int x, int y, float cor);

void  pintaImagem2(Imagem *img, float cor);

void  copiaImagem2(Imagem *destino, Imagem *origem);

Imagem *criaImagem2(int nLins, int nCols);

void desenhaLinha2(Imagem *img, Linha * lin, float cor);

void desenhaBorda2(Imagem *img, float cor);

int  juntaPixels2(Imagem *img, int x, int y, 
		 float corNova, CelPixel *cabeca);

int  segmentaRegioes2(Imagem *img, CelRegiao cabecas[MAX_REGIOES]);

void pintaRegiao2(CelPixel *cab, Imagem *R, Imagem *G, Imagem *B, 
		  float cor[3]);

void DigiteEnter();
Já nas chamadas das funcões os nomes estão inalterados. Além disso, no final do testador.c foi acrescentada a linha
#include "corretor.c"
O arquivo corretor.c contém todas as funcoes do EP2 com os nomes originais. A idéia é Assim, por exemplo, o programa testador testará as funcões

float getPixel2(Imagem *img, int x, int y);

void  setPixel2(Imagem *img, int x, int y, float cor);

void  pintaImagem2(Imagem *img, float cor);

[ . . . ]
Enquanto o main do seu programa do aluno fará chamadas para as funcões
float getPixel(Imagem *img, int x, int y);

void  setPixel(Imagem *img, int x, int y, float cor);

void  pintaImagem(Imagem *img, float cor);

[ . . . ]
que estão do corretor.c.

  Assim, uma vez gerado o testador.c, para corrigir o seu EP2, você deve abrir o arquivo testador.c no e compila-lo. Segue exemplo para o Linux.

gcc -Wall -ansi -O2 -pedantic -Wno-unused-result testador.c -o testador

  Esses avisos são devidos ao main do meu-ep2.c (que no testador.c foi renomeado para main2 pelo geratestador). A seguir exemplificaremos o processo de correção do seu EP2.

 

 

Uso do Testador

  Uma vez compilado o programa testador.c, rode o executável criado. Nas linhas abaixo, as linhas em vermelho são comentários nossos, não do programa testador, e tudo que está em azul foi digitado por quem corrigiu o EP. O testador criará um arquivo de nome relatorio.txt na mesma pasta. Este arquivo contém um relatório da correção e que foi copiado na parte de "comentários", ao lado da nota que você recebu no seu EP2.

PROGRAMA TESTADOR DO EP2

Lista de funcoes: 
Nome do arquivo com relatorio = 'relatorio.txt'
RELATORIO FINAL

  O RELATORIO FINAL ou arquivo abcd_relatorio.txt que foi criado foi provavelmente copiado na parte de comentários que você recebeu. Eventualmente uma mensagem referente ao desconto por erros de compilação foi incluida no relatório. O conteúdo do arquivo relatorio.txt gerado pela correção acima contém:

Avaliacao do EP:


 

 

 

 


Last modified: Fri Set 21 08:20:38 BRT 2012