Baixe Estruturas de Dados: Vetores e Matrizes em Algoritmos e Programação e outras Resumos em PDF para Lógica Matemática, somente na Docsity!
Algoritmos e Programação
Módulo V: Estruturas de Dados Homogêneas e Heterogêneas e Registros
Sumário
• Vetores
• Cadeias de Caracteres
• Matrizes
• Cubos
• Registros
• Exercícios
Sumário
• Vetores
• Cadeias de Caracteres
• Matrizes
• Cubos
• Registros
• Exercícios
Vetores
- Um vetor pode ser definido como uma estrutura de dados homogênea indexada utilizada para representar um conjunto de variáveis de um mesmo tipo, onde cada variável pode armazenar uma informação (valor) diferente de outra variável do conjunto
- Cada variável do conjunto possui um índice que representa sua posição na estrutura - Isso permite não só a individualização da variável, mas também acesso rápido
a ela
- Vetores possuem tamanho fixo (número de posições definida)
- Mas em algumas linguagens de programação vetores podem ter tamanho
dinâmico
4 Vetores
- Os vetores são classificados de acordo com sua dimensão - Unidimensional - Bidimensional - tridimensional - etc. 5 Vetores
- Pode-se comparar um vetor com um conjunto de caixinhas enumeradas
- Cada caixinha é capaz de armazenar um valor e possui um “endereço”
- O endereço da caixinha é o índice e serve para identificar qual a posição da
mesma no vetor
- No vetor unidimensional representado abaixo tem-se, por exemplo, armazenado no índice “5” o valor “4.7” - O primeiro índice de um vetor é sempre o “0”
Índice 0 1 2 3 4 5 6 7 8 9
Valor 8.5 7.6 9.3 10.0 6.3 4.7 8.8 9.0 3.6 9.
6
Vetores Unidimensionais – Exemplo vetorNum : vetor [50] de inteiro vetorLetra : vetor [23] de caractere
vetorReal : vetor [35] de real Para vetorNum^ (i^ = 0;^ i^ [<i] =^ Tam Tam;^ i^ = –^ i i+1)
Fim-Para
Para (i = 0; i < Tam; i = i +1)
vetorReal[i] = VetorNum[Tam – i – 1]
Fim-Para
10 Sumário
- Vetores
- Cadeias de Caracteres
- Matrizes
- Cubos
- Registros
- Exercícios 11 Cadeias de Caracteres
- Comumente conhecidas como strings , cadeias de caracteres podem ser vistas como vetores unidimensionais
- Toda cadeia de caractere é finalizada pelo caractere nulo “/0”
- Se se deseja armazenar uma cadeia de 19 caracteres, deve-se declarar um
vetor de, pelo menos, 20 posições
NOME DO CURSO
D E S E N V O L V I M E N T O W E B /
12
Cadeias de Caracteres
- A declaração e a referenciação de uma cadeia de caracteres obedece as
regras de declaração e referenciação de vetores unidimensionais, ou seja,
nomeVetor : vetor[n] de caractere
nomeVetor = “Desenvolvimento Web”
- As instruções usadas para acesso de variáveis podem ser normalmente
utilizadas para manipulação de vetores
Leia (nomeVetor)
Escreva (nomeVetor)
13 Sumário
- Vetores
- Cadeias de Caracteres
- Matrizes
- Cubos
- Registros
- Exercícios 14 Vetores Bidimensionais – Referenciação
- Vetores bidimensionais são também conhecidos como matrizes
- A referenciação, ou seja, o acesso aos índices de um vetor bidimensional deve adotar a seguinte sintaxe:
nome_do_vetor[índice][índice]
- Para, por exemplo, armazenar o valor 7.0 na primeira posição do vetor de notas seria necessário utilizar a instrução de atribuição
notas[0][0] = 7.
- A única diferença entre atribuição de de variáveis simples e vetores é que com vetores torna-se necessário indicar o índice da posição que deve ser acessada 15
Sumário
- Vetores
- Cadeias de Caracteres
- Matrizes
- Cubos
- Registros
- Exercícios 19 Vetores Tridimensionais – Referenciação
- Vetores tridimensionais são também conhecidos como cubos
- A referenciação, ou seja, o acesso aos índices de um vetor tridimensional deve adotar a seguinte sintaxe:
nome_do_vetor[índice][índice][índice]
- Para, por exemplo, armazenar o valor 7.0 na primeira posição do vetor de notas seria necessário utilizar a instrução de atribuição
notas[0][0][0] = 7.
- A única diferença entre atribuição de de variáveis simples e vetores é que com vetores torna-se necessário indicar o índice da posição que deve ser acessada 20 Vetores Tridimensionais – Exemplo vetorNum : vetor [50][50][50] de inteiro vetorLetra : vetor [23][20][10] de caractere vetorReal : vetor [35][35][35] de real
Para (i = 0; i < Tam; i = i +1)
Para (j = 0; j < Tam; j = j +1)
Para (k = 0; k < Tam; k = k + 1)
vetorNum[i][j][k] = Tam – i + j - k
Fim-Para
Fim-Para
Para Para (i = 0;(j = 0; i < j Tam< Tam; i ;= j i= +1) j +1) Fim-Para
Para (k = 0; k < Tam; k = k +1)
vetorReal[i][j][k] = VetorNum[Tam – i – 1][Tam – j – 1][Tam – k – 1]
Fim-Para
Fim-Para
Fim-Para
21
Vetores N-dimensionais – Referenciação
- A referenciação, ou seja, o acesso aos índices de um vetor n-dimensional
deve adotar a seguinte sintaxe:
nome_do_vetor[índice][índice][índice]...
- Para, por exemplo, armazenar o valor 7.0 na primeira posição do vetor de
notas seria necessário utilizar a instrução de atribuição
notas[0][0][0]... = 7.
- A única diferença entre atribuição de de variáveis simples e vetores é que
com vetores torna acessada -se necessário indicar o índice da posição que deve ser
22 Vetores 23 Sumário
- Vetores
- Cadeias de Caracteres
- Matrizes
- Cubos
- Registros
- Exercícios 24
Registros – Sintaxe e Declaração
registro
membros do registro
- Rótulo (opcional): atribui
um nome ao registro
Registro ponto: x y :: inteirointeiro Fim-Registro A declaração de um registro define um tipo
VAR
ab x :: pontointeiro Registro nome_do_registro: membro1 membro2:: Tipo_de_DadosTipo_de_Dados Fim-Registro 28 Registro – Referenciação
- A referenciação, ou seja, o acesso aos membros de um registro deve adotar a seguinte sintaxe:
nome_do_registro.membro
- Para, por exemplo, atribuir o valor 1.3 ao membro x de uma variável do tipo pontoXY seria necessário utilizar a instrução de atribuição
ab.x = 1.
29 Registro – Referenciação
- O operador de membro de registro “.” conecta o nome do registro e o nome do nome
- Para mostra as coordenadas do ponto ab , por exemplo, seriam necessárias as seguintes instruções
Imprima (ab.x)
Imprima (ab.y)
30
Registros – Aninhamento
- Registros podem ser aninhados
- A representação de um retângulo é um par de pontos que denota os vértices diagonalmente opostos
Registro retangulo:
pt1 : Registro ponto
pt2 : Registro ponto
Fim-Registro
31 Registros – Aninhamento
- Se uma variável for declarada usando o registro retangulo , tem-se
tela : Registro retangulo
- O acesso ao membro x do membro pt1 do registro ficaria
tela.pt1.x
32 Registro – Exemplo Algoritmo MostreDadosFunc VAR Registro funcionário: nome idade :: vetorinteiro [30] de caractere sexo altura :: caracterereal Fim-Registro func : Registro funcionario Início func.nome func.idade = “João”= 35 func.sexo = ‘M’ func.altura = 1. Imprima Imprima (“Nome: “)(func.nome) Imprima (“Idade: “) Imprima Imprima ((“Sexo: “)func.idade) Imprima Imprima ((“Altura: “)func.sexo) Imprima (func.altura) Fim-Algoritmo 33
Registros – Vetores de Registros
- Considere escrever um algoritmo para contar a ocorrência de determinadas palavras em um texto
- Torna-se necessário um vetor de caracteres para guardar os nomes e um vetor de inteiros para as quantidades
palavra_chave : vetor [20] de caracteres
quantidade : inteiro
- Esses vetores são paralelos, ou seja, serão usados juntos
- Isso sugere uma organização diferente – Um vetor de registros 37 Registros – Vetores de Registros Registro chave: palavra_chave : vetor [20] de caractere Fim-Registro^ quantidade^ :^ inteiro palavra_chave quantidade palavra_chave quantidade palavra_chave quantidade 0 ...^ N
tabelaChave : vetor[N] de Registro chave
38 Registros – Vetores de Registros Algoritmo ContarPalavras Registro chave: palavra_chave : vetor [20] de caractere Fim-Registro^ quantidade^ :^ inteiro VAR tam, i, j : inteiro tam tabelaChave = 100 : vetor [3] de Registro chave texto : vetor [tam] de caractere Início texto = “Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vel gravida nisl non eget elit dui volutpat nec egestas ultricies. Mauris. Cras euismod ut consectetur sem quis tortor sapien. Suspendisse pharetra elementum elit. Quisque. Curabitur ac mauris non eu est posuere efficitur elit bibendum, nec congue vitae lacinia massa. Aliquam leo. Mauris et lorem eu laoreet blandit lorem.euismod Proin. Ut ac mattis tristique et lectus justo sed. Mauris tristique lorem. Morbi tempus dui non erat, pretium non nulla eu dapibus, rutrum nulla finibus. Donec orci blandit. Suspendisse libero a sit tristique amet volutpat congue massa. Integer.. Duis sit” amet tabelaChave tabelaChave[0].[0].quantidade = 0palavra_chave = “justo” tabelaChave tabelaChave[1].[1].quantidade = 0palavra_chave = “consectetur” tabelaChave tabelaChave[2].[2].quantidade = 0palavra_chave = “ac” Para j = 0 (i = 0; i < 3; i = i + 1) Enquanto Se (tabelaChave (j < 100)[ Faça i].palavra_chave == texto[j]) Então tabelaChave[i].quantidade = tabelaChave[i].quantidade + 1 Fim^ Fim - Enquanto^ - Se Fim - Para Para Im prim a (i = 0; (^) i(“Quantidade de vezes palavra “) < 3; i = i + 1) Im prim a Im prim a ((“ apareceu foi: ”)tabelaChave[i].palavra_chave) Fim^ Im prim a - Para^ (tabelaChave[i].quantidade) Fim - Algoritm o 39
Sumário
- Vetores
- Cadeias de Caracteres
- Matrizes
- Cubos
- Registros
- Exercícios 40 Exercícios 41 Referências
- http://www.facom.ufu.br/~backes/gsi002/Aula01- AlgoritmosFluxogramas.pdf
- https://dicasdeprogramacao.com.br/o-que-sao-vetores-e-matrizes- arrays/
- ftp://ftp.sm.ifes.edu.br/professores/EduardoSilva/Engenharia/Algor itmos/Logica%20de%20Programacao%20-%20Apostila%20SITE.pdf 42