SlideShare uma empresa Scribd logo
1 de 73
Baixar para ler offline
# Estrutura de Dados #
Aula - Revisão de C/C++ na Prática
Prof. Leinylson Fontinele Pereira
Na aula anterior...
 Ponteiros
 Funções
11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Introdução
11:28 3 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
O que vamos aprender?
 Preparação do ambiente de testes
 Conceitos básicos de C
 Sintaxe de alguns comandos
# Structs, funções, ponteiros
11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
11:28 5 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Linguagens de programação
11:28 6 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Linguagem C
Desenvolvida inicialmente
por Dennis M. Ritchie e Ken
Thompson no laboratório
Bell no ano de 1972.
Baseada na linguagem B
criada por Thompson, esta
linguagem evoluiu da
linguagem BCPL, dando
origem as duas linguagens
anteriores.
Ambientede Desenvolvimento – Opção01
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Ambiente de Desenvolvimento – Opção02
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Programa nº I
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Programa nº II
A linguagemC
11:28
 char tem 8 bits (não é 16 bits como em Java)
 Não existe tipo booleano (usar int ou char):
0 falso
≠ 0 verdadeiro
 Tipos inteiros podem ser: signed ou unsigned
 Não tem tipo string: usa-se vetor de char
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
LinguagemC: Tipos de dados
11:28
Tipos de dados primários - Tipos de dados derivados - Tipos definidos pelo usuário
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
LinguagemC: Tipos de dados
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Exibindo uma saída
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
O comando return
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Vetores: conceito
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
 Um vetor (= array) é uma estrutura de dados que armazena uma sequência de
objetos, todos do mesmo tipo, em posições consecutivas da memória RAM (=
random access memory) do computador.
Vetores: exemplo
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Entendendo Vetores
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Vetores: exercício
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
 Dado um vetor de inteiros, 𝑣[0. . 6], crie um
programa para determinar se a sequência de números
corresponde a um palíndromo.
[1, 2, 3, 4, 3, 2, 1]: vetor palíndromo
[1, 2, 3, 4, 5, 6, 7]: não é vetor palíndromo
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Qual é o número mínimo de comparações
necessárias para verificar se um vetor de
tamanho N é ou não palíndromo?
Vetores: exercício
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Matriz: exercício
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
00000
00000
00000
00000
00000
Struct: exercício
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Quais são as informações de um Aluno para a Faculdade?
- Nome
- Matrícula
- Série
- Turma
- Curso
No exemplo acima temos a estrutura Aluno que contém as informações ou as
características de um aluno. Muito semelhante a um registro de banco de dados.
Podemos dizer que em uma estrutura, estamos armazenando informações agrupadas logicamente.
Construindo uma Struct
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
struct aluno
{
char nome[255];
int matricula;
int serie;
int turma;
char curso[100];
};
Nome da estrutura
Palavra
reservada que
identifica uma
estrutura
Membros da estrutura
Chaves definem o
início e o fim da
estrutura
Termina com ponto
e vírgula
Struct
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Struct
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Struct
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Struct: acessando os campos
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Funções
11:28 30
Estruturaaaaaaa
Funções: Estrutura de uma função
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Retorno
da função
Nome da função
Parâmetros da
função
Corpo da função
Escopo de início e fim da função
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
Ponteiros
11:28 32
Estruturaaaaaaa
Ponteiros : Operadores
11:28
 Para operação com ponteiros, utilizamos dois operadores unários:
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Operador Descrição
* Utilizado para declarar um ponteiro e para retornar o valor
& Utilizado para retornar o endereço de memória da variável
Declarando uma variável do tipoponteiro
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
int *ptr;
Tipo da variável
Nome da variável
Operador
unário
Declaraçãoe atribuição de ponteiros
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Variável
ponteiro
Atribuindo o endereço
de memória
int *ptr;
int valor;
valor = 1500;
ptr = &valor;
Ponteiros : Operadores
11:28
 Se x é uma variável, então &x é o seu endereço
int s = 999
int *p = &s
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Ponteiros : Operadores
11:28
 Todo ponteiro pode ter o valor NULL.
 NULL é uma constante, geralmente vale 0 (definida no arquivo interface stdlib)
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Ponteiros: Exemplo
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Vetores e Ponteiros
11:28
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
11:28
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
11:28
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
Vetores e Ponteiros
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
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;
Strings e Ponteiros
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
#include <stdio.h>
#include <string.h>
int main() {
char nome[15];
char *p = “Revisão de C/C++”;
// p pode ser usado como uma string
strcpy(nome, p);
printf("%s %sn", nome, p);
return 0;
}
Exemplo
11:28
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;
}
Matrizes de Ponteiros
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
// vetor de ponteiros
int *vetor[10];
// vetor de strings
char *strings[] = {"EU", "TU", "ELE" };
// matriz de ponteiros
int *matriz[2][2];
Ponteiros para Ponteiros
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
#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
Avisosobre Ponteiros!
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
#include <iostream>
using namespace std;
int main(){
int *ptr_inteiro;
double valor;
valor = 345.76;
ptr_inteiro = &valor;
cout << *ptr_inteiro << endl;
}
ERRO !!!
Cuidados ao utilizar ponteiros
11:28
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;
}
Diretivas de Compilação
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 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
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 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
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
 #define nomeDaMacro corpoDaMacro
 copoDaMacro é opcional
 Exemplos:
 #define TAMANHO 10
 #define _WIN32
 #define max(a,b) ((a>b)?(a):(b))
A Diretiva#undef
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
 #undef nomeDaMacro
 Exemplo:
 #undef max
O comando return
11:28
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
11:28
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ótipos de funções
11:28
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ótipos de funções
11:28
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);
// ...
}
Ponteiros para Funções
11:28
Estrutura de Dados: Aula 02 - Estrutura de dados e TAD
 Sintaxe:
 tipoDeRetorno (*nomeDoPonteiro) (tipoP1, ... , tipoPN)
Exemplo:
int (*p)(const char *);
p = puts; // inicializa
(*p) (“NASSAU”); // faz a chamada
Também podemos passar ponteiros para funções como parâmetro de outras
funções
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Desafio!
Desafio I
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
a = 1
b = 10
Desafio II
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
a = 10
b = 1
A linguagem C++
11:28 61 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
A linguagemC++
11:28
 Total compatibilidade com C (qualquer programa em C é um programa C++)
 C++ traz ainda:
 Classes e variáveis/funções membros (atributos/métodos);
 Sobrecarga
 Herança (permite herança múltipla)
 Funções virtuais (sobrescrita de métodos)
 Etc.
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
A linguagemC++
11:28
 C++ não possui coletor de lixo como Java
 Porém as instruções de criação/destruição são mais simples do que malloc/free.
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Declaraçãode Classes
11:28
 A declaração de uma classe diz o que as instâncias da classe podem fazer (contrato)
 A definição/implementação de uma classe diz como as instâncias da classe farão o
que encontra-se no contrato
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Sobrecarga
11:28
 C++, assim como Java, permite sobrecarga
 Várias funções com mesmo nome
 O mesmo nome é permitido, desde que os parâmetrossejam diferentes:
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Construtor
11:28
 C++, assim como Java, permite sobrecarga
 Se nenhum construtor é dado, um construtor default (sem argumentos) é adicionado pelo C++
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Instâncias diretas ( . ) e ponteiros (->)
11:28
 O ( . ) e ( -> ) são usados para acessar membros da classe
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Destrutores
11:28
 Em C++, deve-se destruir as instâncias criadas, nãohá coletor de lixo
 Destrutores devem liberar memória dinâmica alocada pela classe durante a
construção da instância
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Resolução de escopo ( :: )
11:28
 A implementação de um método é prefixada com o operador de resolução de escopo
 Motivo: diferente de Java, o método não encontra-se obrigatoriamente dentro do
escopo da classe
 Pode-se usá-lo também para variáveis
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Concluindo...
11:28 70 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Atividade 1
11:28
1) Implemente as seguintes funções:
 int mystrlen(char *c)
• retorna o tamanho da string c
 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 entra a e b
 isPar(a)
• Retorna 1 se a for par e 0 caso contrário
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Material: https://sites.google.com/site/leinylsonnassau
11:28
Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Material baseado nas aulas de:
 Algoritmos e Estruturas de Dados I, Prof. Jesús P. Mena-Chalco
Na próxima aula veremos...
 Listas Estáticas
11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
Alguma Dúvida?
11:28
Até a próxima aula...
leinylson@gmail.com

Mais conteúdo relacionado

Mais procurados

Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Leinylson 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
 
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Leinylson Fontinele
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPSTrabalhosCVIGR
 
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
 
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
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalFelipe J. R. Vieira
 
Banco de Dados II Projeto Final de Banco de Dados
Banco de Dados II Projeto Final de Banco de DadosBanco de Dados II Projeto Final de Banco de Dados
Banco de Dados II Projeto Final de Banco de DadosLeinylson 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
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Karoline Tavares
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IPPjpilin
 

Mais procurados (20)

Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Introdução ao HTML
Introdução ao HTMLIntrodução ao HTML
Introdução ao HTML
 
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
Estrutura de Dados Aula 13 - Árvores (conceito, elementos, tipos e utilizações)
 
Protocolos HTTP e HTTPS
Protocolos HTTP e HTTPSProtocolos HTTP e HTTPS
Protocolos HTTP e HTTPS
 
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
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicionalICC - Aula 05 - Estrutura de controle, sequencial e condicional
ICC - Aula 05 - Estrutura de controle, sequencial e condicional
 
Banco De Dados
Banco De DadosBanco De Dados
Banco De Dados
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Banco de Dados II Projeto Final de Banco de Dados
Banco de Dados II Projeto Final de Banco de DadosBanco de Dados II Projeto Final de Banco de Dados
Banco de Dados II Projeto Final de Banco de Dados
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
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)
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Linguagem C 09 Ponteiros
Linguagem C 09 PonteirosLinguagem C 09 Ponteiros
Linguagem C 09 Ponteiros
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 

Destaque

Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - MatrizesPacc UAB
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Languagesatvirsandhu9
 
TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++Ellen Diana
 
Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisPacc UAB
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )PeslPinguim
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 

Destaque (14)

SubProgramas
SubProgramasSubProgramas
SubProgramas
 
Aula 13 - Matrizes
Aula 13 - MatrizesAula 13 - Matrizes
Aula 13 - Matrizes
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
Presentation on C++ Programming Language
Presentation on C++ Programming LanguagePresentation on C++ Programming Language
Presentation on C++ Programming Language
 
TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++
 
Aula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionaisAula 12 - Exercícios vetores unidimensionais
Aula 12 - Exercícios vetores unidimensionais
 
599026
599026599026
599026
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
Aula c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dados
 
Apresentação c++ UFC-Quixadá
Apresentação c++ UFC-QuixadáApresentação c++ UFC-Quixadá
Apresentação c++ UFC-Quixadá
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
C++ Presentation
C++ PresentationC++ Presentation
C++ Presentation
 
C++ programming
C++ programmingC++ programming
C++ programming
 

Semelhante a C/C++ Revisão Estrutura 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áticaLeinylson Fontinele
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03thomasdacosta
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiaisJosh Santos
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0César Augusto Pessôa
 
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 06thomasdacosta
 

Semelhante a C/C++ Revisão Estrutura Dados (20)

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
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03Programação Estruturada 2 - Aula 03
Programação Estruturada 2 - Aula 03
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Curso matlab 6 especiais
Curso matlab 6 especiaisCurso matlab 6 especiais
Curso matlab 6 especiais
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Apostila Oracle
Apostila OracleApostila Oracle
Apostila Oracle
 
Ed1
Ed1Ed1
Ed1
 
R para Iniciantes
R para IniciantesR para Iniciantes
R para Iniciantes
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
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
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Ativ complementar etapa 02
Ativ complementar etapa 02Ativ complementar etapa 02
Ativ complementar etapa 02
 
Apostila aed
Apostila aedApostila aed
Apostila aed
 
C 1
C 1C 1
C 1
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
Python 04
Python 04Python 04
Python 04
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
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
 

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

Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
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.
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
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
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
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
 
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
 
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
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila RibeiroMarcele Ravasio
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 

Último (20)

Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
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
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
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
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
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.
 
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
 
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
 
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
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA  - Autora Djamila RibeiroLivro O QUE É LUGAR DE FALA  - Autora Djamila Ribeiro
Livro O QUE É LUGAR DE FALA - Autora Djamila Ribeiro
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 

C/C++ Revisão Estrutura Dados

  • 1. # Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira
  • 2. Na aula anterior...  Ponteiros  Funções 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 3. Introdução 11:28 3 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 4. O que vamos aprender?  Preparação do ambiente de testes  Conceitos básicos de C  Sintaxe de alguns comandos # Structs, funções, ponteiros 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 5. 11:28 5 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Linguagens de programação
  • 6. 11:28 6 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Linguagem C Desenvolvida inicialmente por Dennis M. Ritchie e Ken Thompson no laboratório Bell no ano de 1972. Baseada na linguagem B criada por Thompson, esta linguagem evoluiu da linguagem BCPL, dando origem as duas linguagens anteriores.
  • 7. Ambientede Desenvolvimento – Opção01 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 8. Ambiente de Desenvolvimento – Opção02 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 9. Programa nº I 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 10. 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Programa nº II
  • 11. A linguagemC 11:28  char tem 8 bits (não é 16 bits como em Java)  Não existe tipo booleano (usar int ou char): 0 falso ≠ 0 verdadeiro  Tipos inteiros podem ser: signed ou unsigned  Não tem tipo string: usa-se vetor de char Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 12. LinguagemC: Tipos de dados 11:28 Tipos de dados primários - Tipos de dados derivados - Tipos definidos pelo usuário Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 13. LinguagemC: Tipos de dados 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 14. Exibindo uma saída 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 15. O comando return 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 16. Vetores: conceito 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática  Um vetor (= array) é uma estrutura de dados que armazena uma sequência de objetos, todos do mesmo tipo, em posições consecutivas da memória RAM (= random access memory) do computador.
  • 17. Vetores: exemplo 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 18. Entendendo Vetores 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 19. Vetores: exercício 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática  Dado um vetor de inteiros, 𝑣[0. . 6], crie um programa para determinar se a sequência de números corresponde a um palíndromo. [1, 2, 3, 4, 3, 2, 1]: vetor palíndromo [1, 2, 3, 4, 5, 6, 7]: não é vetor palíndromo
  • 20. 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Qual é o número mínimo de comparações necessárias para verificar se um vetor de tamanho N é ou não palíndromo?
  • 21. Vetores: exercício 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 22. Matriz: exercício 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática 00000 00000 00000 00000 00000
  • 23. Struct: exercício 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Quais são as informações de um Aluno para a Faculdade? - Nome - Matrícula - Série - Turma - Curso No exemplo acima temos a estrutura Aluno que contém as informações ou as características de um aluno. Muito semelhante a um registro de banco de dados. Podemos dizer que em uma estrutura, estamos armazenando informações agrupadas logicamente.
  • 24. Construindo uma Struct 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática struct aluno { char nome[255]; int matricula; int serie; int turma; char curso[100]; }; Nome da estrutura Palavra reservada que identifica uma estrutura Membros da estrutura Chaves definem o início e o fim da estrutura Termina com ponto e vírgula
  • 25. Struct 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 26. Struct 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 27. Struct 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 28. Struct: acessando os campos 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 30. Funções: Estrutura de uma função 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Retorno da função Nome da função Parâmetros da função Corpo da função Escopo de início e fim da função double somar(double x, double y) { double resultado = x + y; return resultado; }
  • 32. Ponteiros : Operadores 11:28  Para operação com ponteiros, utilizamos dois operadores unários: Estrutura de Dados: Aula - Revisão de C/C++ na Prática Operador Descrição * Utilizado para declarar um ponteiro e para retornar o valor & Utilizado para retornar o endereço de memória da variável
  • 33. Declarando uma variável do tipoponteiro 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática int *ptr; Tipo da variável Nome da variável Operador unário
  • 34. Declaraçãoe atribuição de ponteiros 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Variável ponteiro Atribuindo o endereço de memória int *ptr; int valor; valor = 1500; ptr = &valor;
  • 35. Ponteiros : Operadores 11:28  Se x é uma variável, então &x é o seu endereço int s = 999 int *p = &s Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 36. Ponteiros : Operadores 11:28  Todo ponteiro pode ter o valor NULL.  NULL é uma constante, geralmente vale 0 (definida no arquivo interface stdlib) Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 37. Ponteiros: Exemplo 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 38. Vetores e Ponteiros 11:28 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
  • 39. Exemplo 11:28 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; }
  • 40. Exemplo 11:28 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
  • 41. Vetores e Ponteiros 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD 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;
  • 42. Strings e Ponteiros 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática #include <stdio.h> #include <string.h> int main() { char nome[15]; char *p = “Revisão de C/C++”; // p pode ser usado como uma string strcpy(nome, p); printf("%s %sn", nome, p); return 0; }
  • 43. Exemplo 11:28 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; }
  • 44. Matrizes de Ponteiros 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD // vetor de ponteiros int *vetor[10]; // vetor de strings char *strings[] = {"EU", "TU", "ELE" }; // matriz de ponteiros int *matriz[2][2];
  • 45. Ponteiros para Ponteiros 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática #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
  • 46. Avisosobre Ponteiros! 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática #include <iostream> using namespace std; int main(){ int *ptr_inteiro; double valor; valor = 345.76; ptr_inteiro = &valor; cout << *ptr_inteiro << endl; } ERRO !!!
  • 47. Cuidados ao utilizar ponteiros 11:28 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; }
  • 48. Diretivas de Compilação 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  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
  • 49. A Diretiva#include 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  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”
  • 50. A Diretiva#define 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe:  #define nomeDaMacro corpoDaMacro  copoDaMacro é opcional  Exemplos:  #define TAMANHO 10  #define _WIN32  #define max(a,b) ((a>b)?(a):(b))
  • 51. A Diretiva#undef 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe:  #undef nomeDaMacro  Exemplo:  #undef max
  • 52. O comando return 11:28 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
  • 53. Exemplo 11:28 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; }
  • 54. Protótipos de funções 11:28 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);
  • 55. Protótipos de funções 11:28 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); // ... }
  • 56. Ponteiros para Funções 11:28 Estrutura de Dados: Aula 02 - Estrutura de dados e TAD  Sintaxe:  tipoDeRetorno (*nomeDoPonteiro) (tipoP1, ... , tipoPN) Exemplo: int (*p)(const char *); p = puts; // inicializa (*p) (“NASSAU”); // faz a chamada Também podemos passar ponteiros para funções como parâmetro de outras funções
  • 57. 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Desafio!
  • 58. Desafio I 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática a = 1 b = 10
  • 59. Desafio II 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática a = 10 b = 1
  • 60. A linguagem C++ 11:28 61 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 61. A linguagemC++ 11:28  Total compatibilidade com C (qualquer programa em C é um programa C++)  C++ traz ainda:  Classes e variáveis/funções membros (atributos/métodos);  Sobrecarga  Herança (permite herança múltipla)  Funções virtuais (sobrescrita de métodos)  Etc. Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 62. A linguagemC++ 11:28  C++ não possui coletor de lixo como Java  Porém as instruções de criação/destruição são mais simples do que malloc/free. Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 63. Declaraçãode Classes 11:28  A declaração de uma classe diz o que as instâncias da classe podem fazer (contrato)  A definição/implementação de uma classe diz como as instâncias da classe farão o que encontra-se no contrato Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 64. Sobrecarga 11:28  C++, assim como Java, permite sobrecarga  Várias funções com mesmo nome  O mesmo nome é permitido, desde que os parâmetrossejam diferentes: Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 65. Construtor 11:28  C++, assim como Java, permite sobrecarga  Se nenhum construtor é dado, um construtor default (sem argumentos) é adicionado pelo C++ Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 66. Instâncias diretas ( . ) e ponteiros (->) 11:28  O ( . ) e ( -> ) são usados para acessar membros da classe Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 67. Destrutores 11:28  Em C++, deve-se destruir as instâncias criadas, nãohá coletor de lixo  Destrutores devem liberar memória dinâmica alocada pela classe durante a construção da instância Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 68. Resolução de escopo ( :: ) 11:28  A implementação de um método é prefixada com o operador de resolução de escopo  Motivo: diferente de Java, o método não encontra-se obrigatoriamente dentro do escopo da classe  Pode-se usá-lo também para variáveis Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 69. Concluindo... 11:28 70 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 70. Atividade 1 11:28 1) Implemente as seguintes funções:  int mystrlen(char *c) • retorna o tamanho da string c  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 entra a e b  isPar(a) • Retorna 1 se a for par e 0 caso contrário Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 71. Material: https://sites.google.com/site/leinylsonnassau 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática Material baseado nas aulas de:  Algoritmos e Estruturas de Dados I, Prof. Jesús P. Mena-Chalco
  • 72. Na próxima aula veremos...  Listas Estáticas 11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática
  • 73. Alguma Dúvida? 11:28 Até a próxima aula... leinylson@gmail.com