21
Funções Marco Antonio Montebello Júnior [email protected] Estrutura de Dados

Funções Marco Antonio Montebello Júnior [email protected] Estrutura de Dados

Embed Size (px)

Citation preview

Page 1: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

Funções

Marco Antonio Montebello Jú[email protected]

Estrutura de Dados

Page 2: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.

Page 3: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.

Page 4: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.

Page 5: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.

Page 6: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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).

Page 7: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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++)...

}

Page 8: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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).

Page 9: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);

Page 10: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.

Page 11: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);

Page 12: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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!!!”);}

Page 13: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);

}

Page 14: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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

Page 15: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);}

Page 16: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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;}

Page 17: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);}

Page 18: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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

Page 19: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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);}

Page 20: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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

Page 21: Funções Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Estrutura de Dados

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.