Aula 11 - Registros

Estrutura de dados heterogênea, capaz de armazenar diferentes tipos de informações, possuem uma coleção de campos, cada um, com seu próprio tipo de dados.

1 - Registros (Tipo)

Os registros são um tipo de estrutura de dados heterogêneas, ou seja, são capazes de armazenar diferentes tipos de informações. Desta forma os tipos de dados podem ser combinados, gerando novos tipos de dados. Cada registro pode possuir uma coleção de campos, e cada campo pode ter o seu próprio tipo de dados.

A sintaxe de registros em VisuAlg é a seguinte:

Tipo

Nome_do_registro = registro

Nome_da_variavel: tipo_de_dados1
Nome_da_variavel: tipo_de_dados2

Fimregistro

Onde temos:

• Tipo: inicializa o registro;
• Nome_do_registro: nome do registro que se tornará o tipo da variável de registro;
• Nome_da_variavel: tipo_de_dados: nome das variáveis pertencentes ao registro e seus respectivos tipos de dados;
• Fimregistro: sinaliza o fim da estrutura de registro;

Por exemplo, um registro chamado conta, responsável por armazenar o nome do cliente, o saldo de sua conta e o número da conta. Normalmente seria necessário criar uma variável para cada informação do cliente, cada uma com seu tipo. Com o registro, isso pode ser feito de forma mais organizada.

Neste caso, o registro conta possui três campos:

• numero do tipo inteiro;
• saldo do tipo real;
• nome do tipo caractere.

A declaração deste registro é da seguinte forma:

Tipo

Ficha_cliente = Registro

numero: inteiro
saldo: real
nome: caractere

fimregistro

O registro funciona como um novo tipo de dados, da mesma forma que declarávamos uma variável do tipo inteiro, real, caractere ou qualquer outro tipo, agora declaramos uma variável do tipo do registro, da seguinte forma:

Conta: vetor[0..4] de Ficha_cliente

Neste exemplo, utilizamos o registro Ficha_cliente criado anteriormente.

Então, este vetor declarado Conta possui 4 posições e é do tipo “Ficha_cliente”, ou seja, cada posição do vetor é capaz de armazenar tudo o que está declarado no registro, que no caso, é o número, o saldo e o nome do cliente.

A leitura e escrita de um registro tem a seguinte sintaxe:

Leia(nome_da_variavel.variavel_do_registro)

Escreva(nome_da_variavel.variavel_do_registro)

Onde:

• nome_da_variavel: é a variável que possui o tipo do registro
• variavel_do_registro: é a variável que foi declarada dentro do registro.

Escute essa aula: Registros

Exemplo:

Leia(Conta[i].nome)

A atribuição de um registro pode ser feita da seguinte forma:

Conta[i].nome:=”Diego”

Neste exemplo, Conta é um vetor do tipo Ficha_cliente, que possui o campo nome.

Veja, e execute no VisuAlg o seguinte exemplo, que utiliza dessas estruturas.

Obs: o registro só está disponível na versão 3.0 do VisuAlg.

Exemplo1:

algoritmo "Exemplo_Registro_Cliente"

tipo

Ficha_cliente=registro

numero: inteiro
saldo: real
nome: caractere

fimregistro

var

Conta: vetor[1..4] de Ficha_cliente
i: inteiro

inicio

escreval ("Cadastro de clientes")
para i de 1 ate 4 faca

escreval ("entre com o nome do cliente ", i)
leia (Conta[i].nome)
escreval ("entre com o numero da conta do cliente ", i)
leia (Conta[i].numero)
escreval ("entre com o saldo inicial do cliente ", i)
leia (Conta[i].saldo)

fimpara
escreval ("Clientes cadastrados:")
para i de 1 ate 4 faca

escreval ("|Numero| Nome | Saldo |")
escreval (" ",Conta[i].numero, " ", Conta[i].nome, " R$: ", Conta[i].saldo)

fimpara

fimalgoritmo

Veja uma possível saída para o algoritmo:

Veja no seguinte GIF, um exemplo de um vetor de registros sendo preenchido:

Escute essa aula: Exemplo Registros

O seguinte exemplo, utiliza um registro de um produto de supermercado, ilustra a atribuição e alteração de um registro.

Exemplo2:

algoritmo "Exemplo_Registro_Produto"

tipo
Cadastro=registro

codigo: inteiro
preco: real
nome: caractere

fimregistro

var

Produto: Cadastro
novonome:caractere
novocodigo:inteiro

inicio

escreval ("Cadastro de produto de supermercado")
escreval ("entre com o nome do produto ")
leia (Produto.nome)
escreval ("entre com o código do produto ")
leia (Produto.codigo)
escreval ("entre com o preço do produto ")
leia (Produto.preco)
escreval ("Produto cadastrado:")
escreval ("|Codigo: ",Produto.codigo," |Nome: ",Produto.nome," |Preço: ",Produto.preco)
escreval ("alterar nome do produto")
escreval ("qual o novo nome do produto?")
leia (novonome)
Produto.nome:=novonome
escreval ("aumentando o preço do produto em 10%")
Produto.preco:=Produto.preco*1.1
escreval ("alterando o código do produto")
escreval ("Digite o novo código para o produto")
leia (novocodigo)
Produto.codigo:=novocodigo
escreval ("Informações do produto após alterações:")
escreval ("|Codigo: ",Produto.codigo," |Nome: ",Produto.nome," |Preço: ",Produto.preco)

fimalgoritmo

Veja uma possível saída para o algoritmo:

Escute essa aula: Exemplo Registros

Links Úteis

Canal: Pietro Martins De Oliveira

Site: Manual do VisuAlg 3.0

Referências

  • CORMEN, Thomas H. et al. Algoritmos: teoria e prática. Editora Campus, v. 2, p. 296, 2002.
  • FARRER, Harry; BECKER, Christiano Gonçalves. Algoritmos estruturados: programação estruturada de computadores. Rio de Janeiro: Guanabara, 2000.
  • NETO, Benedito; PEREIRA, Diego; FERNANDES, Sabrina. Apostila de Algoritmo - CEP - Centro De Educação Profissional "Tacredo Neves".
  • Manual do VisuAlg 3.0