Sei sulla pagina 1di 40

Universidade Federal do Rio Grande do Norte!

Escola de Cincias e Tecnologia

ECT1203 Linguagem de Programao


2014.1
Prof. Aquiles Burlamaqui
Prof. Luiz Eduardo
(mod. Prof. Carlos Olarte)
Aula 10 Funes

Objetivo da Aula
Introduzir o conceito de funes em C++
Motivar o uso de funes

Antes de comear....
Na engenharia e nas cincias, que coisas podem ser
"reutilizadas" ?

Alguns exemplos
Engenharia electrnica

Voc no precisa
implementar os circuitos
bsicos porque eles j
existem!

No caso do Software...

Cdigo
Designs
Componentes
Sistemas em geral

No precisa reinventar a roda!

Uma funo em C++ ...


Um conjunto de comandos agrupados em um
bloco, destinado a realizar uma tarefa particular,
que recebe um nome e atravs deste pode ser
ativado.

Ser que isso to novo assim?

Exemplos de funes

sqrt(valor)
pow(x,2)
rand()
cos(ang)
!
OBS: cin e cout so objetos, a compreenso de objetos
est fora do escopo da nossa disciplina.

Curiosidade: Algum sabe como o computador


calcula o cosseno de um ngulo? ex: cos(68)

Resposta: Polinmio de Mclaurin

Pergunta: eu preciso conhecer o polinmio de Mclaurin


para usar a funo cos() nos meus programas?

Para que servem as funes?


Para dividir um problemas maior em vrios menores,
simplificando e organizando o cdigo;!
Reduzir o tamanho do programa; !
Para permitir reaproveitamento de cdigo; !
Para permitir a alterao de um trecho de cdigo de
uma forma mais rpida;!
Para que os blocos do programa no fiquem grandes
demais e mais difceis de entender; !
Para separar o programa em partes(blocos) que possam
ser logicamente compreendidos de forma isolada;!
Etc.!

A funo pow()
Como ser o algoritmo da funo pow?
!
pow(2,3) = 23 = 2*2*2
pow(5,4) = 54 = 5*5*5*5
pow(x,2) = x2 = x*x
pow(a,b) = ab = a multiplicado por ele mesmo, uma
quantidade b de vezes
!
Como ser esse algoritmo?

pow(x,y)
{
int prod =1;
for(int i=1;i<=y;i++){
prod *=x;
}
!
Como o compilador faz para executar o algoritmo
acima quando encontra pow(x,y) no cdigo??

Como o compilador raciocina

pow? no conheo esse


comando... Depois dele
tem algo entre parnteses,
ento uma funo!!

Como o compilador raciocina

Ser uma funo


criada pelo usurio??
No .

Como o compilador raciocina

Ser que est na


biblioteca* iostream?.

*Biblioteca = Conjunto de funes.

Como o compilador raciocina

Ser que est na biblioteca


math.h? Se no estiver l
esse programa tem um erro.

Como o compilador raciocina


Entrada

Processamento

Sada

Modelo de processamento.
Quem so as entradas? E as
sadas?

Como o compilador raciocina


Base
Expoente

Processamento

Exponencial

No algoritmo, que
base, expoente e
exponencial?

Como o compilador raciocina


Base(x)
Expoente(y)

Processamento

Exponencial(prod)

Quem so eles no
programa?

Como o compilador raciocina


Quem x,y? onde
devo armazenar
prod?

Como o compilador raciocina


xa
yb
prod result

Definindo uma funo


tipo_da_funo nome_da_funo (lista de
parmetros)
{
corpo da funo
}
A primeira linha o cabealho da definio da
funo.!
tipo_da_funo o tipo do valor retornado por
meio do comando return.

Definindo uma funo


tipo_da_funo nome_da_funo (lista de
parmetros)
{
corpo da funo
}
A lista de parmetros, tambm chamada de lista de
argumentos, opcional. A funo pode no ter
entrada (void).

Antes de continuar...

Um programa com o sem funes


Valor absoluto de dois inteiros

Antes de continuar...
Um programa com o sem funes
Valor absoluto de dois inteiros

2. Com funes: parece muito


melhor!

O comando return
A instruo return expresso; tem os seguintes
efeitos:
1) avaliao da expresso
2) converso automtica do resultado da expresso
para o tipo da funo
3) retorno do resultado
4) trmino da execuo da funo e retorno do
controle para a instruo seguinte do cdigo de
chamada
return;!
Sintaxe de um
comando return: return expresso;!
return (expresso);

O comando return
Por exemplo:
Funo com um
comando return

Funo com mais de


um comando return

O comando return
Funes do tipo void podem ter um comando
return sem expresso, servindo para terminar a
execuo da funo
Em funes do tipo void, o comando return no
obrigatrio
Uma funo sem comando return termina quando
encontra a chave de fechamento
O valor de retorno obtido
atravs de uma chamada
funo, como no exemplo:

Funes definidas pelo usurio

Declarao e definio de funes


Em geral, o nome de uma funo aparece em trs
lugares em um programa:!
1) na declarao (prottipo/assinatura)
2) na definio!
3) na chamada!

Exemplo
Declarao de
funes (prottipos)

Chamadas de
funes

Definio de
funes

Declarao de uma funo


A declarao de uma funo, dita prottipo da
funo, uma instruo, geralmente colocada no
incio do programa, que estabelece o tipo da
funo e os argumentos que ela recebe.
Uma funo no pode ser chamada sem antes ter
sido declarada!
No exemplo, temos a declarao das funes:
a funo de nome le_numero()
do tipo int e no recebe
argumentos !
a funo de nome max() do tipo
int e recebe como argumento dois

Exemplos de declarao (prottipos) de


funes

Observaes
1) O nome dos parmetros podem ser omitidos na
declarao.
2) Se uma funo no tem parmetros, pode-se
declarar a lista de parmetros como (void) ou
simplesmente ()

Outras observaes
1) Se uma funo definida antes da sua primeira
chamada, esta no precisa ser declarada.
2) O comando return pode retornar somente um
nico valor.
3) Se uma funo no tem valor de retorno, deve-se
indicar o tipo de retorno como void
4) No se pode definir funes dentro de uma outra
funo.

Declarao de funciones

Que sucede se a funo declarada


mais no definida ?

38

Exerccio
Faa uma funo que dado um nmero inteiro
como entrada diga se esse nmero primo ou
no. Um nmero primo quando ele
divisvel somente por 1 e por ele mesmo.

39

Exerccio
Faa uma funo que dado um nmero inteiro
qualquer retorne a soma de seus dgitos. Por
exemplo, dado o nmero 1537, ento a soma
16 (1 + 5 + 3 + 7).

40

Exerccio
A sequncia Fibonacci corresponde aos nmeros:
1 , 1, 2, 3, 5, 8, 13, 21, 34 ,....

Faa uma funo que pea como entrada um nmero


inteiro positivo n e imprima na tela os primeiros n
elementos da sequncia.

Potrebbero piacerti anche