Upload
internet
View
107
Download
1
Embed Size (px)
Citation preview
Linguagem C - 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);ouprintf(“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
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.
Funções que RETORNAM valores
Linguagem C - Estrutura de Dados
Funções que RETORNAM valores
Protótipo: float fSoma(float fVal1, float fVal2);
Chamada: fResultado = fSoma(10, 20);ouprintf(“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.