INF 1007 Programação II  
Aula 02 - Módulos  
Edirlei Soares de Lima  
<elima@inf.puc-rio.br>  
Módulos  
Um programa em C pode ser dividido em vários arquivos  
fontes  
Programas reais precisam ser divididos em vários arquivos;  
Seria intratável programar e manter o código de um programa grande em  
único arquivo;  
É possível criar um arquivo separado para implementar  
funções do programa. Esse arquivo é chamado de módulo;  
A implementação de um programa pode ser composta por um  
ou mais módulos;  
Módulos  
Interface de um módulo de funções (Arquivo .h):  
Contem somente os protótipos das funções oferecidas pelo módulo;  
Em geral possui o mesmo nome do módulo ao qual está associado;  
Possui extensão .h  
Módulo (Arquivo .c):  
Contem a implementação das funções que foram definidas na  
interface .h;  
Programa Principal (Arquivo .c):  
Contem a função main do programa;  
Inclui os módulos que foram criados e utiliza a suas funções;  
Módulos - Exemplo  
Crie um programa para calcular a área e o volume de um  
cilindro”  
Podemos criar um módulo especifico para implementar as funções  
relacionadas ao cilindro;  
Dessa forma, o nosso programa será dividido em 3 arquivos:  
Geometria.h interface com a definição dos protótipos das funções  
volume_cilindroe area_cilindro;  
Geometria.c implementação das funções volume_cilindroe  
area_cilindro de acordo com o protótipo definido na interface;  
Principal.c implementação da função principal do programa;  
Módulos - Exemplo  
Arquivo Geometria.h:  
#
define PI 3.14159  
float volume_cilindro(float raio, float altura);  
float area_cilindro(float raio, float altura);  
Módulos - Exemplo  
Arquivo Geometria.c:  
#include <math.h>  
#include "Geometria.h"  
float volume_cilindro(float raio, float altura)  
{
float volume = PI * pow(raio,2) * altura;  
return volume;  
}
float area_cilindro(float raio, float altura)  
{
float area = 2 * PI * raio * (altura + raio);  
return area;  
}
Módulos - Exemplo  
Arquivo Principal.c:  
#include <stdio.h>  
#include "Geometria.h"  
int main(void)  
{
float raio, altura, volume, area;  
printf("Entre com o valor do raio e da altura: ");  
scanf("%f %f", &raio, &altura);  
volume = volume_cilindro(raio, altura);  
area = area_cilindro(raio, altura);  
printf("Volume do cilindro: %f\n", volume);  
printf("Area do cilindro: %f\n", area);  
return 0;  
}
Criando Módulos no Visual Studio  
1. Crie um novo projeto no Visual Studio:  
Criando Módulos no Visual Studio  
2
. Adicione um novo arquivo fonte ao projeto:  
Lembre-se de adicionar extensão .c no nome;  
Esse será o arquivo que contem a função principal do programa;  
Criando Módulos no Visual Studio  
3
. Adicione um novo arquivo do tipo header ao projeto:  
Essa será a interface para o módulo que está sendo criado;  
Criando Módulos no Visual Studio  
4
. Adicione um novo arquivo fonte ao projeto :  
Essa será o arquivo que contem a implementação do módulo que  
está sendo criado;  
Lembre-se de adicionar extensão .c no nome;  
Criando Módulos no Visual Studio