Baixe o app para aproveitar ainda mais
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
Compartilhar