Você está na página 1de 30

Algoritmos e Programação I

Funções
Sumário

 Definição  Passando valores para a


 Sintaxe função
 Protótipo  Passando variáveis como
argumentos
 Funções que retornam
 Escopo das variáveis
valor
 Local
 Função sem retorno de  Global
valor  Por parâmetros
 Recursão
Professor Paulo Nunes 2 05/07/2023
Definição

 Unidade de código de programa autônoma desenhada para


cumprir uma tarefa particular. (Mizrahi, Victorine Viviane. 1990)
 Utilizamos uma função para agilizar a escrita e execução de
programas, fazendo com que o programador não tenha que
reescrever código já existente.
 Podemos dividir um programa maior em partes menores,
ficando assim mais fácil de mantê-lo.

Professor Paulo Nunes 3 05/07/2023


Sintaxe de uma função

 Todas as funções possuem um nome seguido de parênteses “()”;


nome_da_função(<argumentos>)
 Nos parênteses podem ou não conter uma lista de parâmetros;
 O corpo da função pode conter outros comandos/funções de C,
variáveis e expressões, envolvidas entre chaves “{ }”;
 As funções podem vir antes ou após a função principal main();
 Na declaração, as funções não finalizam com ponto-e-vírgula,
apenas na chamada da função;
 As funções main(), getche() e printf() são exemplos de funções
de biblioteca C.
Professor Paulo Nunes 4 05/07/2023
Protótipo de função
 Informa como a função será criada e utilizada.
 É prática saudável, opcional, criar os protótipos de funções
antes da função propriamente dita. Protótipo da função

Diz o tipo de dado de retorno da


O número de parâmetros recebidos,
função,
O tipo no caso
de dado dos“float”.
parâmetros, no
no caso
A ordem da dois.
passagem dos
caso ambos são “int”.
parâmetros.

Professor Paulo Nunes 5 05/07/2023


Protótipo de função
 Nem sempre funções recebem parâmetros, ou retornam
valores. Nesses casos são definidas como “void”, vazias.
 Não existe limite para o número de funções que podem ser
incluídas em um programa C.

Professor Paulo Nunes 6 05/07/2023


Protótipo de função

Protótipos das
funções

Corpo do programa
principal

Função definida

Professor Paulo Nunes 7 05/07/2023


Funções que retornam valor
 O programa anterior utiliza uma função que lê um caractere
do teclado e o converte em minúsculo, caso seja maiúsculo;
 Nele utilizamos o comando return. O comando return tem
dois usos importantes:
 Primeiro: devolver um valor e retornar imediatamente para a
próxima instrução do código chamada;
 Segundo: usá-lo sem os parênteses para causar uma saída
imediata da função na qual ele se encontra.

Professor Paulo Nunes 8 05/07/2023


Retornando valor

Chamada da função

Retorno da função

Professor Paulo Nunes 9 05/07/2023


Retornando valor

Chamada da função

Retorno da função

Professor Paulo Nunes 10 05/07/2023


Função sem retorno de valor

Esta função não


retorna valor!

Professor Paulo Nunes 11 05/07/2023


Passando valores para a função

Chamada passando valores


Informa ao compilador que abs()
requer um argumento, e que esse
argumento será do tipo inteiro
Aqui, a variável “x” é uma nova variável, chamada de
“parêmetro formal”, e funciona como uma variável
local da função, sendo criada quando a função inicia a
execução e destruída no retorno da função.

Professor Paulo Nunes 12 05/07/2023


Passando variáveis como argumentos

Professor Paulo Nunes 13 05/07/2023


Saída na tela:

Professor Paulo Nunes 14 05/07/2023


Passagem de valores: detalhes

 Quando necessário, podem ser passados vários argumentos


em uma função;
 Os argumentos devem ser separados por vírgulas;
 Não existem limites para o número de argumentos passados.

Professor Paulo Nunes 15 05/07/2023


Exemplo... Chamada da função
“retang” com os valores que
serão tratados.

Função “retang()” recebe


os parâmetros “largura” e
“altura”

Professor Paulo Nunes 16 05/07/2023


Escopo das variáveis

 Identifica e determina o tempo de vida de qualquer variável.


 É uma região do programa onde uma variável definida pode
ter a sua existência, além dessa região a variável não pode
ser acessada.
 Onde uma variável pode ser declarada em C:
 Dentro de uma função ou bloco, denominadas locais;
 Fora de qualquer função, denominadas globais;
 Na definição de parâmetros de função, chamadas de
parâmetros formais.

Professor Paulo Nunes 17 05/07/2023


Escopo local

Essas
Seusvariáveis
dados são
sãoperdidos
acessadas
após
apenasa execução
pela função
de main()

Professor Paulo Nunes 18 05/07/2023


Escopo local: mesmo nome

Professor Paulo Nunes 19 05/07/2023


Escopo global

Variável declarada fora de


qualquer função.

A variável pode ser acessada


por todas as outras funções.

Professor Paulo Nunes 20 05/07/2023


Escopo global

Professor Paulo Nunes 21 05/07/2023


Escopo global Vs. local

Variáveis podem coincidir os nomes, a


variável local prevalece sobre a global.

Professor Paulo Nunes 22 05/07/2023


Parâmetros formais

As variáveis passadas como


parâmetros sobrepõe as globais.

Professor Paulo Nunes 23 05/07/2023


Escopo global Vs. Local

 Posso atribuir dados para a variável global em uma função e


referenciar o mesmo espaço de memória em outra função.
 O uso de variáveis globais é desaconselhado, pois podem
provocar erros de segurança.
 Usar variáveis globais permite que todas as funções em um
arquivo de programa possa ter acesso aos mesmos dados, o
que vai contra o conceito de ocultação de informações.

Professor Paulo Nunes 24 05/07/2023


Funções Recursivas
 A função é recursiva quando realiza uma chamada a ela
mesma;
 Utiliza mais memória, o que a torna mais lenta;
 Não são difíceis de se criar, mas de encontrar onde utilizá-las!
 O melhor exemplo de recursividade é para resolução de
fatorial de um número, pois a própria definição de fatorial
sugere recursão:

fatorial(n) = n * fatorial(n – 1)

Professor Paulo Nunes 25 05/07/2023


Exemplo: Fatorial

Professor Paulo Nunes 26 05/07/2023


Exemplo 02: Fatorial

Professor Paulo Nunes 27 05/07/2023


Exemplo: Fibonacci

Professor Paulo Nunes 28 05/07/2023


Bibliografia

 SOUSA, A. J. de. Linguagem C Descomplicada: Desvendando as Funções em C. São Paulo: Novatec


Editora, 2019.

 DIAS, F. L. Linguagem C: Programação em C - Algoritmos e Estrutura de Dados. Rio de Janeiro: LTC


Editora, 2021.

 CELES, W.; CERQUEIRA, R.; RANGEL, J. Lógica de Programação: Crie seus primeiros programas usando
funções em C. São Paulo: Editora Novatec, 2017.

 PRATA, S. C Primer Plus. 6th ed. New York: Addison-Wesley Professional, 2013.

 KERNIGHAN, B. W.; RITCHIE, D. M. The C Programming Language. 2nd ed. New Jersey: Prentice Hall,
1988.

 KING, K. N. C Programming: A Modern Approach. 2nd ed. New York: W. W. Norton & Company, 2008.

Professor Paulo Nunes 29 05/07/2023


O professor

Professor Paulo Nunes 30 05/07/2023

Você também pode gostar