Você está na página 1de 28

Funções em linguagem C

• Introdução
• Função – o que é?
• Função Vs Procedimento
• Forma geral de uma função
• Protótipo de função
• Função que retornam valores
• Escopo de variáveis
• Exercício
Introdução

A linguagem C é baseada no conceito de


blocos de construção denominados de
funções

Um programa em C é uma colecção de uma


ou mais funções. Para escrever um
programa, você primeiro cria funções e,
então, coloca-as juntas.
Função – o que é?
Uma função é uma sub-rotina usada num
programa

Na linguagem C, a função é um conjunto de


comandos que realiza uma tarefa específica
num módulo dependente de código

A função é invocada (chamada) pelo


programa principal através do nome
atribuído a ela.
Toda função contem uma declaracão onde
constem os seguintes elementos:

• Um nome - pode-se dar qualquer nome com


excepção de main()
• Uma lista de parâmetros
• Um valor de retorno
A função serve para
Permitir o reaproveitamento de código já
construído;

Evitar que um trecho de código seja


repetido várias vezes dentro de um mesmo
programa;

Permitir a alteração de um trecho de código


de uma forma mais rápida;
Alterar apenas dentro da função que se
deseja;

Evitar que os blocos do programa fiquem


grandes demais e, por consequência, mais
difíceis de entender;

Facilitar a leitura do programa fonte.


Função Vs Procedimento
Em linguagem C, o conceito de função serve
tanto para uma função como para um
procedimento. A diferença reside no
seguinte:

A função realiza somente uma tarefa e


retorna sempre um valor

O procedimento é uma função que realiza


mais de uma tarefa, não retorna valor
A forma geral de uma função

Tipo_retorno nome_função (lista de parâmetros) {

corpo do código da função


}
Exemplo #1

Fazer um programa para mostrar uma


mensagem na tela.
Solução #1
Código do programa usando apenas a função
principal da linguagem C.

#include <stdio.h>
main(){
printf (“PRIMEIRA AULA DE PROGRAMACAO!!!\n”);
}
Solução #2 - usando função
#include <stdio.h>

void ola() {
printf (“Bom dia!!!\n”);
printf (“Primeira aula de Programacao!!!\n”);
}
main(){ Note que a função ola(
ola(); ) foi chamada a partir
} da função main( )
Protótipo de função

Um protótipo de função é uma declaração


que define o nome, tipos de parâmetros
e tipos de retorno de uma função

O protótipo de uma função é exigido


quando a definição da função não é feita
antes do código que a invoca (a chama)
Não é obrigatório especificar os nomes dos
parâmetros da função, apenas seus tipos

O protótipo da função é sempre colocado


após as instruções de #include e termina
com ponto-e-vírgula (;) e
Solução #3 – usando protótipo
#include <stdio.h>
void ola(); //Protótipo da função
main(){
ola();
}
void ola() {
printf (“Bom dia!!!\n”);
printf (“Primeira aula de Programacao!!!\n”);
}
Função que retorna valor
Em linguagem C uma função pode retornar um
valor para a rotina que a invoca Na função que é
chamada deve ter uma instrução com a palavra
reservada return.

Na função onde é chamada, o nome da função


deve ficar do lado direito de uma atribuição,
e no lado esquerdo fica uma variável cujo tipo seja
igual ao tipo de retorno da função
Exemplo #2

Faça um programa para ler dois números


inteiros, calcular e mostrar e mostrar o
produto.

Obs: use uma função para calcular o produto


Solução
#include <stdio.h>

int multiplica (int, int); //Protótipo

main(){
int x, y, produto;
printf (“digite dois numeros inteiros\n”);
scanf(“%d%d”, &x,&y);
produto = multiplica(x, y);
}
int multiplica (int a, int b){
int result;
result = a * b;
return result;
}
Regra de escopo
Define onde as variáveis são reconhecidas

Em linguagem C o local do programa onde


uma variável é declarada define o seu
escopo de validade

De acordo com o local de declaração, uma


variável pode ser local, global ou formal
Variável local
Uma variável é dita local, se for declarada
dentro de uma função. Tem validade
apenas dentro da função onde é declarada

O espaço de memória alocado para esta


variável é criado quando a execução da
função é iniciada e destruído quando
termina
Exemplo – Variável local

#include <stdio.h>

float media2(float a, float b){


float med;
med = (a + b) / 2.0;
return (med);
}
int main(){
float num_1, num_2, med;

puts(”Digite dois números:”);


scanf(”%f %f”, &num_1, &num_2);

med = media2(num_1, num_2);


printf(”\nA media destes números = %f”,
med);

}
Variável formal
É uma variável local declarada na lista de
parâmetros de uma função

Tem validade apenas dentro da função onde


é declarada e serve de suporte para os
valores passados pelas funções.
Passagem de por valor
É um tipo de passagem de argumentos
onde os valores que uma função passa para
outra não são alterados pela função
chamada.

O objectivo é copiar os valores das variáveis


da função que chama para as respectivas
variáveis da função que é chamada.
Passagem por endereço
É um tipo de passagem de argumentos
onde os valores que uma função passa para
outra são alterados pela função chamada

O objectivo é alterar os valores das variáveis


da função que chama na função que é
chamada e retorná-los
Variável global

Uma variável global é declarada fora de


uma função e tem validade no escopo de
todas as funções

O espaço de memória alocado para esta


variável é criado no momento da sua
declaração e destruído apenas quando o
programa é encerrado
Variáveis locais
float num_1, num_2, med;

void media2(void){
med = (a + b) / 2.0;
}
int main(){

puts(”Digite dois números:”);


scanf(”%f %f”, &num_1, &num_2);
med = media2(num_1, num_2);
printf(”\nA media destes números = %f”, med);
}
EXERCÍCIO - Tarefa
• Desenvolva um programa que simule
uma calculadora com as quatro
operações básicas.
• Use funções para cada uma das
operações, para o menu de opções e,
para a operação de multiplicação e
divisão, avalie os caso indesejados.

Data de entrega: 10/10/2022

Você também pode gostar