Beruflich Dokumente
Kultur Dokumente
Podem ser:
- Multidimensionais (Matrizes..)
Estruturas de Dados
Variáveis Compostas Homogêneas Unidimensionais
(Vetores ou Arrays)
1 2 3 4
Estruturas de Dados
Variáveis Compostas Homogêneas Unidimensionais
(Vetores ou Arrays)
Consistem em:
● Identificador – nome da variável
valores correspondentes.
Estruturas de Dados
Suponha uma estrutura que armazene a idade de 5 pessoas.
Valores ----------------->
5 10 15 3 20
Indices ------------------> 1 2 3 4 5
Variável simples :
<identificador> : <tipo de dado>
Programa Notas
var
aluno2,aluno3,aluno4,aluno5 : numerico
inicio
escreva("Informe a nota do 1º aluno: ");
leia (aluno1)
escreva("Informe a nota do 2º aluno: ")
leia (aluno2)
escreva("Informe a nota do 3º aluno: ")
leia (aluno3)
escreva("Informe a nota do 4º aluno: ")
leia (aluno4)
escreva("Informe a nota do 5º aluno: ")
leia (aluno5)
fim
Estruturas de Dados
Programa Notas
var
aluno:conjunto[1..5] de numerico
i, nota : numerico
inicio
para i de 1 até 5 passo 1 faça
escreva("Informe a nota do aluno: ")
leia (nota)
aluno[i] <-- nota
fimpara
*
para i de 1 até 5 passo 1 faça
escreva(aluno[i])
fimpara
fim
Estruturas de Dados
Declaração em Java
Vetores ou Arrays
int i [ ] = {1,2,3,4,5};
// cria um array i, de 5 elementos do tipo int e seu índice varia de 0 a 4
Estruturas de Dados
Manipulação de Vetores em Java
Atribuição:
N[0] = “João“;
notas[3] = 5;
valor[10] = 20.50;
JOptionPane.showMessageDialog(null,MeuVetor[i]);
}
Estruturas de Dados
Manipulação de Vetores em Java
Pesquisa
- Sequencial
- Binária
Ordenação
Estruturas de Dados
Passando vetores como parâmetros em procedimentos
}
Estruturas de Dados
Pesquisa Sequencial
● Mais otimizada
● O Vetor deve estar ordenado
●
Objetivo : diminuir o intervalo de busca
● Divide o vetor em partes menores para otimizar a pesquisa.
●
Compara o dado com o elemento central do vetor e caso
não encontre, diminui o intervalo de pesquisa a cada
iteração até encontrar. Se o dado for menor que o elemento
central, muda o intervalo para a primeira metade do vetor,
senão faz a busca na segunda metade.
Estruturas de Dados
Algoritmo Pesquisa_Binária
var
inicio,fim,meio,dado : numerico
achou : boolean
vet : conjunto[1.. 10] de numerico
inicio
vet = {0,1,2,3,4,5,6,7,8,9}
achou <-- falso
inicio <-- 1
fim <-- 10
Escreva ("Entre com o dado a ser pesquisado:")
Leia dado
enquanto ((inicio <= fim) e (achou == falso)) faça
meio <-- (inicio + fim) /2
se (dado = vet[meio]) então
achou <-- verdadeiro
senão
se (dado > vet[meio]) então
inicio <-- meio + 1
senão
fim <-- meio - 1
fim-se
fim-se
fim-para
se (achou) então
Escreva ("Achou o dado na posicao:" + meio)
senão
Escreva ("Não Achou")
fim-se
fim
Estruturas de Dados
Ordenação de Vetores
var
i,j,tam,aux : numerico
vet : conjunto[1..tam] de numerico
inicio
vet = {3,1,5,6,8,7,9,2,4,0}
para i de 1 até (tam - 1) faça
para j de (i + 1) até tam faça
se (vet[i] > vet[j]) então
aux <-- vet[i]
vet[i] <-- vet[j]
vet[j] <-- aux
fim-se
fim-para
fim-para
fim
var
i,j,tam : numerico
menor, i_menor : numerico
vet : conjunto[1..tam] de numerico
inicio
vet = {3,1,5,6,8,7,9,2,4,0}
para i de 1 até (tam - 1) faça
menor <-- vet[i]
i_menor <-- i
para j de (i + 1) até tam faça
se (vet[j] < menor) então
menor <-- vet[j]
i_menor <-- j
fim-se
fim-para
fim-para
fim
Estruturas de Dados
Variáveis Compostas Homogêneas Multidimensionais
(Matrizes, Tabelas ou Arrays multidimensionais)
Linhas 1
3
1 2 3 4
Estruturas de Dados
Declaração no Português estruturado
Aluno/Nota 1 2 3
1 Aluno1 5 7 8
2 Aluno2 9 5 6
3 Aluno3 8 7 9
4 Aluno4 4 5 8
Estruturas de Dados
Exemplo de Algoritmo com Matriz:
Programa Notas
var
notas :conjunto[1..4,1..3] de numerico
int i,j;
inicio
para i de 1 até 4 faça
para j de 1 até 3 faça
leia (nota[i,j])
fimpara
fimpara
fim
Estruturas de Dados
Exemplo de Algoritmo com Matriz:
Programa Notas
var
notas :conjunto[1..4,1..3] de numerico
int i,j;
inicio
para i de 1 até 4 faça
para j de 1 até 3 faça
escreva (nota[i,j])
fimpara
fimpara
fim
Estruturas de Dados
Declaração em Java
Atribuição:
N[0][2] = “João“;
notas[3][1] = 5;
valor[10][2] = 20.50;
JOptionPane.showMessageDialog(null,MeuVetor[i][j]);
}
}
Estruturas de Dados
Manipulação de Array de Arrays em Java
}
Estruturas de Dados
Registros :
tipo
<identificador> = registro
<lista de campos e seus tipos de dado>
fim-registro
var
<nome da variável> : <identificador>
Estruturas de Dados
Declaração no Português estruturado
Exemplo de Registros :
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
ALUNO : Cad_Aluno
Estruturas de Dados
Leitura de Registros no Português estruturado
Programa Leitura
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
ALUNO : Cad_Aluno
inicio
leia ALUNO.NOME
leia ALUNO.NOTA1
leia ALUNO.NOTA2
leia ALUNO.NOTA3
leia ALUNO.NOTA4
fim
Estruturas de Dados
Escrita de Registros no Português estruturado
Programa Leitura
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
ALUNO : Cad_Aluno
inicio
escreva ALUNO.NOME
escreva ALUNO.NOTA1
escreva ALUNO.NOTA2
escreva ALUNO.NOTA3
escreva ALUNO.NOTA4
fim
Estruturas de Dados
Implementação de Registros em Java : Classes
class Cad_Aluno {
String nome;
double nota1, nota2, nota3, nota4;
}
System.out.println(aluno.nome);
System.out.println(aluno.nota1);
System.out.println(aluno.nota2);
System.out.println(aluno.nota3);
System.out.println(aluno.nota4);
}
}
Estruturas de Dados
Conjunto de Registros ou Array de Registros
Exemplo :
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
vet_aluno : conjunto[1..10] de Cad_Aluno
Estruturas de Dados
Leitura de Arrays de Registros no Português estruturado
Programa Leitura
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
vet_ALUNO : conjunto [1..10] de Cad_Aluno
i : numerico
inicio
para i de 1 até 10 faça
leia vet_ALUNO[i].NOME
leia vet_ALUNO[i].NOTA1
leia vet_ALUNO[i].NOTA2
leia vet_ALUNO[i].NOTA3
leia vet_ALUNO[i].NOTA4
fim-para
fim
Estruturas de Dados
Escrita em Arrays de Registros no Português estruturado
Programa Escrita
tipo
Cad_Aluno = registro
NOME : Literal
NOTA1: numerico
NOTA2 : numerico
NOTA3 : numerico
NOTA4 : numerico
fim_registro
var
vet_ALUNO : conjunto [1..10] de Cad_Aluno
i : numerico
inicio
para i de 1 até 10 faça
escreva vet_ALUNO[i].NOME
escreva vet_ALUNO[i].NOTA1
escreva vet_ALUNO[i].NOTA2
escreva vet_ALUNO[i].NOTA3
escreva vet_ALUNO[i].NOTA4
fim-para
fim
Estruturas de Dados
Implementação de Arrays de Registros em Java : Classes
class Cad_Aluno {
String nome;
double nota1, nota2, nota3, nota4;
}