Buscar

Registros em Algoritmos

Prévia do material em texto

Algoritmos II
2º Aula
Registros
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
• entender o conceito de registros;
• saber como programar variáveis de registros em um algoritmo.
Pessoal, para iniciarmos nossos estudos, nesta disciplina, vamos ver 
as estruturas de dados heterogêneas, chamadas também de Registros. Esse 
conceito permite que se agrupem dados de tipos diferentes, com alguma 
relação lógica entre eles em uma variável única, facilitando a estruturação 
dos dados do programa.
Esse é um tópico muito importante para a programação, pois além 
de ajudar na organização de variáveis, vários avanços na programação se 
basearam nesse conceito, como a Programação Orientada a Objetos (que 
você verá em outra disciplina).
Como sempre, se houver alguma dúvida, sempre utilizem as 
ferramentas de apoio que estão à sua disposição. 
Boa aula !
Bons estudos!
11
Seções de estudo
1 - Introdução aos Registros
1 - Introdução aos Registros
2 - Como criar e usar Registros
3 - Usando conjuntos dentro de um Registro
4 - Usando conjunto de registros
Você viu, na aula anterior, que podemos criar variáveis 
compostas por um tipo só, denominadas de variáveis 
compostas homogêneas. Porém, na vida real, várias situações 
envolvem dados de diversos tipos, por exemplo:
1. Uma pessoa pode ser identificada pelo seu nome 
(caractere), sua idade (inteiro), sua altura (real), pelo seu sexo 
(pode ser uma variável do tipo caractere) e se é um doador de 
órgãos (como os valores possíveis são sim ou não, podemos 
colocar do tipo lógico, para representar isso);
2. Uma reserva de um hotel pode ser identificada pelo 
nome do responsável (caractere), quantidade de hóspedes 
(inteiro), e a data de saída (caractere);
3. Um produto em uma loja tem um nome (caractere), 
valor (real) e a sua quantidade (inteiro).
Para abrigar essas possibilidades, podemos usar as 
variáveis compostas heterogêneas, também denominadas de 
registros. Um registro é como se fosse um tipo novo de dados 
a ser acrescido no algoritmo. Esse tipo define campos a serem 
preenchidos.
2 - Como criar e usar Registros
Como falamos, um registro é um tipo de dados em que você 
define quais campos serão compostos de uma variável desse tipo. 
Assim, na linguagem PORTUGOL, devemos declarar primeiro 
a estrutura do registro. Para isso, usamos a sintaxe:
tipo
<Identificador> = registro
 <lista de campos>
fimregistro
Atenção: O bloco tipo sempre deve ser declarado antes do bloco var.
Após declararmos o registro, podemos criar variáveis 
desse tipo, por meio do bloco var. Ao invés de usarmos um 
dos tipos primitivos de dados (inteiro, real, caractere e lógico), 
usamos o identificador do registro que criamos. 
Depois de criarmos as variáveis desse tipo, podemos usá-
las em nosso código, de forma similar que usamos em variáveis 
comuns. A única diferença que devemos atentar é que no 
registro, devemos indicar qual campo dele devemos usar. Para 
isso, devemos usar a sintaxe <nome da variável>.<nome do campo>.
A seguir, vamos mostrar alguns exemplos de uso de 
registros, dentro de um algoritmo.
Exemplo 1: Escreva um algoritmo que leia e apresente os 
dados de uma pessoa. Uma pessoa tem como dados seu nome, 
sua idade, sua altura, seu sexo (deve ser lido um caractere M 
ou F) e se a pessoa é doadora de órgãos ou não.
algoritmo “Exemplo Pessoa”
//declara aqui o tipo pessoa
tipo
 Pessoa = registro
 nome : caractere
 idade : inteiro
 altura : real
 sexo : caractere
 doadorOrgaos : logico
 fimregistro
var
 cidadao : Pessoa //Aqui declaramos uma variável do tipo 
Pessoa
inicio
 //leia os dados da pessoa
 leia(cidadao.nome)
 leia(cidadao.idade)
 leia(cidadao.altura)
 leia(cidadao.sexo)
 leia(cidadao.doadorOrgaos)
 //escreva os dados da pessoa
 escreva(cidadao.nome)
 escreva(cidadao.idade)
 escreva(cidadao.altura)
 escreva(cidadao.sexo)
 escreva(cidadao.doadorOrgaos)
fimalgoritmo
Exemplo 2: Escreva um algoritmo que leia e exiba na 
tela o nome, o seu preço e a quantidade em estoque de um 
produto na loja.
algoritmo “Exemplo Produtos”
//declara aqui o tipo Reg_Produtos
tipo
 Reg_Produtos = registro
 nome : caractere
 preco : real
 estoque : inteiro
 fimregistro
var
 produto : Reg_Produtos //Aqui declaramos uma variável do 
tipo Reg_Produtos
inicio
 //leia os dados do produto
 leia(produto.nome)
 leia(produto.preco)
 leia(produto.estoque)
 //escreva os dados desse produto
 escreva(produto.nome)
 escreva(produto.preco)
 escreva(produto.estoque)
fimalgoritmo
12Algoritmos II
3 - Usando conjuntos dentro de um 
Registro
Você pode usar além dos tipos primitivos, um conjunto 
(vetor ou matriz) de um tipo primitivo para ser um campo 
de um registro. Para isso, podemos usar a mesma notação 
que usamos para declarar um registro, só que aplicado a um 
campo de um registro. Supomos que queremos registrar as 
notas de um aluno durante quatro bimestres, além de seu 
nome. Para isso, podemos usar essa sintaxe:
tipo
Registro_Aluno = registro
 nome : caractere
 notas : vetor[1..4] de real
fimregistro
Para ler ou escrever dados em um campo composto de 
um vetor, usamos a mesma sintaxe para um campo comum, 
acrescentado pelo índice do elemento que devemos usar, 
assim como acessamos índices de um vetor ou matriz, que 
vimos em Algoritmos I.
leia(aluno.notas[1])
escreva(aluno.notas[1])
Vamos ver um exemplo para contextualizar essa situação.
Exemplo 3: Escreva um algoritmo que leia e escreva os 
dados de um aluno. Um aluno é identificado pelo seu nome, 
além das notas dos seus quatro bimestres.
algoritmo “Exemplo Alunos”
//declara aqui o tipo para o aluno
tipo
Registro_Aluno = registro
 nome : caractere
 notas : vetor[1..4] de real
fimregistro
var
aluno : Registro_Aluno //Aqui declaramos uma variável do tipo 
Registro_Aluno
 i : inteiro
inicio
 //leia os dados desse aluno
 leia(aluno.nome)
 para i de 1 ate 4 passo 1 faca
 leia(aluno.notas[i])
 fimpara
 //escreva os dados desse aluno
 escreva(aluno.nome)
 para i de 1 ate 4 passo 1 faca
 escreva(aluno.notas[i])
 fimpara
fimalgoritmo
4 - Usando conjunto de registros
Normalmente, quando escrevemos algoritmos 
envolvendo registros, usamos um conjunto de registros para 
armazenar uma quantidade de dados. Um conjunto funciona 
da mesma forma que um vetor ou uma matriz, mas ao invés 
de cada posição armazenar um dado, ela armazena uma série 
de campos que foram definidos previamente.
Figura 1 - Estrutura de um vetor de registros. Fonte: Acervo Pessoal.
Para criarmos um vetor ou uma matriz de registros, 
devemos primeiro declarar a estrutura do registro, da mesma 
forma que você aprendeu na seção II. Depois, você deve 
declarar uma variável como um vetor ou uma matriz, da mesma 
forma que você aprendeu na disciplina anterior. A diferença 
fica no fato de que, ao invés de declarar como um dos tipos 
primitivos, você declara essa variável como sendo do tipo que 
você definiu previamente.
Por exemplo, um registro para registrar alunos da seguinte 
estrutura:
//declara aqui o tipo para o aluno
tipo
Registro_Aluno = registro
 nome : caractere
 notas : vetor[1..4] de real
fimregistro
Podemos declarar um vetor para armazenar 8 alunos da 
seguinte forma:
var
 alunos : vetor[1..8] de Registro_Aluno
Para declarar uma matriz de 8 linhas e 8 colunas para os 
alunos, podemos usar a seguinte instrução:
 alunosM :vetor[1..8,1..8] de Registro_Aluno
Depois, para usar os dados do conjunto de registros, 
devemos primeiramente indicar o nome do conjunto, depois 
indicamos o(s) índice(s) do conjunto a ser acessado. Em 
seguida, colocamos um ponto e indicamos o nome do campo 
a ser acessado.
//lê o campo nome da primeira posição do vetor de alunos
leia(alunosV[1].nome)
//escreve na tela a segunda posição do campo notas da posição 2,2 da matriz de alunos.
escreva(alunosM[2,2].notas[2]) 
Para ilustrar melhor, vamos ver mais um exemplo:
Exemplo 4: Escreva um algoritmo que registre os dados 
de 10 praças de pedágio. Para cada praça, registre o nome da 
rodovia, o quilômetro da rodovia onde fica esse pedágio, a 
cidade onde fica esse pedágio e o seu valor. No final calcule o 
valor total dos pedágios neste trajeto.
algoritmo “Calcula Pedágios”
tipo
Registro_Pedagios = registro
 nome : caractere
 quilometro : inteiro
 cidade : caractere
 valor : real
fimregistro
var
 pedagios : vetor[1..10] de Registro_Pedagios
 i : inteiro
 valorTotal : real
13
inicio
 para i de 1 ate 10 passo 1 faca
 leia(pedagios[i].nome)
 leia(pedagios[i].quilometro)
 leia(pedagios[i].cidade)
 leia(pedagios[i].valor)
 fimpara
 valorTotal <- 0.0
 para i de 1 ate 10 passo 1 faca
 valorTotal <- valorTotal + pedagios[i].valor
 fimpara
 escreva(valorTotal)
 fimalgoritmo
Com esse exemplo, finalizamos aqui os nossos estudos 
sobre registro. Na próxima aula, você estudará sobre como 
modularizar os seus códigos, usando procedimentos e registros.
Retomando a aula
Chegamos ao final da nossa segunda aula, que tratamos 
sobre registros. Vamos recordar?
1 - Introdução aos Registros
Um registro é um tipo de dados criado pelo próprio 
programador, o qual são definidos campos a serem preenchidos. 
É como se fosse um vetor, mas ao invés de abrigar dados do 
mesmo tipo, abrigam dados de tipos diferentes. E ao invés de 
ser indexado por um número, um dado é identificado pelo 
nome de seu campo.
2 - Como criar e usar Registros
Devemos declarar os tipos dos registros antes da 
declaração das variáveis. Para cada tipo é definido um nome e a 
lista de campos que terá esse registro. Depois disso, declaramos 
uma variável como sendo do tipo do registro, da mesma forma 
que uma variável comum. Para acessar os campos dessa 
variável, indicamos o nome da variável e o nome do respectivo 
campo a ser acessado, separado por um ponto.
3 - Usando conjuntos dentro de um Registro
Vetores e matrizes podem ser campos de um registro. 
Para isso, o campo deve ser declarado da mesma forma que 
é declarado um vetor. Para acessar esses campos, deve ser 
colocado o índice do elemento que deseja acessar depois do 
nome do campo.
4 - Usando conjunto de registros
Finalmente, podemos criar vetores e matrizes de um 
registro. Essas variáveis devem ser declaradas como se fosse 
um vetor ou uma matriz comum. Para acessar, deve se colocar 
o índice do elemento que deseja acessar depois do nome da 
variável.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr 
Figueiredo de Oliveira. Algoritmos - lógica para desenvolvimento 
de programação. 2. ed. São Paulo: Érica, 2014.
VENANCIO, Claudio Ferreira. Desenvolvimento de 
Algoritmos: Uma Nova Abordagem. São Paulo: Érica, 2000.
FARRER, Harry; et. al. Algoritmos Estruturados. 3. ed. 
São Paulo: LTC, 1999.
Vale a pena
Vale a pena ler
Vale a pena acessar
REVISTABW. Criando Registros e Funções em Lógica 
de Programação.Revista Brasileira de Web, 2013. Disponível 
em: <http://www.revistabw.com.br/revistabw/criando-
registros-e-funcoes-em-logica-de-programacao/>. Criado 
em: 05 jan. 2013. Última atualização: 24 jul. 2015. Visitado 
em: 26 out. 2017
CARDOSO, José Victor. Algoritmo – Registros. 
Jvictor, 2010. Disponível em: < http://jvictorcardoso.
blogspot.com.br/2010/02/algoritmo-registros.html>. 
Acesso em: 26 out. 2017.
Minhas anotações

Continue navegando