SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
# Estrutura de Dados #
Aula 03 – Ponteiros e Funções
Prof. Leinylson Fontinele Pereira
Naaulaanterior...
 Estruturas de Dados
 TAD’s
16:44 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Introdução
16:44 3 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
O que vamosaprender?
 Ponteiros
 Funções
16:44 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Vamos começar?
16:44 5 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Vetorese Ponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Quando declaramos uma matriz:
 tipo meuArray[tam];
 O compilador aloca a matriz em uma região de memória contínua
 meuArray na verdade é umponteiropara a primeira posição da memória que foi alocada.
 meuArray[10] é equivalente a *(meuArray + 10)
Vetorese Ponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Podemos usar ponteiros como se fossem matrizes:
int mat[] = { 1, 2 , 3 };
int *p = mat;
printf(“%d”, p[2]); // imprime 3
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
#include <stdio.h>
int main() {
int mat[50][50];
int i, j;
// percorre a matriz com dois loops
for (i = 0; i < 50; i++) {
for (j = 0; j < 50; j++) {
mat[i][j] = 0;
}
}
return 0;
}
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
#include <stdio.h>
int main() {
int mat[50][50];
int *p= (int *) mat, i;
// percorre a matriz com um único loop
for (i = 0; i < 2500; i++) {
*p = 0;
p++;
}
return 0;
}
É muito mais
rápido e diminui o
tamanho do código
Vetorese Ponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Matrizes nãopodem ser usadas como ponteiros
 Exemplo:
int vetor[10];
int *ponteiro, i;
ponteiro = &i;
// as operações a seguir são inválidas
// ERRADO: vetor não é variável
vetor = vetor + 2;
// ERRADO: vetor não é variável
*vetor = 0;
// ERRADO: vetor não é variável
vetor = ponteiro;
tipo meuArray[];  const tipo * meuArray;
Stringse Ponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Strings são variáveis do tipo *char
 Exemplo:
#include <stdio.h>
#include <string.h>
int main() {
char curso[15];
char *p = "Curso de C/C++“;
// p pode ser usado como uma string
strcpy(curso, p);
printf("%s %sn", curso, p);
return 0;
}
Ponteirodo tipo void
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Este tipo de ponteiro pode apontar para qualquer outro tipo
 Mas para se ter acesso ao conteúdo por ele endereçado precisamos fazer um cast
 É útil para a passagem de parâmetros genéricos
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
#include <stdio.h>
int main() {
char *s = "string";
int a = 1, *p = &a;
float f = 2.0;
void *v;
v = p; // v aponta para um inteiro
a = *((int *) v);
v = s; // v aponta para uma string
s = (char *) v;
v = &f; // v aponta para um float
f = *((float *) v);
return 0;
}
Matrizesde Ponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Podemos declarar matrizes de ponteiros
 Exemplos:
// vetor de ponteiros
int *vetor[10];
// vetor de strings
char *strings[] = {"EU", "TU", "ELE" };
// matriz de ponteiros
int *matriz[2][2];
PonteirosparaPonteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Guardam o endereço de outro ponteiro
 Sintaxe:
 tipo **nomeDaVariavel;
 Também podem ser usados como matrizes bidimensionais
 Podemos criar ponteiros para ponteiros para ponteiros para ponteiros, e assim por
diante
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
#include <stdio.h>
int main() {
int a = 10, *p, **pp;
p = &a;
pp = &p;
printf("%dn", **pp); // imprime 10
return 0;
}
Obs.: Para acessar o valor
de a através de pp usamos
o operador * duas vezes
Cuidadosao utilizarponteiros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Saiba sempre para onde o ponteiro esta apontando
 Nunca utilize um ponteiro sem que antes ele tenha sido inicializado
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
// Errado - Não execute
int main () {
int a,*p;
a = 10;
*p = a; // Para onde p aponta???
return 0;
}
Funções
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Funções são estruturas que permitem ao programador separar o seu código em
blocos
 Ajudam a tornar o código mais legível e fácil de reutilizar
 Um bom programador deve saber como dividir o seu problema em funções para
torná-lo mais fácil de resolver
Sintaxe
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
tipoDeRetorno nomeDaFuncao(listaDeParâmetros) {
corpoDaFuncao;
}
listaDeParâmetros = tipo1 nome1, ... , tipoN nomeN
Parâmetros
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Os parâmetros são cópias das variáveis originais (Chamada por valor)
 Mas podemos utilizar ponteiros como parâmetros e com isto alterar o valor de uma
variável que não pertence à função (Chamada por referência)
 Exemplo:
int a;
scanf(“%d”, &a);
O comandoreturn
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
 return nomeDaVariável;
 nomeDaVariável não é usado em funções que retornam void
 O return encerra a execução da função
 Pode ser comparado com o break usado nos loops
 Uma função pode ter mais de um return
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
int dividir(int a, int b) {
if (!b) {
return 0; // evita a divisão por 0
}
return a / b;
}
Protótiposde funções
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Os compiladores de C são muito eficientes, mas isto traz alguns problemas
 Funções só podem ser usadas se forem definidas anteriormente
 A solução é utilizar protótipos de funções
 Sintaxe:
 tipoDeRetorno nomeDaFunção(tipo1, ... , tipoN);
Protótiposde funções
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
void b(int); // protótipo de b
void a(int i) {
// ...
b(i);
// ...
}
void b(int j) {
// ...
a(j);
// ...
}
PonteirosparaFunções
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
 tipoDeRetorno (*nomeDoPonteiro) (tipoP1, ... , tipoPN)
Exemplo:
int (*p)(const char *);
p = puts; // inicializa
(*p) (“UFPE”); // faz a chamada
Também podemos passar ponteiros para funções como parâmetro de outras
funções
A funçãomain
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Principal função do programa
 Sintaxe completa:
 int main(int argc, char *argv[]);
 Permite que o usuário passe argumentos para o programa
 argc é quantidade de parâmetros
 argv contém os parâmetros
 Obs.:argv[0] contémo nomedoprogramaporisso,argc > 0
Exemplo
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
#include <stdio.h>
int main (int argc, char *argv[]) {
int i;
for (i = 0; i < argc; i++) {
printf("%sn", argv[i]);
}
printf("total: %dn", argc);
return 0;
}
Diretivasde Compilação
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 São comandos que não são compilados, mas sim interpretados pelo pré-processador
 Todas as diretivas começam por # e podem ser utilizadas em qualquer parte do
código
 Principais diretivas definidas no C ANSI:
#if, #ifdef, #ifndef, #else, #elif, #endif,#include,
#define, #undef, #error
A Diretiva#include
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Diz ao compilador para incluir um arquivo especificado no seu programa
 Sintaxe:
 #include <nomeDoArquivo>
• O arquivo se encontra no path do compilador
 #include “nomeDoArquivo”
• O arquivo se encontra em outro local
 Exemplos:
 #include <string.h>
 #include “pessoa.h”
A Diretiva#define
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Define uma macro no compilador
 Sintaxe:
 #define nomeDaMacro corpoDaMacro
 copoDaMacro é opcional
 Exemplos:
 #define TAMANHO 10
 #define _WIN32
 #define max(a,b) ((a>b)?(a):(b))
A Diretiva#undef
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Apaga uma macro do compilador
 Sintaxe:
 #undef nomeDaMacro
 Exemplo:
 #undef max
As Diretivas#if,#elsee #elif
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
#if expressãoConstante1
declarações1
#elif expressãoConstante2
declarações2
...
#elif expressãoConstanteN
declaraçõesN
#else
declarações
#endif
Exercícios
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
1) Implemente as seguintes funções:
 int mystrlen(char *c)
• retorna o tamanho da stringc
 void mystrcpy(char *dest, char *orig)
• copia orig para dest
 void mystrcat(char *dest, char *orig)
• concatena orig em dest
 int mystrchar(char *str, char c)
• Retorna o índice onde c ocorre em str
2) Declare um ponteiro para uma das funções que você fez no exercício anterior e chame-a utilizando o
mesmo
3) Crie as seguintes macros:
 min(a,b)
• Retorna o mínimo entraa e b
 isPar(a)
• Retorna 1 se a for par e 0 caso contrário
Concluindo...
16:46 35 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Referênciados Slides
 Curso de C da UFMG
 http://ead1.eee.ufmg.br/cursos/C/
 Slides de Gustavo (ghcp@cin.ufpe.br) do curso de C/C++
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Material: https://sites.google.com/site/leinylson
16:46
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Nestaaulaaprendemos...
 Ponteiros
 Funções
16:53 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
Napróximaaulaveremos...
 Listas estáticas em C++
16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
AlgumaDúvida?
16:46
Até a próxima aula...
leinylson@gmail.com

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasLeinylson Fontinele
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosHenrique Nunweiler
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Leinylson Fontinele
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dadossamlobo
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 

Mais procurados (20)

Estrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas EstáticasEstrutura de Dados - Aula 04 - Listas Estáticas
Estrutura de Dados - Aula 04 - Listas Estáticas
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Aula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de DadosAula 1 - Introdução ao Conteúdo de Banco de Dados
Aula 1 - Introdução ao Conteúdo de Banco de Dados
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Apresentação Final de Banco de Dados
Apresentação Final de Banco de DadosApresentação Final de Banco de Dados
Apresentação Final de Banco de Dados
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 

Destaque

Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaLeinylson Fontinele
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasLeinylson Fontinele
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasLeinylson Fontinele
 
Estrutura de Dados Aula 05 - Filas Estáticas
Estrutura de Dados  Aula 05 - Filas EstáticasEstrutura de Dados  Aula 05 - Filas Estáticas
Estrutura de Dados Aula 05 - Filas EstáticasLeinylson Fontinele
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Estrutura de Dados Aula 09 - Listas simplesmente encadeadas
Estrutura de Dados Aula 09 - Listas simplesmente encadeadasEstrutura de Dados Aula 09 - Listas simplesmente encadeadas
Estrutura de Dados Aula 09 - Listas simplesmente encadeadasLeinylson Fontinele
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Leinylson Fontinele
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaLeinylson Fontinele
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Ricardo Terra
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoLeinylson Fontinele
 
Pesquisa Operacional - Aula 07 - Problema de Transporte e Designação
Pesquisa Operacional - Aula 07 - Problema de Transporte e DesignaçãoPesquisa Operacional - Aula 07 - Problema de Transporte e Designação
Pesquisa Operacional - Aula 07 - Problema de Transporte e DesignaçãoLeinylson Fontinele
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Leinylson Fontinele
 
(ED1) Tópico 01 - Conceitos Básicos
(ED1) Tópico 01 - Conceitos Básicos(ED1) Tópico 01 - Conceitos Básicos
(ED1) Tópico 01 - Conceitos BásicosFabricio Narcizo
 

Destaque (20)

Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas Estáticas
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
 
Estrutura de Dados Aula 05 - Filas Estáticas
Estrutura de Dados  Aula 05 - Filas EstáticasEstrutura de Dados  Aula 05 - Filas Estáticas
Estrutura de Dados Aula 05 - Filas Estáticas
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Estrutura de Dados Aula 09 - Listas simplesmente encadeadas
Estrutura de Dados Aula 09 - Listas simplesmente encadeadasEstrutura de Dados Aula 09 - Listas simplesmente encadeadas
Estrutura de Dados Aula 09 - Listas simplesmente encadeadas
 
TI na Educação
TI na EducaçãoTI na Educação
TI na Educação
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
Sistemas Operacionais - Aula 03 (Conceitos de hardware e software)
 
Estrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na práticaEstrutura de Dados - Aula de revisão de c na prática
Estrutura de Dados - Aula de revisão de c na prática
 
Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)Apostila Algoritmos e Estrutura de Dados (AEDS)
Apostila Algoritmos e Estrutura de Dados (AEDS)
 
Estruturas de dados
Estruturas de dadosEstruturas de dados
Estruturas de dados
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
Pesquisa Operacional - Aula 07 - Problema de Transporte e Designação
Pesquisa Operacional - Aula 07 - Problema de Transporte e DesignaçãoPesquisa Operacional - Aula 07 - Problema de Transporte e Designação
Pesquisa Operacional - Aula 07 - Problema de Transporte e Designação
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Estrutura de Dados - Grafos
Estrutura de Dados - GrafosEstrutura de Dados - Grafos
Estrutura de Dados - Grafos
 
ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01ESTRUTURA DE DADOS (JAVA) AULA 01
ESTRUTURA DE DADOS (JAVA) AULA 01
 
(ED1) Tópico 01 - Conceitos Básicos
(ED1) Tópico 01 - Conceitos Básicos(ED1) Tópico 01 - Conceitos Básicos
(ED1) Tópico 01 - Conceitos Básicos
 

Semelhante a Estrutura de Dados: Ponteiros e Funções

Semelhante a Estrutura de Dados: Ponteiros e Funções (20)

Ed1
Ed1Ed1
Ed1
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Estrutura de Dados - Aula Revisão para 1ª Avaliação
Estrutura de Dados - Aula Revisão para 1ª AvaliaçãoEstrutura de Dados - Aula Revisão para 1ª Avaliação
Estrutura de Dados - Aula Revisão para 1ª Avaliação
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 7 pc - estrutura
Aula 7   pc - estruturaAula 7   pc - estrutura
Aula 7 pc - estrutura
 
Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03Estrutura de Dados - Aula 03
Estrutura de Dados - Aula 03
 
9 structs e ponteiros
9   structs e ponteiros9   structs e ponteiros
9 structs e ponteiros
 
Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06Algoritmos e Técnicas de Programação - Aula 06
Algoritmos e Técnicas de Programação - Aula 06
 
3 vetor.matriz
3 vetor.matriz3 vetor.matriz
3 vetor.matriz
 
Modulo02
Modulo02Modulo02
Modulo02
 
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430095 A 134   Material Auxiliar Para Curso AvançAdo I Msp430
095 A 134 Material Auxiliar Para Curso AvançAdo I Msp430
 
Introdução à Estrutura de Dados
Introdução à Estrutura de DadosIntrodução à Estrutura de Dados
Introdução à Estrutura de Dados
 
Pesquisa ppi 2
Pesquisa ppi 2Pesquisa ppi 2
Pesquisa ppi 2
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Estruturas em C++ (struct)
Estruturas em C++ (struct)Estruturas em C++ (struct)
Estruturas em C++ (struct)
 
Simulador Funcional
Simulador FuncionalSimulador Funcional
Simulador Funcional
 
Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222Aula de Algoritmos II - Turma 222
Aula de Algoritmos II - Turma 222
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 

Mais de Leinylson Fontinele

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoLeinylson Fontinele
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaLeinylson Fontinele
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Leinylson Fontinele
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Leinylson Fontinele
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesLeinylson Fontinele
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da InformaçãoLeinylson Fontinele
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaLeinylson Fontinele
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaLeinylson Fontinele
 

Mais de Leinylson Fontinele (20)

Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Prática com slide.pptx
Prática com slide.pptxPrática com slide.pptx
Prática com slide.pptx
 
A galinha carijó
A galinha carijóA galinha carijó
A galinha carijó
 
Descrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzleDescrição do Projeto 8 puzzle
Descrição do Projeto 8 puzzle
 
Aula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramentoAula 05 - Importância do teste, auditoria e monitoramento
Aula 05 - Importância do teste, auditoria e monitoramento
 
Aula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurançaAula 04 - Implementação efetiva da política de segurança
Aula 04 - Implementação efetiva da política de segurança
 
Aula 02 - Agentes Inteligentes
Aula 02 - Agentes InteligentesAula 02 - Agentes Inteligentes
Aula 02 - Agentes Inteligentes
 
Aula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IAAula 01 - Visão Geral da IA
Aula 01 - Visão Geral da IA
 
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
Aula 02 - Aplicação de contramedidas de segurança para mitigar ataques malici...
 
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
Aula 03 - Controles de acesso apropriados para sistemas, aplicativos e acesso...
 
Aula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informaçõesAula 01 - Fundamentos da segurança dos sistemas de informações
Aula 01 - Fundamentos da segurança dos sistemas de informações
 
A história da Segurança da Informação
A história da Segurança da InformaçãoA história da Segurança da Informação
A história da Segurança da Informação
 
Introdução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. CostaIntrodução ao Prolog - Prof. Sérgio S. Costa
Introdução ao Prolog - Prof. Sérgio S. Costa
 
Caso 1 - Boing 777
Caso 1 - Boing 777Caso 1 - Boing 777
Caso 1 - Boing 777
 
Caso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de DenverCaso 2 - Aeroporto de Denver
Caso 2 - Aeroporto de Denver
 
Aula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de buscaAula 02 - Agentes e problemas de busca
Aula 02 - Agentes e problemas de busca
 
Aula 01 - Visão geral da IA
Aula 01 - Visão geral da IAAula 01 - Visão geral da IA
Aula 01 - Visão geral da IA
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequenciaAula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequencia
 

Último

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 

Último (20)

A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 

Estrutura de Dados: Ponteiros e Funções

  • 1. # Estrutura de Dados # Aula 03 – Ponteiros e Funções Prof. Leinylson Fontinele Pereira
  • 2. Naaulaanterior...  Estruturas de Dados  TAD’s 16:44 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 3. Introdução 16:44 3 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 4. O que vamosaprender?  Ponteiros  Funções 16:44 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 5. Vamos começar? 16:44 5 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 6. Vetorese Ponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória contínua  meuArray na verdade é umponteiropara a primeira posição da memória que foi alocada.  meuArray[10] é equivalente a *(meuArray + 10)
  • 7. Vetorese Ponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Podemos usar ponteiros como se fossem matrizes: int mat[] = { 1, 2 , 3 }; int *p = mat; printf(“%d”, p[2]); // imprime 3
  • 8. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD #include <stdio.h> int main() { int mat[50][50]; int i, j; // percorre a matriz com dois loops for (i = 0; i < 50; i++) { for (j = 0; j < 50; j++) { mat[i][j] = 0; } } return 0; }
  • 9. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD #include <stdio.h> int main() { int mat[50][50]; int *p= (int *) mat, i; // percorre a matriz com um único loop for (i = 0; i < 2500; i++) { *p = 0; p++; } return 0; } É muito mais rápido e diminui o tamanho do código
  • 10. Vetorese Ponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Matrizes nãopodem ser usadas como ponteiros  Exemplo: int vetor[10]; int *ponteiro, i; ponteiro = &i; // as operações a seguir são inválidas // ERRADO: vetor não é variável vetor = vetor + 2; // ERRADO: vetor não é variável *vetor = 0; // ERRADO: vetor não é variável vetor = ponteiro; tipo meuArray[];  const tipo * meuArray;
  • 11. Stringse Ponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Strings são variáveis do tipo *char  Exemplo: #include <stdio.h> #include <string.h> int main() { char curso[15]; char *p = "Curso de C/C++“; // p pode ser usado como uma string strcpy(curso, p); printf("%s %sn", curso, p); return 0; }
  • 12. Ponteirodo tipo void 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Este tipo de ponteiro pode apontar para qualquer outro tipo  Mas para se ter acesso ao conteúdo por ele endereçado precisamos fazer um cast  É útil para a passagem de parâmetros genéricos
  • 13. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD #include <stdio.h> int main() { char *s = "string"; int a = 1, *p = &a; float f = 2.0; void *v; v = p; // v aponta para um inteiro a = *((int *) v); v = s; // v aponta para uma string s = (char *) v; v = &f; // v aponta para um float f = *((float *) v); return 0; }
  • 14. Matrizesde Ponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Podemos declarar matrizes de ponteiros  Exemplos: // vetor de ponteiros int *vetor[10]; // vetor de strings char *strings[] = {"EU", "TU", "ELE" }; // matriz de ponteiros int *matriz[2][2];
  • 15. PonteirosparaPonteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Guardam o endereço de outro ponteiro  Sintaxe:  tipo **nomeDaVariavel;  Também podem ser usados como matrizes bidimensionais  Podemos criar ponteiros para ponteiros para ponteiros para ponteiros, e assim por diante
  • 16. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD #include <stdio.h> int main() { int a = 10, *p, **pp; p = &a; pp = &p; printf("%dn", **pp); // imprime 10 return 0; } Obs.: Para acessar o valor de a através de pp usamos o operador * duas vezes
  • 17. Cuidadosao utilizarponteiros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Saiba sempre para onde o ponteiro esta apontando  Nunca utilize um ponteiro sem que antes ele tenha sido inicializado
  • 18. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD // Errado - Não execute int main () { int a,*p; a = 10; *p = a; // Para onde p aponta??? return 0; }
  • 19. Funções 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Funções são estruturas que permitem ao programador separar o seu código em blocos  Ajudam a tornar o código mais legível e fácil de reutilizar  Um bom programador deve saber como dividir o seu problema em funções para torná-lo mais fácil de resolver
  • 20. Sintaxe 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD tipoDeRetorno nomeDaFuncao(listaDeParâmetros) { corpoDaFuncao; } listaDeParâmetros = tipo1 nome1, ... , tipoN nomeN
  • 21. Parâmetros 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Os parâmetros são cópias das variáveis originais (Chamada por valor)  Mas podemos utilizar ponteiros como parâmetros e com isto alterar o valor de uma variável que não pertence à função (Chamada por referência)  Exemplo: int a; scanf(“%d”, &a);
  • 22. O comandoreturn 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe:  return nomeDaVariável;  nomeDaVariável não é usado em funções que retornam void  O return encerra a execução da função  Pode ser comparado com o break usado nos loops  Uma função pode ter mais de um return
  • 23. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD int dividir(int a, int b) { if (!b) { return 0; // evita a divisão por 0 } return a / b; }
  • 24. Protótiposde funções 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Os compiladores de C são muito eficientes, mas isto traz alguns problemas  Funções só podem ser usadas se forem definidas anteriormente  A solução é utilizar protótipos de funções  Sintaxe:  tipoDeRetorno nomeDaFunção(tipo1, ... , tipoN);
  • 25. Protótiposde funções 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD void b(int); // protótipo de b void a(int i) { // ... b(i); // ... } void b(int j) { // ... a(j); // ... }
  • 26. PonteirosparaFunções 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe:  tipoDeRetorno (*nomeDoPonteiro) (tipoP1, ... , tipoPN) Exemplo: int (*p)(const char *); p = puts; // inicializa (*p) (“UFPE”); // faz a chamada Também podemos passar ponteiros para funções como parâmetro de outras funções
  • 27. A funçãomain 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Principal função do programa  Sintaxe completa:  int main(int argc, char *argv[]);  Permite que o usuário passe argumentos para o programa  argc é quantidade de parâmetros  argv contém os parâmetros  Obs.:argv[0] contémo nomedoprogramaporisso,argc > 0
  • 28. Exemplo 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD #include <stdio.h> int main (int argc, char *argv[]) { int i; for (i = 0; i < argc; i++) { printf("%sn", argv[i]); } printf("total: %dn", argc); return 0; }
  • 29. Diretivasde Compilação 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  São comandos que não são compilados, mas sim interpretados pelo pré-processador  Todas as diretivas começam por # e podem ser utilizadas em qualquer parte do código  Principais diretivas definidas no C ANSI: #if, #ifdef, #ifndef, #else, #elif, #endif,#include, #define, #undef, #error
  • 30. A Diretiva#include 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Diz ao compilador para incluir um arquivo especificado no seu programa  Sintaxe:  #include <nomeDoArquivo> • O arquivo se encontra no path do compilador  #include “nomeDoArquivo” • O arquivo se encontra em outro local  Exemplos:  #include <string.h>  #include “pessoa.h”
  • 31. A Diretiva#define 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Define uma macro no compilador  Sintaxe:  #define nomeDaMacro corpoDaMacro  copoDaMacro é opcional  Exemplos:  #define TAMANHO 10  #define _WIN32  #define max(a,b) ((a>b)?(a):(b))
  • 32. A Diretiva#undef 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Apaga uma macro do compilador  Sintaxe:  #undef nomeDaMacro  Exemplo:  #undef max
  • 33. As Diretivas#if,#elsee #elif 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe: #if expressãoConstante1 declarações1 #elif expressãoConstante2 declarações2 ... #elif expressãoConstanteN declaraçõesN #else declarações #endif
  • 34. Exercícios 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD 1) Implemente as seguintes funções:  int mystrlen(char *c) • retorna o tamanho da stringc  void mystrcpy(char *dest, char *orig) • copia orig para dest  void mystrcat(char *dest, char *orig) • concatena orig em dest  int mystrchar(char *str, char c) • Retorna o índice onde c ocorre em str 2) Declare um ponteiro para uma das funções que você fez no exercício anterior e chame-a utilizando o mesmo 3) Crie as seguintes macros:  min(a,b) • Retorna o mínimo entraa e b  isPar(a) • Retorna 1 se a for par e 0 caso contrário
  • 35. Concluindo... 16:46 35 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 36. Referênciados Slides  Curso de C da UFMG  http://ead1.eee.ufmg.br/cursos/C/  Slides de Gustavo (ghcp@cin.ufpe.br) do curso de C/C++ 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 37. Material: https://sites.google.com/site/leinylson 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 38. Nestaaulaaprendemos...  Ponteiros  Funções 16:53 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 39. Napróximaaulaveremos...  Listas estáticas em C++ 16:46 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
  • 40. AlgumaDúvida? 16:46 Até a próxima aula... leinylson@gmail.com

Notas do Editor

  1. Respira fundo...
  2. Apresentar as definições dos comandos While, do-While, For, Break e Continue. 2. Utilizaremos trechos de diagramas de contexto hipotéticos para modelar algumas estruturas de repetição e de desvio de fluxo. 3. Mostrar as várias formas de aplicação e utilização
  3. Apresentar as definições dos comandos While, do-While, For, Break e Continue. 2. Utilizaremos trechos de diagramas de contexto hipotéticos para modelar algumas estruturas de repetição e de desvio de fluxo. 3. Mostrar as várias formas de aplicação e utilização
  4. 1941 - 2011
  5. 1941 - 2011
  6. 1941 - 2011
  7. 1941 - 2011
  8. 1941 - 2011
  9. 1941 - 2011
  10. 1941 - 2011
  11. 1941 - 2011
  12. 1941 - 2011
  13. 1941 - 2011
  14. 1941 - 2011
  15. 1941 - 2011
  16. 1941 - 2011
  17. 1941 - 2011
  18. 1941 - 2011
  19. 1941 - 2011
  20. 1941 - 2011
  21. 1941 - 2011
  22. 1941 - 2011
  23. 1941 - 2011
  24. 1941 - 2011
  25. 1941 - 2011
  26. 1941 - 2011
  27. 1941 - 2011
  28. 1941 - 2011
  29. 1941 - 2011
  30. 1941 - 2011
  31. 1941 - 2011
  32. 1941 - 2011
  33. Uma estrutura em C serve basicamente para agrupar diversas variáveis dentro de um único contexto
  34. Apresentar as definições dos comandos While, do-While, For, Break e Continue. 2. Utilizaremos trechos de diagramas de contexto hipotéticos para modelar algumas estruturas de repetição e de desvio de fluxo. 3. Mostrar as várias formas de aplicação e utilização