UNIPLI Linguagem de Programação I Professora Simoni Rangel de Freitas Oliveira 1 Funções definidas pelo usuário 2. Forma geral de uma função Definição de uma função: tipo identificador_da_funcao (lista_de_parâmetros) { corpo da função } tipo - define o tipo de valor que a função vai retornar à função que realiza a chamada. o Para retornar um valor (ao local onde a função foi chamada) utiliza-se o comando return. Este comando também indica o encerramento da execução da função. O valor retornado deve ser compatível com o tipo da função. Se o tipo não é definido é considerado o tipo int como retorno da função. o Se uma função não retornar nenhum valor ela deve ser definida com o tipo void e neste caso o comando return não é necessário. identificador_da_funcao - define o nome (o rótulo) da função. o É através deste nome que a função é chamada. lista_de_parâmetros- É uma lista, separada por vírgula, contendo a declaração das variáveis (parâmetros ou parâmetros formais) que recebem os argumentos (parâmetros reais - valores usados para chamar a função) quando a função é chamada. o Sintaxe: (tipo1 identificador1, tipo2 identificador2, ..., tipoN identificadorN) o • Uma função pode não possuir parâmetros, ou seja, não receber argumentos. Neste caso utiliza-se a declaração do tipo void - (void). Podemos definir uma função: o o No início de um programa, antes da função principal ou Após a função principal. Se a definição de uma função não é feita no início do programa, então é necessário fazer a declaração da função para que o compilador a reconheça quando esta for chamada dentro da função principal ou dentro outra função. A declaração da função ou protótipo da função, consiste do cabeçalho da função seguido do ponto e vírgula. ATENÇÃO: Toda função deve ser declarada antes de ser usada. Quando uma função está definida no início do programa a declaração está implícita na definição. UNIPLI Linguagem de Programação I Professora Simoni Rangel de Freitas Oliveira Exemplos de funções: 1)Função “soma” int soma(inta, int b) { int s; s=a+b; return s; } 2)Função “mensagem” void mensagem(void) { printf(" Entre com dois valores inteiros\n"); return; //nao e necessário } 3)Função “lendo_parcela” int lendo_parcela(void) { int a; scanf("%d", &a); return a; } 5)Função “quad_soma” void quad_soma(int a) { printf("quadrado da soma =%f\n\n", pow(a,2)); } 3. Forma geral de um programa em C - Escopo de funções comandos do pré-processador declaração de variáveis globais declaração de funções (protótipos de funções) main() { declarações locais comandos return 0; } //Definição de funções tipo função1(lista de parâmetros) { declarações locais comandos [return expressão;] } ... tipo funçãoN(lista de parâmetros) { declarações locais comandos [return expressão;] } 2 UNIPLI Linguagem de Programação I Professora Simoni Rangel de Freitas Oliveira Exemplo: #include<stdio.h> #include<math.h> /* declaracao de funcoes */ void mensagem (void); int lendo_parcela(void); int soma (int p1, int p2); void quad_soma (int x); /* funcao principal */ int main ( ) { /* declaracao de variaveis locais */ int a, b, total; mensagem (); a= lendo_parcela(); b= lendo_parcela(); /* chamada por valor */ total=soma(a,b); printf("soma=%d\n", total); /* chamada por valor */ quad_soma(total); return 0; } /* definicao de funcoes */ void mensagem (void) { printf(" Entre com dois valores inteiros\n"); } int lendo_parcela (void) { int p; scanf("%d", &p); return p; } int soma (int p1, int p2) { int s; s=p1+p2; return s; } void quad_soma (int x) { printf("quadrado da soma =%f\n\n", pow(x,2)); } 3 UNIPLI Linguagem de Programação I Professora Simoni Rangel de Freitas Oliveira 4 Bibliografia HICKSON, Rosângela. Aprenda a programar em C, C++ e C#. Ed. Campus, 2002. GOTTFRIED, B. S. Programando em C. Editora LTC, 1993. KERNIGHAN, B. W., RITCHIE, D. M. C: A linguagem de programação – Padrão ANSI. Ed. Campus, 1989.