Buscar

AL_Aula11

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 6 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 6 páginas

Prévia do material em texto

Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
 
Aula 11 
 
Conteúdo: 
15. Estruturas de dados heterogêneas 
 
15. Estruturas de Dados Heterogêneas 
Já vimos que os conjuntos de dados homogêneos (vetores e matrizes) armazenavam arranjos 
unidimensionais ou bidimensionais de elementos de um mesmo tipo, conforme a necessidade do algoritmo 
desenvolvido. Por exemplo, se quiséssemos armazenar as idades de um grupo de pessoas poderíamos 
declarar um vetor de elementos do tipo inteiro (idade: vet [1..N] de Inteiros) que estaria representando o 
conjunto de idades desse grupo de pessoas. 
Para os casos em que temos um conjunto de elementos que não são do mesmo tipo, necessitamos de uma 
estrutura que comporte esses tipos heterogêneos, e estaríamos definindo estruturas de dados heterogêneas, 
os registros. 
 
15.1. Registros 
Uma empresa vai fornecer o crediário para um cliente efetuar o pagamento em várias parcelas, mas para 
isso será necessário efetivar um cadastro dos dados mais relevantes para a localização do cliente, caso 
algum problema venha a ocorrer com os pagamentos. 
Estas informações seriam: Nome, Endereço, Número do CPF. 
A criação destas fichas cadastrais conterá dados com tipos diferentes, não sendo possível usar uma 
variável composta homogênea para guardar todos eles. Apesar disso, todos estes dados são relacionados, 
pois pertencem a uma mesma pessoa, ou seja, cada ficha possuirá diferentes dados (nome, endereço e 
CPF), mas todos eles são de um mesmo cliente, sendo todos estes dados relacionados logicamente a este 
cliente. 
Cada um dos dados que formam esta ficha é chamado de componente ou elemento do registro, sendo cada 
ficha completa identificada como um código de registro. Portanto, neste exemplo, só será possível 
conseguir um crediário após a efetivação do registro do cliente, sendo este registro formado pelos 
componentes nome, endereço e número do CPF. 
 FICHA: 0 (ou primeiro registro) 
NOME João Carlos da Silva caracter 
ENDEREÇO Rua São José, 576 caracter 
CPF 04568715898 inteiro 
↑ ↑ ↑ 
componentes dados armazenados tipo de dados 
 
 
 
Aula 11 - Prof. Cláudio Marques - Pág. 1 
Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
 
Esta empresa também não fará o crediário somente para um cliente, mas para os vários clientes que 
possuírem um perfil interessante para a mesma. Assim, será necessário criar uma estrutura de dados que 
possa armazenar vários dados (composta) de tipos diferentes (heterogênea). 
 
Estas estruturas (compostas heterogêneas) também são chamadas de registros e permitem uma 
organização eficiente no armazenamento e manipulação dos dados que estão implicitamente relacionados. 
 
As características dos registros são: 
 
• Pode conter vários registros com valores (número definido); 
• Os valores não precisam ser do mesmo tipo de dado; 
• Um registro possui um único nome (identificador); 
• Cada registro é acessível independentemente, sendo seus elementos também independentes de 
acordo com o seu nome significativo. 
 
Exemplo: 
 
Primeiro 
Registro[0] 
NOME: João Carlos da Silva 
ENDEREÇO: Rua São José, 576 
CPF: 045687158-98 
Segundo 
Registro[1] 
NOME: Maria Rita Amaral 
ENDEREÇO: Avenida Rui Barbosa, 234 apto. 31 
CPF: 132876851-01 
 
Observe o exemplo com dois registros cadastrados. A primeira ficha contém os dados do João Carlos da 
Silva, enquanto que a segunda possui os dados da Maria Rita Amaral. 
 
15.2. Declaração de registros em algoritmos 
Para que um registro seja acessado deve existir uma variável do tipo do registro declarada, sendo esta uma 
variável simples, um vetor ou uma matriz. 
Tipo 
<identificador> = registro 
 <lista dos campos e seus tipos> 
fim_registro 
Var 
<variáveis> : <identificador> 
Identificador é o nome do tipo registro e lista dos campos e seus tipos é a relação de variáveis que serão 
usadas como campos, bem como seu tipo de estrutura de dados, podendo ser real, inteiro, lógico ou 
caractere. 
Exemplo: 
Tipo 
TCARRO = registro 
marca, modelo : caractere 
ano: inteiro 
fim_registro 
Aula 11 - Prof. Cláudio Marques - Pág. 2 
Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
 
Var 
carro : TCARRO 
O registro declarado é denominado carro e possui três campos: os campos marca e modelo são do tipo 
caractere e o campo ano é do tipo inteiro. 
 
Marca carro.marca 
Modelo carro.modelo 
Carro 
Ano carro.ano 
 
15.3. Atribuição de valores a campos de registros nos algoritmos 
A atribuição de valores aos campos de um registro é feita referenciando-se a variável seguida do operador 
ponto (“.”) e o nome do campo que receberá o valor. 
variável.campo ← valor 
Exemplo: 
carro.marca ← “Volkswagen” 
carro.modelo ← “Gol” 
carro.ano ← “2008” 
 
15.4. Leitura e gravação em campos de registros nos algoritmos 
A leitura dos valores dos campos de um registro, bem como a escrita, são feitas através dos comandos 
“LEIA” e “ESCREVA”. 
LEIA variável.campo 
ESCREVA variável.campo 
Exemplo: 
LEIA carro.ano 
ESCREVA carro.ano 
 
Exemplo de algoritmo com variável registro: 
Algoritmo Médias 
 
Tipo 
 TAluno = registro 
Nummat: inteiro 
Nome: caractere 
Aula 11 - Prof. Cláudio Marques - Pág. 3 
Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
p1, p2, p3, media: real 
 fim_registro 
 
Var 
Aluno : TAluno 
 
Início 
 
 ESCREVA “Digite o número de matrícula do aluno:” 
 LEIA aluno.nummat 
 ESCREVA “Digite o nome do aluno:” 
 LEIA aluno.nome 
 ESCREVA “Digite a nota da 1ª prova:” 
 LEIA aluno.p1 
 ESCREVA “Digite a nota da 2ª prova:” 
 LEIA aluno.p2 
ESCREVA “Digite a nota da 3ª prova:” 
LEIA aluno.p3 
 
aluno.media ← (aluno.p1 + aluno.p2 + aluno.p3) / 3 
 
ESCREVA “O aluno ”, aluno.nome, “cujo codigo de matricula é ”, aluno.nummat, 
 “possui media”, aluno.media 
Fim 
 
15.5. Conjunto de registros (Vetores ou matrizes de registros) 
Em geral, não queremos guardar informações de um único carro ou de um único funcionário. Podemos 
também ter conjuntos de registros (carros, funcionários), referenciáveis por um mesmo nome e 
individualizados por índices. Ou seja, podemos utilizar vetores ou matrizes de registros. 
Considere o registro de uma mercadoria de uma loja: 
 
O conjunto de mercadorias da loja poderia ser agrupado numa variável composta heterogênea 
MERCADORIAS, onde cada elemento deste conjunto é um registro constituído por quatro componentes 
(CÓDIGO, NOME, PRECO e ESTOQUE). 
CÓDIGO NOME 7721 CAMISA AZUL 
PREÇO ESTOQUE 148200 2732 
Tipo 
TMercadoria = registro 
nome: caractere 
código, estoque: inteiro 
preço: real 
fim_registro 
Var 
mercadorias : vet [1..3] de Tmercadoria 
 
Aula 11 - Prof. Cláudio Marques - Pág. 4 
Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
 
Nome mercadorias[2].nome 
Código mercadorias[2].codigo 
Preço mercadorias[2].preco 
Estoque mercadorias[2].estoque 
Nome mercadorias[3].nome 
Código mercadorias[3].codigo 
Preço mercadorias[3].preco 
 
Estoque mercadorias[3].estoque 
Nome mercadorias[1].nome 
Código mercadorias[1].codigo 
Preço mercadorias[1].preco 
mercadorias 
Estoque mercadorias[1].estoque 
 
 
Exemplo de algoritmo com vetor de registros 
Algoritmo que lê o nome, idade, sexo (masculino, feminino) de n pessoas (onde n ≤ 40), imprime o nome 
das pessoas que têm mais de 30 anos e são do sexo feminino. 
Algoritmo Maior_de_Trinta 
 
Tipo 
TPessoa = registro 
Nome, sexo: caractere 
idade: inteiro 
fim_registro 
Var 
pessoas : vet [1..40] de TPessoa 
 n, I: inteiro 
 
Início 
 ESCREVA “Digite o número de pessoas: (≤40)” 
 LEIA n 
 Para i de 1 até n faça 
 ESCREVA “Digite o nome da”, i, “ª pessoa:” 
 LEIA pessoas[i].nome 
 ESCREVA “Digite o sexo (masculino, feminino):” 
 LEIA pessoas[i].sexo 
 ESCREVA “Digite a idade:” 
Aula 11 - Prof. Cláudio Marques - Pág. 5 
Universidade Veiga de Almeida 
Algoritmos e Linguagem I 
 LEIA pessoas[i].idade 
 Fim_para 
 i ? 1 
 Enquanto i ≤ n faça 
 Se (pessoas[i].idade >30) .e. (pessoas[i].sexo = “feminino”) então 
 ESCREVA pessoas[i].nome 
 Fim_se 
 i ? i +1 
Fim_enquanto 
Fim 
 
Aula 11 - Prof. Cláudio Marques - Pág. 6 
	Tipo
	Var
	Tipo
	Var
	Tipo
	Var
	Início
	Fim
	Tipo
	Var
	Tipo
	Var
	Início
	Fim

Outros materiais