Buscar

Aula10_Modularidade_1_AP

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 23 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 23 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 23 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

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos e Programação
Modularidade (1)
Profª Janne Oeiras Lachi
1
Plano de aula
` Programação estruturada de computador ou 
Programação modular
` Subprogramas: procedimentos e funções
` Variáveis globais e locais
` Passagem de parâmetro: por valor e por referência
` Parâmetros formais e reais
Tipos de módulos ou subprogramas
` Procedimento ou Sub-rotina
` É um tipo de módulo que não retorna valor
` São estruturas que agrupam um conjunto de comandos 
executados quando o procedimento é invocado
` Funções
` É um tipo de módulo que tem a capacidade de sempre
retornar um valor como resposta.
Procedimentos
` Tem início e fim (como qualquer algoritmo) e é
identificado por um nome para que possa ser chamado 
pela unidade mestre (algoritmo principal).
` Sintaxe em Português estruturado:
programa <nome_do_seu_programa>
procedimento <nome_do_procedimento>
var
<variáveis do procedimento>
início
<instruções do procedimento>
fim
var
<variáveis do seu programa>
início
<instruções>
<sub-rotina>
<instruções>
fim
É como se você 
tivesse um programa 
dentro de outro
Exemplo 1
` Escreva um procedimento para imprimir o seguinte 
cabeçalho:
Universidade Federal da Grande Dourados
Curso de Bacharelado em Sistemas de Informação
Ano 2012
` Escreva um algoritmo em Português estruturado que 
utilize o procedimento para escrever o cabeçalho.
Exemplo 1: solução
programa <nome_do_seu_programa>
procedimento <nome_do_procedimento>
var
<variáveis do procedimento>
início
<instruções do procedimento>
fim
var
<variáveis do seu programa>
início
<instruções>
<sub-rotina>
<instruções>
fim programa IMPRESSAO
procedimento CABECALHO
início
escreva “Universidade Federal da Grande Dourados”
escreva “Curso de Bacharelado em Sistemas de Informação”
escreva “Ano 2012”
fim
início
CABECALHO
fim
Exemplo 1: em Pascal
programa IMPRESSAO
procedimento CABECALHO
início
escreva “Universidade Federal da Grande Dourados”
escreva “Curso de Bacharelado em Sistemas de Informação”
escreva “Ano 2012”
fim
início
CABECALHO
fim
Program Impressao;
procedure CABECALHO;
begin
writeln(‘Universidade Federal da Grande Dourados’);
writeln(‘Curso de Bacharelado em Sistemas de Informação’);
writeln(‘Ano 2012’);
end;
Begin
CABECALHO;
End.
Tipos de módulos ou subprogramas
` A Linguagem C permite SOMENTE a definição de 
FUNÇÕES
` Não há o conceito de procedimento implementado como 
em outras linguagens como Pascal, Fortran, Basic etc.
` Porém, vamos implementar procedimentos usando 
funções em C.
` Todo programa em Linguagem C contém pelo menos 1
função: main()
` Além das funções disponíveis nas bibliotecas C (padrão 
ou não), você pode criar e usar novas funções.
Funções em Linguagem C
` Sintaxe:
tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n)
{
comando 1;
...
comando n;
return(valor_de_retorno);
}
O tipo de uma função
` O tipo de uma função é definido pelo tipo de valor que ela 
retorna por meio do comando return;
` Os tipos de funções em C são os mesmos tipos usados para 
declarar variáveis, exceto quando a função não retorna nada. 
Nesse caso ela é do tipo void;
` Atenção: o tipo de uma função é determinado pelo valor que 
ela retorna via comando return, e não pelo tipo de 
argumento que ela recebe.
tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n)
{
comando 1;
...
comando n;
return(valor_de_retorno);
}
Função do tipo void
` Quando a função não retorna nada, ela é do tipo void;
` Procedimento ou Sub-rotina
` É um tipo módulo que não retorna valor
` São estruturas que agrupam um conjunto de comandos 
executados quando o procedimento é invocado
Na Linguagem C, vamos definir nossos 
procedimentos como funções do tipo void
Exemplo 1: em Linguagem C
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2012\n");
}
programa IMPRESSAO
procedimento CABECALHO
início
escreva “Universidade Federal da Grande Dourados”
escreva “Curso de Bacharelado em Sistemas de Informação”
escreva “Ano 2012”
fim
início
CABECALHO
fim
Exemplo 1: em Linguagem C
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2011\n");
}
programa IMPRESSAO
procedimento CABECALHO
início
escreva “Universidade Federal da Grande Dourados”
escreva “Curso de Bacharelado em Sistemas de Informação”
escreva “Ano 2011”
fim
início
CABECALHO
fim
Relembrando a sintaxe
` Sintaxe:
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2011\n");
}
tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n)
{
comando 1;
...
comando n;
return(valor_de_retorno);
}
Note que neste exemplo, a função 
cabecalho não tem o return no final.
Funções do tipo void
` Em funções do tipo void o comando return não é
obrigatório;
` Uma função sem comando return termina quando encontra a 
chave de fechamento “}”.
` Podem ter um comando return desacompanhado de 
expressão;
` Nesse caso o return serve para terminar a execução da 
função;
Exemplo 1: em Linguagem C
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2012\n");
return;
} Poderia ser assim...
Relembrando a sintaxe
` Sintaxe:
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2012\n");
}
tipo nome_função (tipo nome_parâmetro 1, ..., tipo nome_parâmetro n)
{
comando 1;
...
comando n;
return(valor_de_retorno);
}
Nosso procedimento não precisa receber 
parâmetros, então usamos void
Protótipo da função
` Uma função não pode ser chamada sem antes ter sido 
declarada;
` A declaração de uma função é denominada protótipo da 
função;
` O protótipo é colocado no início do programa e estabelece o 
tipo da função e os argumentos que ela recebe.
#include <stdio.h>
#include <stdlib.h>
void cabecalho(void); /* protótipo da função */
int main()
{
cabecalho();
system("pause");
return 0;
}
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2012\n");
}
Usa-se o protótipo porque 
geralmente um programa 
tem várias funções que se 
fossem declaradasno início 
do arquivo, jogariam a 
função main lá para baixo, 
quando a main deveria ser a 
primeira função a ser vista.
Protótipo da função
` O protótipo de uma função deve preceder sua definição e sua 
chamada.
` Fornece para o compilador as informações necessárias sobre 
o tipo da função, o número e o tipo dos argumentos.
` Sem o protótipo da função, o compilador não tem como 
verificar e checar se há erros em seu uso.
` Sintaxe:
tipo nome_função (tipo 1, ..., tipo n);
void cabecalho (void); 
Não utilização de protótipo
` O protótipo pode ser eliminado, basta escrever a função 
antes da função chamadora.
#include <stdio.h>
#include <stdlib.h>
/* definição da função */
void cabecalho(void)
{
printf("Universidade Federal da Grande Dourados\n");
printf("Curso de Bacharelado em Sistemas de Informação\n");
printf("Ano 2011\n");
}
int main()
{
cabecalho();
system("pause");
return 0;
}
Problema: a função main() é
o ponto de início e pode ficar 
bem para “baixo” no código.
Não utilização de protótipo
` Caso a função seja do tipo int, char ou void, não é obrigatório 
o uso do protótipo e nem a declaração do tipo da 
função.
#include <stdio.h>
#include <stdlib.h>
main()
{
cabecalho();
return 0;
}
/* definição da função */
cabecalho()
{
printf(“Universidade Federal da Grande Dourados”);
printf(“Curso de Bacharelado em Sistemas de Informação”);
printf(“Ano 2012”); 
}
O tipo da função cabecalho
não foi declarado e é
assumido como do tipo int.
Foram omitidos os tipos de 
main() e cabecalho()
Exemplo de problema
` Desenvolver um algoritmo que simule as operações básicas 
de uma calculadora que opere com a entrada de dois 
valores do tipo real após a escolha da operação a ser 
executada.
` O algoritmo deve apresentar uma lista de opções (menus) 
com as operações matemáticas de adição, subtração, 
multiplicação e divisão, além de uma opção de saída do 
algoritmo.
` Escolhida a opção desejada, deve ser solicitada a entrada de 
dois valores numéricos para que seja possível executar o 
processamento escolhido.
` Após a execução da operação, o algoritmo deve apresentar 
o resultado e voltar a apresentar o menu de opções.
Referências
` Algoritmos – Fundamento e Prática. Everton Coimbra de 
Araújo. Florianópolis: Visual Book, 2007.
` Algoritmos - Lógica para desenvolvimento de programação de 
computadores. José Augusto N. G. Manzano, Jayr Figueiredo 
de Oliveira. São Paulo: Érica, 2006.
` Victorine Viviane Mizrahi. Treinamento em linguagem C. 
São Paulo: Pearson Prentice Hall, 2008. 
` Ricardo Sonaglio Albano e Silvie Guedes Albano. Programação 
em Linguagem C. Rio de Janeiro; Editora Ciência Moderna, 
2010.
23
	Algoritmos e Programação
	Plano de aula
	Tipos de módulos ou subprogramas
	Procedimentos
	Exemplo 1
	Exemplo 1: solução
	Exemplo 1: em Pascal
	Tipos de módulos ou subprogramas
	Funções em Linguagem C
	O tipo de uma função
	Função do tipo void
	Exemplo 1: em Linguagem C
	Exemplo 1: em Linguagem C
	Relembrando a sintaxe
	Funções do tipo void
	Exemplo 1: em Linguagem C
	Relembrando a sintaxe
	Protótipo da função
	Protótipo da função
	Não utilização de protótipo
	Não utilização de protótipo
	Exemplo de problema
	Referências

Outros materiais