Departamento de Ciência da
Computação - IME - USP
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.
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.
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 é
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.
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: