Buscar

Linguagem de Programação I Aula 08 (Original)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

LINGUAGEM DE PROGRAMAÇÃO I
Aula 8- Libere sua imaginação. Construa suas funções. 
Atenção aos Temas Principais dessa Aula
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Conteúdo Programático desta aula
Compreender  o uso de funções definidas pelo programador;
Compreender a diferença entre parâmetros passados por valor e parâmetros passados por ponteiros;
Implementar funções com ou sem retorno, com ou sem passagem de parâmetros;
Implementar funções tendo vetores como parâmetros;
Compreender  escopo de variáveis (global e local); 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Direto ao Assunto
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Função que calcula volume do Prisma?
Função que calcula a soma dos termos de uma PA?
Função calcula o fatorial?
Função que calcula o IR a ser pago no mês?
Função que calcula o percentual de um valor?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Tenho que criar as minhas funções. URGENTE!
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Conceito de Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Até agora, nossos programas só tinha a função main(). Vai mudar a partir da aula de hoje?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Sim. Um dos motivos é que poderemos criar funções que são necessárias as nossas atividades, mas que não estão disponíveis.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Criando funções, também estamos modularizando nossos programas, aumentando a legibilidade.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Um outro motivo é que poderemos testar as funções em separadas e (re)usá-las em outros programas.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Conhecendo a Nomenclatura
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
<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
}
Definição da Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
<tipo de função>nomeDaFunção(declaração dos parâmetros)
Cabeçalho da Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
<tipo de função>nomeDaFunção(declaração dos parâmetros)
Cabeçalho da Função
Corpo da Função - Escopo
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
<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
}
Cabeçalho da Função
Corpo da Função - Escopo
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
<tipo de função>nomeDaFunção(declaração dos parâmetros)
+
;
=
<tipo de função>nomeDaFunção(declaração dos parâmetros);
Protótipo da Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Como uma Função é Chamada?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Se for uma função com retorno, precisará de um comando. 
Como uma Função é Chamada?
Pelo Nome
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Se for uma função com retorno, precisará de um comando. 
Como uma Função é Chamada?
Pelo Nome
Para onde vai o Fluxo do Programa após o Término da Função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Se for uma função com retorno, precisará de um comando. 
Como uma Função é Chamada?
Pelo Nome
Para a instrução seguinte - void
Para o lugar de onde foi chamada - com retorno
Para onde vai o Fluxo do Programa após o Término da Função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
void
int
float
double
char
struct
...
 TIPOS
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Passagem por Valor
Como os Valores são Passados?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo: Você empresta seu caderno para xerocar.
Passagem por Valor
Como os Valores são Passados?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo: Você entrega os originais da sua monografia para um revisor.
Passagem por Referência &
Como os Valores são Passados?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?
Tipo?
Parâmetros?
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
void
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
void msg
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
void msg()
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
void msg()
{
 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
void msg()
{
 printf(“Linguagem de ProgramacaoI”);
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 1
void msg()
{
 printf(“Linguagem de ProgramacaoI”);
}
Função que exibe a mensagem Linguagem de ProgramacaoI.
Retorno?Não
Tipo?void
Parâmetros?Não
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?
Tipo?
Parâmetros?
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float percentual
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float percentual()
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float percentual(float total, float percent)
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float percentual(float total, float percent)
{
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
float percentual(float total, float percent)
{
 return total * percent/100;
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 2
float percentual(float total, float percent)
{
 return total * percent/100;
}
Função que recebe o valor total e o percentual, retornando o valor que representa esse percentual.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?
Tipo?
Parâmetros?
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma()
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma(float areaBase, float altura)
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma(float areaBase, float altura)
{
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma(float areaBase, float altura)
{
 return areaBase * altura;
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 3
float areaPrisma(float areaBase, float altura)
{
 return areaBase * altura;
}
Função que recebe a área da base e altura de um Prisma e retorna a área.
Retorno?Sim
Tipo?float
Parâmetros?Sim
Se sim, quantos?2
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?
Tipo?
Parâmetros?
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA()
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA(int a1, int an, int n)
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA(int a1, int an, int n)
{ 
 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA(int a1, int an, int n)
{ 
 return (a1 + an)* n /2; 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
Função que recebe o primeiro e o último termos de uma PA e o número de termos, retornando a soma dos termos.
Retorno?Sim
Tipo?int
Parâmetros?Sim
Se sim, quantos?3
Passagem por valor?Sim
Passagem por Referência?
int somaPA(int a1, int an, int n)
{ 
 return (a1 + an)* n /2; 
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?
Tipo?
Parâmetros?
Se sim, quantos?
Passagem por valor?
Passagem por Referência?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
void msgRecebe
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 4
void msgRecebe()
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void msgRecebe(char msg[ ])
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void msgRecebe(char msg[ ])
{ 
 
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void msgRecebe(char msg[ ])
{ 
 int tam
 
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void msgRecebe(char msg[ ])
{ 
 int tam = strlen(msg); 
 
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Exemplo 5
void msgRecebe(char msg[ ])
{ 
 int tam= strlen(msg); 
 printf("\n%s tem %d caracteres\n", msg, tam);
}
Função querecebeque recebe uma mensagem e exibe a mensagem e o número de caracteres.
Retorno?Não
Tipo?void
Parâmetros?Sim
Se sim, quantos?1
Passagem por valor?
Passagem por Referência?Sim
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
ANTES da main()
FUNÇÃO
main()
Localização da Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
DEPOIS da main()
FUNÇÃO
main()
Localização da Função
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Programa com ERRO
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
float multiplica(float n)
{ return soma(n)* 4; }
float soma(float n)
{ return n + 2; }
int main()
{ 
 float num=20;
 printf("\nApos chamar a funcao soma : %.2f", soma(num) );
 printf("\nApos chamar a funcao multiplica: %.2f", multiplica(num ) ); 
 printf("\n\n");
 system("pause");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
O ERRO
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 
 
Eu pensei que, se colocássemos antes da main(), nunca teriamos problemas. E agora?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 
 
A primeira solução, para esse problema, seria colocar a função soma(...) antes da função multiplica(...), mas, em outras situações, poderá ficar complicado.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
float soma(float n)
{ return n + 2; }
float multiplica(float n)
{ return soma(n)* 4; }
int main()
{ 
 float num=20;
 printf("\nApos chamar a funcao soma : %.2f", soma( num ) );
 printf("\nApos chamar a funcao multiplica: %.2f", multiplica( num)); 
 printf("\n\n");
 system("pause");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 
 
A segunda solução, para esse problema, seria declarar(protótipos) das funções antes de definí-las e, preferencialmente, posicioná-las depois da main().
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
int main()
{ 
 float num=20;
 printf("\nApos chamar a funcao soma : %.2f", soma( num ) );
 printf("\nApos chamar a funcao multiplica: %.2f", multiplica( num)); 
 printf("\n\n");
 system("pause");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
float soma(float n); // float soma(float); 
float multiplica(float n); // float multiplica(float); 
int main()
{ 
 float num=20;
 printf("\nApos chamar a funcao soma : %.2f", soma( num ) );
 printf("\nApos chamar a funcao multiplica: %.2f", multiplica( num)); 
 printf("\n\n");
 system("pause");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
float soma(float n); // float soma(float); 
float multiplica(float n); // float multiplica(float); 
int main()
{ 
 float num=20;
 printf("\nApos chamar a funcao soma : %.2f", soma( num ) );
 printf("\nApos chamar a funcao multiplica: %.2f", multiplica( num)); 
 printf("\n\n");
 system("pause");
}
float soma(float n)
{ return n + 2; }
float multiplica(float n)
{ return soma(n)* 4; }
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
PASSAGEM POR REFERÊNCIA
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
PASSAGEM POR REFERÊNCIA
Na passagem por referência,&, o endereço da variável da função chamadora é passado para a função chamada e, dessa forma, o valor poderá ser alterado, ou não. 
A função chamada que recebe o endereço de um parâmetro, tem que recebê-lo como ponteiro,*.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Passando vetor como parâmetro 
O nome de um vetor é seu endereço. 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Sendo assim, o operador & é dispensável 
Passando vetor como parâmetro 
O nome de um vetor é seu endereço. 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Sendo assim, o operador & é dispensável 
Passando vetor como parâmetro 
O nome de um vetor é seu endereço. 
Para passar um vetor como parâmetro, pode ser usado um * antes do nome ou, usar [] após o nome, mas vazios. 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
int main()
{
 int vet[]={ 13, 23, 62, 50};
 printf("\nEndereco do vetor: %ld\n", vet); 
 printf("\nEndereco do vetor: %ld\n", &vet);
 system("pause > NULL");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
int main()
{
 int vet[]={ 13, 23, 62, 50};
 printf("\nEndereco do vetor: %ld\n", vet); 
 printf("\nEndereco
do vetor: %ld\n", &vet);
 system("pause > NULL");
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Vamos exemplificar
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
void media(double nt1[], double nt2[], double m[], int tam)
{
 int x;
 for(x=0;x<tam; x++)
 m[x]=(nt1[x] + nt2[x])/2;
} 
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
void media(double nt1[], double nt2[], double m[], int tam)
{
 int x;
 for(x=0;x<tam; x++)
 m[x]=(nt1[x] + nt2[x])/2;
} 
void saida(float n1[],int t,float n2[],float m[])
{
 int x;
 system("cls"); printf("\nNota 1\tNota 2\tMedia\n");
 for(x=0;x<t;x++)
 printf("\n%.2f\t%.2f\t%.2f",n1[x],n2[x],m[x]); 
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
#include <stdlib.h>
#define TAM 3
 
int main()
{
 float nota1[]={7.5,8, 9},nota2[]={6.5,6,5},medias[TAM];
 media(nota1, nota2,medias,TAM); 
 saida(nota1,TAM,nota2,medias); 
 printf("\n\n");
 system("pause");
}
void saida(float [],int t,float [],float []);
void media(float [],float [],float [],int );
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
void media(float n1[],float n2[],float m[],int t)
{
 int x;
 for(x=0;x<t;x++)
 m[x]=(n1[x]+n2[x])/2; 
} 
void saida(float n1[],int t,float n2[],float m[])
{
 int x;
 system("cls");
 printf("\nNota 1\tNota 2\tMedia\n");
 for(x=0;x<t;x++)
 printf("\n%.2f\t%.2f\t%.2f",n1[x],n2[x],m[x]); 
}
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 Variável GLOBAL x Variável LOCAL
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 Variável GLOBAL x Variável LOCAL
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
 Variável GLOBAL x Variável LOCAL
Declarada FORA de 
todas as Funções
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Declarada FORA de 
todas as Funções
 Variável GLOBAL x Variável LOCAL
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Declarada FORA de 
todas as Funções
 Variável GLOBAL x Variável LOCAL
Declarada DENTRO
das Funções
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
#include <stdio.h>
void soma();
void dobra();
float num=20;// variável global
int main()
{ 
 soma();
 printf("\nApos chamar a funcao soma: %.2f",num);
 dobra();
 printf("\nApos chamar a funcao dobra: %.2f",num);
 printf("\n\n");
 system("pause");
}
void soma()
{ num+=5; }
void dobra()
{ num+=num; }
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Vamos ao Bate Pronto
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
1) Cite duas vantagens ao se definir funções?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
1) Cite duas vantagens ao se definir funções?
R: Dividir o programa em partes menores e (re)usá-las em vários programas.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
R: Dividir o programa em partes menores e (re)usá-las em vários programas.
1) Cite duas vantagens ao se definir funções?
2) O que contem o Cabeçalho de uma função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
1) Cite duas vantagens ao se definir funções?
2) O que contem 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.
R: Dividir o programa em partes menores e (re)usá-las em vários programas.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
3) O que é o protótipo de uma função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
R: É o cabeçalho da função com ; ao final.
3) O que é o protótipo de uma função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
R: É o cabeçalho da função com ; ao final.
3) O que é o protótipo de uma função?
4) Onde o protótipo da função é colocado?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
R: É o cabeçalho da função com ; ao final.
3) O que é o protótipo de uma função?
4) Onde o protótipo da função é colocado?
R: Antes de todas as funções.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
R: É o cabeçalho da função com ; ao final.
3) O que é o protótipo de uma função?
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?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
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.
R: É o cabeçalho da função com ; ao final.
3) O que é o protótipo de uma função?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
6) O que significa um protótipo simplificado?
R: Significa que os nomes dos parâmetros não estão presentes.
Exemplo: 
float media(float, float);
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
6) O que significa um protótipo simplificado?
R:Significa que os nomes dos parâmetros não estão presentes.
Exemplo: 
float media(float, float);
7) Qual a diferença em entre variável Global e Local?
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
6) O que significa um protótipo simplificado?
R:Significa que os nomes dos parâmetros não estão presentes.
Exemplo: 
float media(float, float);
7) Qual a diferença em 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.
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I
Resumindo
LIBERE SUA IMAGINAÇÃO. CONSTRUA SUAS FUNÇÕES– AulA8
LINGUAGEM DE PROGRAMAÇÃO I

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando