Buscar

ED-aula1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
ESTRUTURAS DE DADOS - CCT0637
PROFESSOR: EDIBERTO MARIANO
programacaoedi@gmail.com
1
Aula 01
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Apresentação da disciplina. 
Revisão de Agregados 
Homogêneos e 
Heterogêneos.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
Objetivos Gerais
• Desenvolver técnicas para representação de estruturas de dados e as
operações sobre as mesmas, de maneira que seja possível solucionar
problemas, escolhendo as estruturas de dados mais adequadas para
representação e manipulação dos dados em problemas específicos.
Objetivos Específicos
1. Identificar e construir os agregados heterogêneos.
2. Aplicar os fundamentos da modularização de código.
3. Aplicar modularização de código em situações contextualizadas.
4. Aplicar os fundamentos da alocação dinâmica de dados em memória.
5. Construir as principais estruturas de dados lineares.
6. Identificar os Fundamentos da estrutura de dados Árvore;
7. Descrever os fundamentos da ordenação de elementos em estrutura de
dados.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
• Ementa:
1. Agregados Homogêneos e Heterogêneos,
2. Modularização,
3. Alocação Dinâmica de Memória,
4. Tipos Abstratos de Dados,
5. Listas, Pilhas, Filas,
6. Árvores,
7. Ordenação.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
BALIEIRO, Ricardo. Estrutura de dados [BV:RE]. 1. Rio de Janeiro::
Universidade Estácio de Sá, 2015. Disponível em:
http://api.repositorio.savaestacio.com.br/api/objetos/efetuaDownload/2d35a
184-bf644419-9da9-d1ed12a97017
Bibliografia Básica
MANZANO, José A. N. G. Algoritmos: lógica para desenvolvimento de
programação [BV:MB]. 29 ed.. São Paulo: Érica, 2009. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788536531472/cfi/0!/4/4
@0.00:10.5
VETORAZZO, Adriano S, et al. Estrutura de dados [BV:MB]. Porto Alegre:
SAGAH, 2018. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788595023932/cfi/0!/4/2
@100:0.00
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
Ascencio, Ana Fernanda Gomes. Araujo, Graziela S. Estrutura de Dados:
Algoritmos, Análise da Complexidade e implementações em Java e C/C++
[BV:PE]. 1. São Paulo: Pearson Prentice Hall, 2010. Disponível em:
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1995
Bibliografia Complementar
DRIZDEK, Adam. Estrutura de dados e algoritmos em C++ [BV:MB]. 4 ed..
São Paulo: Cengage Learning, 2016. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788522126651/cfi/0!/4/4
@0.00:0.00
GOODRICH, Michael T.; TAMASSIA, Roberto. Estruturas de Dados &
Algoritmos em Java [BV:MB]. 5ª Ed.. Bookman: Addison Wesley, 2013.
Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788582600191/
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
KOFFMAN, Elliot B., WOLFGANG, Paul A.T. Objetos, Abstração, Estrutura
de dados e Projeto usando C++ [BV:MB]. 1. Rio de Janeiro: LTC, 2008.
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/978-85-
216-27807/cfi/6/2!/4/2/2@0:0
Bibliografia Complementar
PUGA, Sandra; RISSETIi, Gerson. Lógica de Programação e Estrutura de
Dados: com aplicações em Java [BV:MB]. 2 ed.. São Paulo: Pearson, 2009.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/447
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
1. Tipo de aula: teórica e prática Pode-se trabalhar os 4 tempos da semana
reservando 2 tempos para o laboratório e 2 tempos para a sala de aula.
Procedimentos de ensino
Utilizar os exercícios apresentados em listas de exercícios como base para
desenvolvimento dos programas em laboratório utilizando a linguagem C++
Utilizar os exercícios apresentados em listas de exercícios como base para
desenvolvimento dos programas em laboratório utilizando a linguagem C++
Para implementação dos programas em uma linguagem de programação, sugere-se
o uso da linguagem C usando o compilador do C++ e do ambiente de
desenvolvimento integrado Dev-C++. Trata-se de uma ferramenta gratuita e de
código aberto que pode ser baixada diretamente da Internet, no site
https://www.bloodshed.net/dev/devcpp.html. Alternativamente se necessário o site
https://repl.it/repls/DeepskyblueDualDos possui um compilador de C++ on line que
funciona sem necessidade de instalação.
https://repl.it/repls/DeepskyblueDualDos
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Disciplina CCT0637: Estrutura de Dados
Avaliação
• O processo de avaliação será composto 
de três etapas: 
• Avaliação 1 (AV1) 
• Avaliação 2 (AV2) 
• Avaliação 3 (AV3) 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
1. Agregados Homogêneos e Heterogêneos 
• Introdução: 
✓Um programa de computador envolve a definição de um algoritmo para 
a resolução de um problema. 
✓Um algoritmo é representado através de expressões simbólicas de modo 
a descrever e a encontrar a solução de problemas do mundo real. 
✓Um algoritmo representa uma sequência finita e não ambígua de 
instruções elementares bem definidas, conducente à solução de um 
determinado problema, cada uma das quais pode ser executada 
mecanicamente numa quantidade finita de tempo.
Programa = Algoritmo + Estruturas de Dados (Nicholas Wirth - Criador da 
Linguagem Pascal) 
Implementação concreta de algoritmos abstratos em uma determinada 
linguagem de programação com a utilização de estruturas de dados 
compatíveis ao problema. 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Algoritmos
• Sequência de instruções organizadas e 
sistematizadas utilizadas para resolver um 
problema; 
• Um algoritmo não representa, 
necessariamente, um programa de 
computador, e sim os passos necessários 
para realizar uma tarefa. 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Algoritmos
• Um algoritmo é uma ferramenta para resolver um problema computacional 
bem especificado (bem definido). 
• Os algoritmos são amplamente utilizados na área da computação, seja na 
elaboração de soluções voltadas à construção de interfaces, software e 
hardware, seja no planejamento de redes. 
• Os algoritmos também constituem uma parte importante da documentação 
de sistemas, pois descrevem as tarefas a serem realizadas pelos programas.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Importância dos algoritmosna Computação 
• O uso/desenvolvimento de algoritmos “eficientes” é desejável em vários 
contextos:
✓projetos de genoma de seres vivos
✓rede mundial de computadores 
✓sistemas de informação geográfica 
✓comércio eletrônico 
✓planejamento da produção de indústrias 
✓logística de distribuição
© Cid, Cândida, Orlando 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Algoritmos e Tecnologia
• O avanço da tecnologia permite a construção de 
máquinas cada vez mais rápidas. Isto possibilita que 
um algoritmo para determinado problema possa ser 
executado mais rapidamente. 
• Paralelamente a isto, encontra-se 
projetos/desenvolvimento de algoritmos 
“intrinsecamente mais eficientes” para um 
determinado problema. Isto leva em conta apenas 
as características inerentes ao problema, 
desconsiderando detalhes de software/hardware. 
© Cid, Cândida, Orlando 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Algoritmos (modo Recursivo) – Paradígma de 
programação
• A representação, a descrição de um conceito faz referência ao próprio 
conceito.
São elementos fundamentais de uma definição recursiva: o caso-base 
(base da recursão) e a reaplicação da definição. 
As linguagens de programação funcionais têm, na recursão, seu 
principal elemento de repetição. 
No que diz respeito ao poder computacional, as estruturas iterativas e 
recursivas são equivalentes. 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Estrutura de Dados (ED)
• A disciplina de "Estrutura de Dados" estuda as possíveis alternativas que um
programador pode ter na hora de escolher a estrutura de dados adequada para
determinada necessidade, considerando um melhor gerenciamento de memória e o acesso
mais rápido à informação;
• Trata do armazenamento e manipulação de dados em memória principal.
• Uma estrutura de dados retrata as relações lógicas existente entre os dados; Forma de
organização dada às informações de forma a permitir o acesso a elas por um algoritmo
durante as operações de manipulação que ocorrem na resolução de um problema.
• O estudo de estrutura de dados é necessariamente orientado para uma aplicação, ou
seja é um estudo bastante prático;
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Estrutura de Dados (ED)
• Programadores precisam de conhecimento profundo de técnicas de programação;
• Usuários precisam reconhecer requisitos dos softwares nas áreas onde atuam e um
conhecimento adequado de programação lhes permite tirar proveito do acesso configurável
que as aplicações oferecem.
• Ao escolher uma estrutura de dados devemos considerar alguns elementos importantes:
• De que forma essa estrutura de dados será utilizada?
• Que métodos de manipulação essas estruturas nos oferecem?
• Que tipo de alocação de memória ela utiliza?
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Estrutura de Dados (ED)
• A estrutura de dados é um meio para armazenar e organizar dados com o objetivo de 
facilitar o acesso e as modificações. 
• As ED representam de modo simbólico entidades e objetos do mundo real e definem a 
parte estática de um algoritmo. 
• A manipulação das ED através de declarações e instruções precisas de controle definem 
a parte dinâmica de um algoritmo. 
• A ED diminui sensivelmente a complexidade da representação dos dados, como também 
tende a criação de programas com maior desempenho. 
• As EDs têm um papel importante no desenvolvimento de software permitindo criar 
programas com uma representação dos dados mais relevante de um problema real, de 
forma mais clara e limpa.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Estrutura de Dados (ED)
• Uma ED retrata as relações lógicas existente entre os dados. Forma de organização dada 
às informações de forma a permitir o acesso a elas por um algoritmo durante as operações 
de manipulação que ocorrem na resolução de um problema. 
• Ao escolher uma estrutura de dados devemos considerar alguns elementos importantes:
✓De que forma essa ED será utilizada? 
✓Que métodos de manipulação essas ED nos oferecem? 
✓Que tipo de alocação de memória da ED utiliza?
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Estrutura de Dados (ED)
• Estruturas de dados e algoritmos estão intimamente ligados: 
✓não se pode estudar estruturas de dados sem considerar os algoritmos associados 
a elas, 
✓assim como a escolha dos algoritmos em geral depende da representação e da 
estrutura dos dados. 
• Para resolver um problema é necessário escolher uma abstração da realidade, em geral 
mediante a definição de um conjunto de dados que representa a situação real. 
• A seguir, deve ser escolhida a forma de representar esses dados.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Complexidade de Algoritmos
• A análise de algoritmo fornece uma medida objetiva de desempenho proporcional ao 
tempo de execução do algoritmo. 
• Queremos projetar/desenvolver algoritmos eficientes (rápidos). 
• Mas o que seria uma boa medida de eficiência de um algoritmo? 
• Não estamos interessados em quem programou, em que linguagem foi escrito e nem 
qual a máquina foi usada!
• Queremos um critério uniforme para comparar os diversos algoritmos. 
• O fato de um algoritmo resolver um dado problema não significa que seja aceitável na 
prática.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Projetos de Algoritmos x Projetos de Software
• O Projeto de algoritmos é um método para identificar e analisar um problema da vida 
real e desenvolver uma solução de modo eficiente. 
• Etapas: 
1. Definição do problema 
2. Desenvolvimento de um modelo 
3. Especificação do algoritmo 
4. Projetando um algoritmo 
5. Verificação da exatidão do algoritmo 
6. Análise do algoritmo 
7. Implementação do algoritmo 
8. Teste de programa 
9. Preparação da documentação.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
ED – Escolha de representação dos dados
• A escolha da representação dos dados é determinada, entre outras, pelas operações a 
serem realizadas sobre os dados. 
• Considere a operação de adição: 
• A representação por dígitos decimais requer regras relativamente complicadas, as quais 
devem ser memorizadas. 
• Entretanto, quando consideramos a adição de grandes números é mais fácil a 
representação por dígitos decimais (devido ao princípio baseado no peso relativo da 
posição de cada dígito).
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
ED – Tipos de Dados
• Tipo de dado = conjunto de valores (domínio) que uma variável pode assumir e um 
conjunto de operações que podem ser aplicadas sobre ele. 
✓Tipos de dados básicos (tipos primitivos): 
- Inteiro, caractere, decimal, booleano, etc. 
- Não é possível decompor um tipo primitivo em partes menores (eles são 
indivisíveis) 
✓Tipos de dados estruturados: 
-Vetores,matrizes, registros. 
- Uma variável que pode agregar mais de um valor. 
- Agregados de valores de tipos primitivos.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
ED – Tipos de Dados
• Os tipos de dados básicos ou primitivos ou simples são grupos de valores indivisíveis 
(como os tipos básicos integer, boolean, char e real da linguagem Pascal). 
✓Exemplo:
uma variável do tipo boolean pode assumir o valor verdadeiro ou falso, e nenhum outro 
valor. 
• Os tipos estruturados em geral definem uma coleção de valores simples (homogênea), ou 
um agregado de valores de tipos diferentes (heterogênea).
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
ED – Tipos de Dados
• As EDs podem ser divididas em duas formas: 
✓homogênea (vetores e matrizes). 
✓heterogênea (registros). 
• As estruturas homogêneas visam armazenar dados de um único tipo, como por exemplo, 
strings, booleanos, inteiros ou reais. 
• As EDs homogêneas são empregadas em situações onde as informações podem ser 
organizadas em um único tipo de dados, normalmente utilizando vetores e matrizes. 
• As EDs são heterogêneas são usadas na composição de diversos tipos de dados 
(registros).
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Tipo Abstrato de Dado (TAD)
• TAD = Modelo matemático, acompanhado das operações definidas sobre o modelo. 
• Os tipos abstratos de dados são formados por um conjunto de tipos de dados e um 
conjunto de procedimentos (funções) que podem ser aplicadas sobre este conjunto de 
tipos de dados. 
• Tipos Abstratos de Dados: 
✓Especificam conceitualmente os dados (sua organização física e lógica).
✓Definem operações para manipulação da estrutura.
✓Geralmente não são fornecidos diretamente pela linguagem de programação.
✓Exemplos: Fila, Lista, Pilha, Árvore, etc.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Tipo Abstrato de Dado (TAD)
• Os TAD’s são utilizados extensivamente como base para o projeto de algoritmos. 
• A implementação do algoritmo em uma linguagem de programação específica exige a 
representação do TAD em termos dos tipos de dados e dos operadores suportados. 
• A representação do modelo matemático por trás do tipo abstrato de dados é realiza da 
mediante uma estrutura de dados. 
• Podemos considerar TAD’s como generalizações de tipos primitivos e procedimentos 
como generalizações de operações primitivas.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Variável composta homogênea
• Estrutura de dados composta pelo mesmo tipo. 
• Vetores e Matrizes. 
• Tipos Char, int, double, boolean. 
• Vetor: um arranjo unidimensional de dados do tipo básico, com um mesmo identificador 
(nome), mas diferenciado pela sua posição (índice) dentro do vetor. Acesso aleatório aos 
seus elementos, por intermédio de índices.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Variável composta homogênea - Vetor
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor – atribuição e acesso
• Para atribuir um valor x numa determinada posição do vetor, escreve-se:
✓nome_do_vetor [posição] = valor; 
• Exemplo: notas[0]= 4; ou notas = {4, 7, 5}; 
• O índice zero indica a primeira posição no vetor. 
A expressão notas[0] referencia a posição de memória correspondente ao elemento 
de índice zero no vetor. 
• Para somar os primeiros três elementos e armazenar o valor calculado no quarto 
elemento, escrevemos: 
• notas[3]= notas[0] + notas[1] + notas[2];
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor - declaração
• Uma vez que as variáveis que compõem o vetor têm o mesmo nome, o que 
distingue cada uma delas é um índice, que referencia sua localização dentro da 
estrutura. 
• Os Vetores são matrizes de 1 dimensão. 
• <TIPO> <VARIÁVEL><[TAMANHO]><;> 
• tipo variável [tamanho]; 
• Exemplo: int notas[10]; 
• O TAMANHO precisa ser necessariamente um número inteiro e constante. 
Ele não pode ser resultado de uma expressão.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor - declaração
• O nome da variável também é chamado de uma expressão de referência de 
memória, ou simplesmente de referência de memória. 
• Com os vetores, temos uma nova expressão de referência de memória: o operador 
de índice [ ]. Ele utiliza uma referência de memória (normalmente uma variável do 
tipo vetor) e um número inteiro (o índice). 
• Ele retorna uma referência para o elemento correspondente ao índice. 
• O tipo do valor retornado é o mesmo tipo da declaração do vetor
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor - declaração
Uso de Constantes para definir o tamanho de um vetor
#define TAM_MAX 5 
double VetReais[TAM_MAX]; 
for(i=0<TAM_MAX; i++) 
VetReais[i] = TAM_MAX - i; // coloca 5,4,3,2,1 no vetor
Copiar os dados de um vetor para outro
#define TAM_MAX 5 
double VetReais[TAM_MAX], Copia[TAM_MAX]; 
for(i=0; i<TAM_MAX; i++) 
VetCopia[i] = VetReais[i]; // Copia os dados de um vetor para outro
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor – exemplo
• É muito comum utilizar a estrutura de repetição 
“for” para percorrer todos os elementos de um 
vetor. 
• EX1- “Construa um programa que declare um 
vetor de inteiros com 12 elementos e o inicialize 
com números fornecidos pelo usuário, através da 
entrada padrão”.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Vetor – Leitura dos dados
#define TAM_MAX 10 
double Vet1[TAM_MAX]; 
for(i=0; i<TAM_MAX; i++) 
cin >> Vet1[i];
Encontrar o maior valor dentro de 
um vetor 
#define TAM_MAX 10 
double Vet1[TAM_MAX]; 
double Maior; 
for(i=0; i<TAM_MAX; i++) 
cin >> Vet1[i];// le os dados 
Maior = Vet1[0]; // assume que o primeiro é o maior
for(i=0; i<TAM_MAX; i++) 
if Vet1[i] > Maior 
Maior = Vet1[i]; 
cout << "O maior elemento é: " << Maior << endl; 
Pergunta: Como fazer a mesma busca e imprimir também a posição do dado 
dentro do vetor. Tente fazer isto usando apenas 1 variável. 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Matrizes
• Uma matriz é um arranjo de várias dimensões de dados do tipo básico, com um 
mesmo identificador (nome), mas diferenciado pelas suas posições (índices) dentro da 
matriz.
• Uma matriz é uma coleção de variáveis de mesmo tipo, acessíveis com um único
nome e armazenados contiguamente na memória.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Matrizes
• EX2 - “Construa um programa que 
declare uma matriz denúmeros reais 
que permita fazer a leitura de 3 notas 
para 5 estudantes. Inicialize a matriz 
com as notas fornecidas pelo usuário, 
através da entrada padrão”.
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Exercícios – aula 01
1 – elabore um programa em C++ que preencha um vetor com os número de 1 a 5.
2 - elabore um programa em C++ que preencha um vetor com os número de 5 a 1.
3 - elabore um programa em C++ que preencha um vetor com os número de 5 a 1, 
usando uma constante para definir o tamanho do vetor.
4 - elabore um programa em C++ que preencha um vetor com os número de 5 a 1, 
realize a cópia de todos os elementos deste vetor para um segundo vetor.
5 - elabore um programa em C++ que copie os dados de um VET1 para as primeiras 5 
posições do vetor COPIA e VET2 para as outras 5.
6 - Crie um programa em C++ que peça 10 números, armazene eles em um vetor e diga 
qual elemento é o maior, e seu valor.
7 - Crie um programa em C++ que peça 10 números, armazene eles em um vetor e diga 
qual elemento é o maior, qual é o menor e quais são os seus valores.
8 - Crie um aplicativo em C++ que peça um número inicial ao usuário, uma razão e 
calcule os termos de uma P.G (Progressão Geométrica), armazenando esses valores em 
um vetor de tamanho 10. 
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Exercícios – aula 01
9 – Crie um tabuleiro de jogo da velha, usando uma matriz de caracteres (char) 3x3, 
onde o usuário pede um número da linha (1 a 3) e o da coluna (1 a 3). A cada vez que o 
usuário entrar com esses dados, colocar um “X” ou “0” no local selecionado.
10 – Criar um programa que checa se o número é palíndromo. Número palíndromo é 
aquele que, se lido de trás para frente e de frete para trás, é o mesmo. Exemplos: 2112, 
666, 2442 etc.
11 - Ano: 2014 / Banca: CESGRANRIO / Órgão: CEFET-RJ / Prova: Técnico de 
Laboratório ? Informática Considere o seguinte algoritmo, descrito em pseudocódigo, 
que manipula um vetor de oito posições, indexadas de 1 a 8
Ao final da execução, o conteúdo do vetor M será:
a) 10, 20, 30, 40, 50, 60, 70, 80 
b) 40, 10, 80, 20, 70, 30, 60, 50 
c) 40, 30, 20, 10, 80, 70, 60, 50 
d) 50, 60, 70, 80, 10, 20, 30, 40 
e) 80, 70, 60, 50, 40, 30, 20, 10
2019.2
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
Professor: Ediberto Mariano - Estrutura de Dados - Aula 01
2020.1
Exercícios – aula 01
12 – Ano: 2013 / Banca: CESPE / Órgão: SERPRO / Prova: Analista - Suporte Técnico
Segundo o pseudocódigo abaixo, um vetor de 100 números é lido e, em seguida, é 
montado um segundo vetor a partir dos valores do primeiro vetor multiplicados por 3.
início 
VET1,VET2 : vetor [1..100] numérico 
CONTADOR : numérico 
para CONTADOR de 1 até 100 faça 
leia "Digite um número: ",VET1[CONTADOR] 
VET2[CONTADOR] = (VET1[CONTADOR] * 3) 
fim-para 
fim
( ) Certo ( ) Errado

Outros materiais