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

Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
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 - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dadosinfo_cimol
 
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 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++PeslPinguim
 
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
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CAdriano Teixeira de Souza
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de ProgramaçãoAndré Agostinho
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 

Mais procurados (20)

Html Básico
Html BásicoHtml Básico
Html Básico
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Introdução ao HTML
Introdução ao HTMLIntrodução ao HTML
Introdução ao HTML
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
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 - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Introdução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de DadosIntrodução a modelagem de dados - Banco de Dados
Introdução a modelagem de dados - Banco de Dados
 
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)
 
Informática básica-01
Informática básica-01Informática básica-01
Informática básica-01
 
Introdução a php
Introdução a phpIntrodução a php
Introdução a php
 
Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++Aula 01 - Introdução ao C++
Aula 01 - Introdução ao C++
 
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
 
Estrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem CEstrutura de dados - Introdução a linguagem C
Estrutura de dados - Introdução a linguagem C
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 

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 c++ estruturas de dados
Aula c++   estruturas de dadosAula c++   estruturas de dados
Aula c++ estruturas de dadosJean Martina
 

Destaque (13)

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 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
 
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
 
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çãoLeinylson Fontinele
 

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
 
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
 
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
 

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

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
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
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
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
 
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
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
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.
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
“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
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
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.
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 

Último (20)

Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
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 -
 
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
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
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
 
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
 
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
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.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
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
“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
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
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
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 

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