Buscar

7 - Modularização

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos
Prof. Hilton Cardoso Marins Junior
hiltonmarins@gmail.com
MODULARIZAÇÃO
Modularização
A modularização consiste num método para facilitar a construção de 
grandes programas, através de sua divisão em pequenos programas
conhecidos como módulos, rotinas, sub-rotinas ou sub-programas. 
Um dos objetivos do programador é dividir o programa em módulos de 
menor complexidade, eliminando o inconveniente dos programas se 
tornarem extremamente grandes e complexos, em aplicações de maior
porte.
O programador ao projetar um programa deverá levar em conta que os
módulos são criados de acordo com a sua função. Os módulos deverão ter
funções específicas e independentes (em termos funcionais).
Funções
Na linguagem C implementamos os módulos de programa através das 
funções. O programador ao projetar um programa deve procurar separar
blocos de comandos de acordo com sua função. Chamamos estes blocos de 
funções.
Uma função é um trecho de programa que possui cabeçalho, variáveis e 
comandos próprios e que pode ser executado por um programa ou outra
função.
Quando uma função é referenciada, o controle do fluxo de execução é 
automaticamente transferido para o princípio dela. As instruções são então
executadas. Após o término delas, o controle é automaticamente devolvido
à instrução imediatamente a seguir à chamada da função.
Invocando (Chamando) Uma Função
Todo programa em C é composto de funções. A execução é iniciada pela
função main().
Para executar uma função, ela deve ser invocada no corpo de uma outra
função, exceto a função main(), que é executada ao iniciar o programa.
O esquema abaixo mostra como é fluxo de execução ao invocarmos uma
função.
funcão-1(){
...
funcão-2();
...
}
funçao-2(){
...
}
Exemplo: chamando um função
void apresentacao(void);
int edivisivel( int a, int b);
main(){
int n1,n2;
apresentacao();
printf("\nInforme um numero: ");
scanf("%d", &n1);
printf("\nInforme um numero: ");
scanf("%d", &n2);
if ( edivisivel(n1,n2)){
printf("%d e divisivel por %d", n1, n2);
}else{
printf("%d NAO e divisivel por %d", n1, n2);
}
}
Protótipo das 
Funções
Continua…
Exemplo
void apresentacao(void){
system("cls");
printf("\n*************************************");
printf("\nPROGRAMA QUE EXPLICA O USO DE FUNCOES");
printf("\n\nIF SUDESTE MINAS GERAIS");
printf("\nProf. Hilton Cardoso Marins Junior");
printf("\n*************************************");
}
int edivisivel( int a, int b){
if ((a%b) == 0 ){
return 1;
}else{
return 0;
}
}
Implementação
das Funções
Argumentos de uma Função
São utilizados para transmitir informações para a função.
Se uma função usa argumentos, ela deve declarar variáveis que aceitem os valores
dos argumentos. Estas variáveis são chamadas de parâmetros formais. Os
parâmetros formais se comportam como quaisquer outras variáveis locais dentro
da função.
Uma função pode receber qualquer número de argumentos, inclusive nenhum. No 
caso de uma função sem argumentos pode-se escrevê-la de duas formas: deixando
a lista de argumentos vazia (mantendo-se entretanto os parênteses) ou colocando o 
tipo void entre parênteses.
int triplo(int r){
return 3*r;
}
void mostra(){ //ou void mostra(void)
printf(“Ola!!!!!!”);
}
Parâmetros
formais
Retorno de uma Função
É o valor que uma função retorna para a função que a chamou. O 
tipo de retorno é fornecido no cabeçalho da função antes de seu
nome.
int triplo(int r){
return 3*r;
}
O comando return faz com seja retornado o valor especificado e faz
com com a função termine. Se uma funcao não retorna nada, seu tipo
de retorno deve ser definido como void. 
void mostra(){
printf(“Ola!!!!!!”);
}
Retorno de uma Função
O comando return pode ser utilizado numa função com tipo de 
retorno void. Neste caso, o comando nao deve retornar nenhum
valor: return void.
O comando return pode ser utilizado também para indicar a saída
imediata da função, basta colocarmos o comando return sozinho. 
Se o tipo de retorno da função não é explicitamente declarado, o 
compilador C atribui automaticamente o tipo padrão, que é int.
Exemplo: retorno de uma função
float calculaMedia (float ,float ) ;
int main ( ) {
float a , b , m;
printf ("\nDigite o primeiro numero: " ) ;
scanf ("%f", &a ) ;
printf ("\nDigite o segundo numero: " ) ;
scanf ("%f", &b ) ;
m = calculaMedia (a, b) ;
printf("\nMedia entre %.2f e %.2f é %.2f\n",a,b,m);
}
float calculaMedia (float argA , float argB) {
float mediaCalculada ;
mediaCalculada = ( argA + argB ) / 2 ;
return mediaCalculada ;
}
Exemplo: recebendo um vetor como parâmetro
void imprimeMatriz (float argMatriz [4][4]);
int main(){
float matriz [4] [4] ;
int i , j ;
printf("\nDigite os elementos da matriz\n" ) ;
for (i = 0 ; i < 4 ; i++ ){
for (j = 0 ; j < 4 ; j++ ){
scanf ( "%f" ,&matriz [ i ] [ j ] ) ;
}
}
imprimeMatriz (matriz) ;
}
void imprimeMatriz (float argMatriz [4] [4]){
int i , j ;
printf("\nImpressao da matriz\n" ) ;
for (i = 0 ; i < 4 ; i++ ){
for (j = 0 ; j < 4 ; j++ ){
printf("%.1f\t" ,argMatriz [i][j]);
}
printf("\n");
}
}
Passagem de Parâmetros por Valor
Copia o valor de um argumento no parâmetro formal da função. 
Assim alterações no parâmetro formal da função não tem nenhum
efeito nos argumentos usados na chamada da função
int quadrado(int x);
main(){
int t=10;
printf("%d %d", quadrado(t), t);
getch();
}
int quadrado(int x){
x = x * x;
return x;
}
Obs.: Veremos passagem de parâmetros por referência após
aprendermos sobre ponteiros.
Locais de Declaração de Variáveis (Escopo)
Existem 3 lugares em um programa em C onde as variáveis podem ser declaradas:
Fora de todas as funções, inclusive da função main(). A variável assim
declarada é chamada de variável global e pode ser usada em qualquer
parte do programa. Uma variável global é criada (alocada na memória) 
quando o programa inicia e é destruída (liberada da memória) quando o 
programa é finalizado.
Dentro de uma função. A variável assim declarada é chamada de variável
local e só pode ser usada dentro desta função. Uma variável local é 
criada quando a função é invocada e destruída quando a função é 
finalizada.
Na lista de parâmetros formais de uma função, para receber os
argumentos que são passados para a função. Uma variável declarada
como parâmetro formal de uma função é criada quando a função é 
invocada e destruída quando a função é finalizada. Possui
comportamento idêntico da variável local.
1
2
3
Escopo de uma Variável
O escopo de uma variável é a região do programa que ela pode ser 
referenciada. Essa região tem como início a linha que declara a variável e 
como fim as chaves que finalizam o bloco.
void f (){
int t
scanf(“%d”,&t);
if (t ==1){
char s[80];
printf(“entre com o nome: “);
gets(s);
...
}
...
}
Região do programa em
que podemos referenciar
a variável t
Região do programa em
que podemos referenciar
a variável s
A Forma Geral de Um Programa em C
declarações das variáveis globais
declarações dos protótipos das funções
tipo-devolvido main (lista-de-parâmetros){
sequência-de-comandos;
}
tipo-devolvido f1 (lista-de-parâmetros){
sequência-de-comandos;
}
tipo-devolvido f2 (lista-de-parâmetros){
sequência-de-comandos;
}
...
tipo-devolvido fn (lista-de-parâmetros){
sequência-de-comandos;
}
Obs.: f1()até fn() representam as funções definidas pelo usuário.
Argumentos da Função Main()
Para passar informações para um programa ao executá-lo utilizamos
argumento de linha de comando.
Argumento de linha de comando é a informação que segue o nome do 
programa na linha de comando do sistema operacional.
Para executar o programa abaixo digitamos no prompt do sistema
operacional: testeJose seguindo de enter.
main(int argc, char *argv[]){
if (argc !=2){
printf("Voce esqueceu de informar o nome.\n");
getch();
exit(1);
}
printf("Ola %s",argv[1]);
getch();
}
Argumentos da Função Main()
O primeiro parâmetro (argc) é um inteiro que contém o número de argumentos
da linha de comandos que foram passados. Ele é sempre pelo menos 1, porque o 
nome do programa será o primeiro argumento.
O segundo parâmetro (argv) é um ponteiro para um vetor de ponteiros para char. 
Cada elemento deste vetor aponta para um argumento da linha de comando. 
argv[0] aponta para a primeira string, que é sempre o nome do programa, argv[1] 
aponta para a segunda string, e assim por adiante.
main(int argc, char *argv[]){
if (argc !=2){
printf("Voce esqueceu de informar o nome.\n");
getch();
exit(1);
}
printf("Ola %s",argv[1]);
getch();
}

Outros materiais