Buscar

APRESENTACAO DA AULA 7

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

CCE1040 – LÓGICA DE PROGRAMAÇÃO 
Aula 7: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
As funções em programação são inspiradas na matemática: 
 
• possuem dados de entrada (ilimitados); 
• possuem apenas um dado de saída; 
• devem realizar uma única tarefa; 
 
• facilita a reutilização em outras situações e programas; 
• fica fácil de nomear (o nome deve ser associado à tarefa); 
• fica fácil de testar e corrigir; 
• devem ser pequenas (caber na tela pode ser um critério); 
• após aprovadas podem ser reutilizadas até em outros programas sem 
testes; 
 
• são chamadas pelo nome; 
• seu uso organiza o código; 
• sempre que precisar realizar aquela tarefa, basta chamá-la; 
Lógica de Programação 
AULA 07: Modularização: funções 
• A ideia básica do projeto de um programa é reduzi-lo a uma 
sequência de tarefas, cada uma realizada por um módulo 
(função). 
 
• A função principal, Main (em C), é responsável pelo 
gerenciamento principal das “chamadas” de função, fazendo 
uma espécie de distribuição e terceirização das tarefas. 
 
• Dividir o programa em uma sequência de tarefas (funções) 
normalmente gera a necessidade de se programar um grande 
número de funções. 
Lógica de Programação 
AULA 07: Modularização: funções 
• As funções devem ser especificadas detalhadamente. 
 
• Um critério para saber se a tarefa atribuída a uma função está 
bem especificada pode ser a facilidade de nomeá-la. 
 
• Esta lógica permite o trabalho em equipe, pois os 
programadores vão desenvolver funções e não o programa. 
 
• As linguagens disponibilizam funções pré-definidas 
organizadas em bibliotecas temáticas. 
Lógica de Programação 
AULA 07: Modularização: funções 
Conhecendo a Nomenclatura 
Lógica de Programação 
Função 
AULA 07: Modularização: funções 
Pode-se entender a função como um pequeno programa (módulo) que recebe valores de entrada 
em parâmetros declarados especificamente para este fim, realiza sua tarefa processando os dados 
de entrada e retorna um valor como resposta. 
Lógica de Programação 
Função 
AULA 07: Modularização: funções 
Exemplo: função que calcula a média aritmética de dois números. 
 
Nome da função: media 
Dados de entrada: 2 números quaisquer 
Parâmetros (variáveis) que receberão os dados de entrada: n1 e n2 
Calcula a média e armazena o resultado em uma variável “local” med 
Valor retornado: a média dos 2 números fornecidos na entrada 
Lógica de Programação 
Definição da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
{ 
 <declaração das variáveis locais> 
 
 comandos que formam o corpo da função 
 
 return <valor>; // ou return; ou nada 
} 
Lógica de Programação 
Definição da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
{ 
 <declaração das variáveis locais> 
 
 comandos que formam o corpo da função 
 
 return <valor>; // ou return; ou nada 
} 
Tipo de função: tipo do dado retornado pela função 
Declaração dos parâmetros: variáveis declaradas para receber dados de entrada na chamada 
Declaração das variáveis locais: variáveis necessárias para a execução da tarefa 
Comandos: linhas de código responsáveis pela execução da tarefa da função 
Return: comando que retorna o valor de resposta da função 
Lógica de Programação 
Função 
AULA 07: Modularização: funções 
float media (float n1, float n2) 
{ 
 float med; 
 med = (n1+n2)/2; 
 return med; 
} 
Função media que retorna um número real e 
recebe 2 números reais nos parâmetros n1 e n2 
Declaração de variável real para armazenar o valor da média 
Calcula o valor da média de n1 e n2 e armazena em med 
Retorna o valor armazenado em med (média calculada) 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
Exemplo: 
 float media (float n1, float n2) 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
Exemplo: 
 float media (float n1, float n2) 
Corpo da Função - Escopo 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
{ 
 <declaração das variáveis locais> 
 
 comandos que formam o corpo da função 
 
 return <valor>; // ou return; ou nada 
} 
Corpo da Função - Escopo 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
+ 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
+ 
; 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros) 
= 
Protótipo da Função 
Lógica de Programação 
Cabeçalho da Função 
AULA 07: Modularização: funções 
<tipo de função>nomeDaFunção(declaração dos parâmetros); 
Exemplo: 
 
float media (float n1, float n2); 
 
= 
Protótipo da Função 
O protótipo da função pode ser visto como uma declaração da função, 
como o compilador tem que “entender” o código lido, é necessário que ele 
conheça a função para poder criticar se a chamada está correta. 
Lógica de Programação 
AULA 07: Modularização: funções 
Como uma Função é Chamada? 
Lógica de Programação 
AULA 07: Modularização: funções 
Como chamar uma Função? 
Descrição: cabeçalho da função 
 
• Dados de entrada: 
• qualquer quantidade; 
• os dados de entrada devem ser fornecidos. 
• Valor de retorno: 
• Pode ser armazenado em uma variável; 
• Pode ser utilizado em uma expressão; 
• Pode não existir. 
 
 
Pelo Nome 
Lógica de Programação 
AULA 07: Modularização: funções 
 TIPOS da função 
(tipo do valor de retorno) 
void 
int 
float 
double 
char 
... 
Lógica de Programação 
AULA 07: Modularização: funções 
Como os Valores são 
Passados? 
Passagem por Valor 
Lógica de Programação 
AULA 07: Modularização: funções 
Como os Valores são 
Passados? 
Passagem por Valor 
Exemplo: Você empresta seu caderno para xerocar. 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 1: 
função que imprime o texto “Logica de Programacao” 
Tarefa: imprimir o texto “Logica de Programacao” 
Dados de entrada: não possui 
Valor de retorno: não possui 
void msg() 
{ 
 cout<<“Logica de Programacao”; 
} 
como chamar? 
int main (void) 
{ 
 msg(); 
 return 0; 
} 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 1: 
função que imprime o texto “Logica de Programacao” 
Tarefa: imprimir o texto “Logica de Programacao” 
Dados de entrada: não possui 
Valor de retorno: não possui 
parênteses vazios: sem dados de entrada 
chamada isolada de função: sem valor 
de retorno 
como chamar? 
int main (void) 
{ 
 msg(); 
 return 0; 
} 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 2: 
função que calcula a média entre dois números fornecidos 
Tarefa: calcular a média de 2 números 
Dados de entrada: 2 números 
Valor de retorno: média 
float media (float n1, float n2) 
{ 
 float med; 
 med=(n1+n2)/2; 
 return med; 
} 
como chamar? 
int main (void) 
{ 
 float a,b,m; 
 cin>>a; 
 cin>>b; 
 m=media(a,b); 
 cout>>med; 
 return 0; 
} 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 2: 
função que calcula a média entre dois números fornecidos 
Tarefa: calcular a média de 2 números 
Dados de entrada: 2 números 
Valorde retorno: média 
dados de entrada fornecidos na ordem 
definida 
valor de retorno armazenado na variável m 
Como toda expressão de atribuição: 
1. resolve o lado direito (executa a 
função) 
2. atribui o valor 
 
como chamar? 
int main (void) 
{ 
 float a,b,m; 
 cin>>a; 
 cin>>b; 
 m=media(a,b); 
 cout>>med; 
 return 0; 
} 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 3: 
função que calcula o montante a partir do capital, tx de juros e tempo 
Tarefa: calcular o montante devido a partir do capital, tx 
de juros e tempo 
Dados de entrada: capital, tx de juros e tempo em meses 
Valor de retorno: montante devido 
float jurosComp(float c, float i, float t) 
{ 
 float m; 
 m=c*pow(1+i/100,t); 
 return med; 
} 
Chamada da função pré-definida da 
linguagem para calcular potência. 
Retorna o 1º argumento elevado ao 2º. 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 3: 
função que calcula o montante a partir do capital, tx de juros e tempo 
Tarefa: calcular o montante devido a partir do capital, tx 
de juros e tempo 
Dados de entrada: capital, tx de juros e tempo em meses 
Valor de retorno: montante devido 
float jurosComp(float c, float i, float t) 
{ 
 float m; 
 m=c*pow(1+i/100,t); 
 return med; 
} 
int main (void) 
{ 
 float cap,tx,mont; 
 int m; 
 cin>>cap; 
 cin>>tx; 
 cin>>t; 
 mont=jurosComp(cap,tx,m); 
 cout>>mont; 
 return 0; 
} 
como chamar? 
Lógica de Programação 
AULA 07: Modularização: funções 
Exemplo 3: 
função que calcula o montante a partir do capital, tx de juros e tempo 
Tarefa: calcular o montante devido a partir do capital, tx 
de juros e tempo 
Dados de entrada: capital, tx de juros e tempo em meses 
Valor de retorno: montante devido 
dados de entrada fornecidos na ordem 
definida 
valor de retorno armazenado na variável 
mont 
Como toda expressão de atribuição: 
1. resolve o lado direito (executa a 
função) 
2. atribui o valor 
int main (void) 
{ 
 float cap,tx,mont; 
 int m; 
 cin>>cap; 
 cin>>tx; 
 cin>>t; 
 mont=jurosComp(cap,tx,m); 
 cout>>mont; 
 return 0; 
} 
como chamar? 
Lógica de Programação 
AULA 07: Modularização: funções 
Localização da Função 
ANTES da main() 
FUNÇÃO 
main() 
Lógica de Programação 
AULA 07: Modularização: funções 
Localização da Função 
DEPOIS da main() 
main() 
FUNÇÃO 
Lógica de Programação 
AULA 07: Modularização: funções 
Programa com ERRO 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
Eu pensei que, se colocássemos antes da 
main(), nunca teríamos problemas. E agora? 
Lógica de Programação 
AULA 07: Modularização: funções 
A primeira solução para esse problema, seria 
colocar a função dobra(...) antes da função 
soma(...), mas, em outras situações, pode ficar 
complicado. 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
A segunda solução para esse problema, seria 
declarar (protótipos) das funções antes de 
defini-las e, preferencialmente, posicioná-las 
depois da main(). 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
 Variável GLOBAL x Variável LOCAL 
Lógica de Programação 
AULA 07: Modularização: funções 
 Variável GLOBAL x Variável LOCAL 
Declarada FORA de 
todas as Funções 
Lógica de Programação 
AULA 07: Modularização: funções 
 Variável GLOBAL x Variável LOCAL 
Declarada FORA de 
todas as Funções 
Lógica de Programação 
AULA 07: Modularização: funções 
 Variável GLOBAL x Variável LOCAL 
Declarada FORA de 
todas as Funções 
Declarada DENTRO 
das Funções 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
Lógica de Programação 
AULA 07: Modularização: funções 
Vamos ao Bate Pronto 
Lógica de Programação 
AULA 07: Modularização: funções 
1) Cite duas vantagens de se definir funções. 
Lógica de Programação 
AULA 07: Modularização: funções 
1) Cite duas vantagens de se definir funções. 
R: Dividir o programa em partes menores e reusá-las 
em vários programa. 
Lógica de Programação 
AULA 07: Modularização: funções 
1) Cite duas vantagens de se definir funções. 
R: Dividir o programa em partes menores e reusá-las 
em vários programa. 
2) O que contém o Cabeçalho de uma função? 
Lógica de Programação 
AULA 07: Modularização: funções 
1) Cite duas vantagens de se definir funções. 
R: Dividir o programa em partes menores e reusá-las 
em vários programa. 
2) O que contém o Cabeçalho de uma função? 
R: O tipo de função, o nome da função e a declaração dos 
parâmetros, quando houver. 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
R: É o cabeçalho da função com ; ao final. 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
R: É o cabeçalho da função com ; ao final. 
4) Onde o protótipo da função é colocado? 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
R: É o cabeçalho da função com ; ao final. 
4) Onde o protótipo da função é colocado? 
R: Antes de todas as funções. 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
R: É o cabeçalho da função com ; ao final. 
4) Onde o protótipo da função é colocado? 
R: Antes de todas as funções. 
5) Qual a vantagem do uso de protótipos de funções em nossos programas? 
Lógica de Programação 
AULA 07: Modularização: funções 
3) O que é o protótipo de uma função? 
R: É o cabeçalho da função com ; ao final. 
4) Onde o protótipo da função é colocado? 
R: Antes de todas as funções. 
5) Qual a vantagem do uso de protótipos de funções em nossos programas? 
R: Não nos preocuparmos com as posições das funções. 
Lógica de Programação 
AULA 07: Modularização: funções 
6) Qual a diferença entre variável Global e Local? 
R: A variável Global é declarada fora de todas as funções e a 
local dentro de cada função.

Outros materiais