210 likes | 371 Views
Funções. Marco Antonio Montebello Júnior marco.antonio@aes.edu.br. Estrutura de Dados. Funções Definições. É um bloco de código do programa que pode ser usado diversas vezes em uma execução. Seção de código independente e autônoma, escrita para desempenhar uma tarefa específica.
E N D
Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados
FunçõesDefinições • É um bloco de código do programa que pode ser usado diversas vezes em uma execução. • Seção de código independente e autônoma, escrita para desempenhar uma tarefa específica. Linguagem C - Estrutura de Dados
FunçõesCaracterísticas • Permite que o programa fique mais legível e melhor estruturado; • Reutilização de código; • Normalmente contém protótipo e definição da função; • Cada função tem um nome único; • Uma das características mais importantes da Linguagem C; • Pode ter qualquer nome exceto main. Linguagem C - Estrutura de Dados
Variáveis Locais e Globais • Uma função pode chamar outras funções; • O bloco que compreende o corpo da função (bloco entre { }) está escondido do resto do programa; • Esse bloco não pode afetar nem ser afetado por outras partes do programa, a não ser que o código utilize variáveis globais. Linguagem C - Estrutura de Dados
Variáveis Locais • São declaradas dentro do main ou de uma função criada pelo usuário; • Toda variável declarada dentro de um bloco { } podem ser referenciadas apenas dentro deste bloco; • Existem apenas durante a execução do bloco de código no qual estão declaradas. Linguagem C - Estrutura de Dados
Variáveis Globais • São conhecidas por todo o programa; • Podem ser utilizadas em qualquer parte do código; • Permanecem com o seu valor durante toda a execução do programa; • Deve ser declarada fora de qualquer função (até mesmo da função main). Linguagem C - Estrutura de Dados
Variáveis Locais e Globais void Linha(int iTam); //Protótipo da função int iColuna; //Declaração de Variável GLOBAL main() //Função principal MAIN { int iValorLinha; //Declaração de Variável LOCAL ... iColuna = 10; Linha(iValorLinha); ... } void Linha(int iTam) //Definição da função { int iCont; //Declaração de Variável LOCAL ... for(iCont = 0; iCont < iTam; iCont++) ... for(iCont = 0; iCont < iColuna; iCont++) ... } Linguagem C - Estrutura de Dados
Protótipo da Função • Descrição da função que será definida posteriormente no programa. tipo_retorno <nome_da_função>(tipo_p <param1>, tipo <param2>, ...); tipo_retorno: tipo de dado que será retornado pela função; nome_da_função: nome que será dado a função, deve descrever resumidamente a funcionalidade da função; tipo_p e paramX: tipo e nome do(s) parâmetro(s) da função. Os parâmetros são separados por , (vírgula); • Sempre termina com ; (ponto e vírgula). Linguagem C - Estrutura de Dados
Protótipo da Função int iSoma (int iValorA, int iValorB); float fMedia (float fNota1, float fNota2); void Mensagem(); void Calculo(float fValorF, int iValorI, char cResp); Linguagem C - Estrutura de Dados
Definição / Declaração da Função • É a função propriamente dita; • Composta de cabeçalho e corpo da função; • O cabeçalho da função é idêntico ao protótipo com exceção do ; (ponto e vírgula); • O corpo da função deve estar entre { ... }; • Aparecem no mesmo código-fonte e após a função main() ou em arquivo independente. Linguagem C - Estrutura de Dados
Definição da Função tipo_retorno <nome_da_função>(tipo_p <param1>, tipo <param2>, ...) { ... //Comando(s) } tipo_retorno: tipo de dado que será retornado pela função; nome_da_função: nome que será dado a função, deve descrever resumidamente a funcionalidade da função; tipo_p e paramX: tipo e nome do(s) parâmetro(s) da função. Os parâmetros são separados por , (virgula); Linguagem C - Estrutura de Dados
Definição da Função int iSoma (int iValorA, int iValorB) { int iResultado; iResultado = iValorA + iValorB; return(iResultado); } void Mensagem() { printf(“Minha 1a. Função em Linguagem C!!!”); } Linguagem C - Estrutura de Dados
Funções – Exemplo Geral Protótipo: float fMedia(float fNota1, float fNota2); Chamada: fMediaAluno = fMedia(10, 8); ou printf(“Resultado: %f!”, fMedia(5, 9)); Definição: float fMedia(float fNota1, float fNota2) { float fMed; fMed = (fNota1 + fNota2)/2; return(fMed); //return((fVal1 + fVal2)/2); } Linguagem C - Estrutura de Dados
Parâmetros e Argumentos • Parâmetros • Entradas que a função recebe; • Guardadores de lugar para um argumento; • Fixos; • Contém tipo e o nome do(s) dado(s); • Argumentos • Valores reais Linguagem C - Estrutura de Dados
Passagem de parâmetros por Valor • Valor de um argumento é copiado para o parâmetro formal da função; • As alterações no processamento não alteram as variáveis. Protótipo: int iQuadrado(int iValor); Chamada: iResult = iQuadrado(10); Definição: int iQuadrado(int iValor) { int iTemp; iTemp = iValor * iValor; return(iTemp); } Linguagem C - Estrutura de Dados
Passagem de parâmetros Referência • Permite a alteração do valor de uma variável; • É necessária a utilização de ponteiros; Protótipo: void iTroca(int *iValA, int *iValB); Chamada:iTroca(&iNumA, &iNumB); Definição: void iTroca(int*iValA, int*iValB) { int iTemp; iTemp = *iValA; *iValA = *iValB; *iValB = iTemp; } Linguagem C - Estrutura de Dados
Funções que NÃO retornam valores • São declaradas como void; • O corpo da função contém apenas instruções e comandos. Protótipo: void Mensagem(int iVezes); Chamada: Mensagem(5); Definição: void Mensagem (int iVezes) { int i; for(i = 0; i < iVezes; i++) printf(“Ola mundo %i”, i); } Linguagem C - Estrutura de Dados
Funções que RETORNAM valores • São declaradas como char, int, float ou double; • O valor do retorno deve ser armazenado em uma variável; • O corpo da função além das instruções e comandos contém sempre o comando return. Linguagem C - Estrutura de Dados
Funções que RETORNAM valores Protótipo: float fSoma(float fVal1, float fVal2); Chamada: fResultado = fSoma(10, 20); ou printf(“Resultado: %f!”, fSoma(15, 35)); Definição: float fSoma(float fVal1, float fVal2) { float fRes; fRes = fVal1 + fVal2; return(fRes); //return(fVal1 + fVal2); } Linguagem C - Estrutura de Dados
Exercícios • Criar uma função para exibir uma mensagem qualquer na tela. • Escrever uma função que calcule a média 2 números do tipo float e retorne o valor calculado da média; • Criar uma função que calcula uma equação do 2o. Grau Linguagem C - Estrutura de Dados
Exercícios • Criar uma função que converte a temperatura de graus Celsius para Fahrenheit ou vice-versa • c= 5.0 / 9.0 * (f-32). • f = 9.0 / 5.0 * c + 32 • Criar um programa calculadora, utilizando funções para somar, subtrair, multiplicar e dividir • Criar uma função que calcule o fatorial de um número fornecido pelo usuário. Linguagem C - Estrutura de Dados