Escolar Documentos
Profissional Documentos
Cultura Documentos
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
AULA 4
Funes, Ponteiros e
Recursividade
Miter Mayer O Ferreira
mitmaya@gmail.com
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Definio de funes
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Definio de funes
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Definio de funes
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pilha de execuo
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pilha de execuo
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pilha de execuo
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pilha de execuo
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pilha de execuo
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
As variveis, a e p,
armazenam valores
"lixo", pois no foram
inicializadas.
A varivel a recebe,
indiretamente, o valor 6.
a equivalente a *p,
pois p armazena o
endereo de a.
Dizemos que p aponta
para a, da o nome
ponteiro.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
Um ponteiro aponta
para uma
determinada
varivel.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
int main ( void )
{
int a;
int *p;
p = &a;
*p = 2;
printf(" %d ", a);
return;
}
O valor 2 impresso.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ponteiros
/* funcao troca (versao CORRETA) */
#include <stdio.h>
void troca (int *px, int *py )
{
int temp;
temp = *px;
*px = *py;
*py = temp;
}
int main ( void )
{
int a = 5, b = 7;
troca(&a, &b); /* passamos os endereos das variveis */
printf("%d %d \n", a, b);
return 0;
}
Ensino Universitrio
Cachoeiro de Itapemirim - ES
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Recursividade
Funes podem ser chamadas recursivamente, isto
, uma funo pode chamar novamente a prpria
funo;
Recurso direta a funo A chama a prpria
funo A;
Recurso indireta a funo A chama uma funo
B que, por sua vez, chama A.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Recursividade
Diversas implementaes ficam muito mais fceis
usando recursividade, por outro lado, implementaes
no recursivas tendem a ser mais eficientes;
A cada chamada de uma funo, recursiva ou no,
parmetros e variveis locais so colocados na pilha de
execuo, assim cria-se um ambiente local para cada
chamada a funo;
As variveis locais de chamadas recursivas so
independentes entre si, como se fossem funes
diferentes.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Recursividade
Implementaes recursivas devem ser pensadas
considerando-se a definio recursiva do problema que
desejamos resolver.
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pr-processador e macros**
Um cdigo antes de ser compilado, passa por um prprocessador que reconhece determinadas diretivas e
altera o mesmo para ento compilar;
Ex: #include <cabealho> - a diretiva substituda pelo
contedo do arquivo cabealho;
#define PI 3.14159
float area (float r)
{
float a = PI * r * r;
return a;
}
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pr-processador e macros**
#define MAX(a,b)
Ensino Universitrio
ESTRUTURA DE DADOS I
Aula 4 Funes, Ponteiros e Recursividade
Cachoeiro de Itapemirim - ES
Pr-processador e macros**
#include <stdio.h>
#define DIF(a,b) a - b
int main (void)
{
printf(" %d ", 4 * DIF(5,3));
return 0;
}
o resultado impresso 17 e no 8;
Fazendo a substituio da macro) est escrito:
printf(" %d ", 4 * 5 - 3);