O documento apresenta um algoritmo para declarar quatro cadastros para quatro pessoas utilizando registros e vetores de registros em Portugol. É mostrado como criar uma estrutura de dados para armazenar nome, idade e sexo e como acessar os campos de cada registro utilizando um vetor de registros para declarar os quatro cadastros de forma simplificada.
5. • Registros
• Introdução
• Exemplo:
• De que forma você criaria um algoritmo para
declarar quatro cadastros para quatro pessoas?
• Nome;
• Idade; e
• Sexo.
5
6. • Registros
• Introdução
• Exemplo:
• De que forma você criaria um algoritmo para
declarar quatro cadastros para quatro pessoas?
6
algoritmo "Exemplo 01"
var
nome1, nome2, nome3, nome4 : literal
idade1, idade2, idade3, idade4: inteiro
sexo1, sexo2, sexo3, sexo4: caractere
inicio
// instruções lógicas
fimalgoritmo
7. • Registros
• Introdução
• Os tipos de variáveis vistos até então podem ser
classificados em duas categorias:
Tipos básicos: inteiro, real, literal e etc.
Tipos homogêneos: vetores e matrizes.
• Dependendo do tipo de problema a ser
resolvido, esses tipos podem não ser suficientes.
• Por essa razão, em Portugol é possível criar
novos tipos de dados a partir dos tipos básicos.
7
8. • Registros
• Introdução
• Para criar um novo tipo de dado utilizamos as
estruturas tipo e registro.
• A ideia básica é criar apenas um tipo de dado
que contenha vários membros.
• Em outras palavras, a ideia é criar uma variável
que contém dentro de si outras variáveis.
Esse novo tipo de dados deve ser criado acima da
sessão var (versão >= 3 do Visualg).
8
9. 9
A versão 3 do Visualg NÃO suporta o
tipo de dados literal.
11. • Registros
• Estruturas: tipo
Sintaxe: declarando um registro
11
tipo
nome_registo = registro
campo1: tipo1
campo2: tipo2
...
campon: tipon
fimregistro
O tipo1..n pode ser qualquer tipo de dado válido em
Portugol.
12. • Registros
• Estruturas: tipo
Exemplo
12
tipo
cadastro = registro
nome: caractere
idade: inteiro
sexo: caractere
fimregistro
13. 13
Os nomes dos campos de uma estrutura
devem ser diferentes uns dos outros.
Porém, estruturas diferentes podem ter
membros com nomes iguais.
14. • Registros
• Estruturas: tipo
Exemplo
14
tipo
cadastro = registro
nome: caractere
idade: inteiro
sexo: caractere
fimregistro
tipo
aluno = registro
nome: caractere
matricula: inteiro
n1, n2: real
fimregistro
Cadastro: Aluno:
16. • Registros
• Estruturas: tipo
• A maneira como é declarada uma variável do tipo
registro, é igual aos tipos estudados.
nome_variavel: tipo_registro
• Ter de declarar quatro cadastros para quatro
pessoas diferentes:
• Utilizando um registro, o mesmo pode ser feito da
seguinte maneira: c1, c2, c3, c4: cadastro
16
nome1, nome2, nome3, nome4 : literal
idade1, idade2, idade3, idade4: inteiro
sexo1, sexo2, sexo3, sexo4: caractere
18. • Registros
• Estruturas: tipo
• Uma vez definida uma variável do tipo registro,
é preciso acessar seus campos para se trabalhar.
• O operador de acesso aos campos da estrutura
é o ponto (.).
• Sintaxe:
nome_variavel.campo
18
19. • Registros
• Estruturas: tipo
19
algoritmo "Registro Atribuição"
tipo
cadastro = registro
nome: caractere
idade: inteiro
sexo: caractere
fimregistro
var
cad: cadastro
inicio
cad.nome ← "Paulo"
cad.idade ← 21
cad.sexo ← "M"
fimalgoritmo
23. 23
De que forma você criaria um algoritmo
para declarar quatro cadastros para
quatro pessoas?
24. • Registros
• Estruturas: tipo
• Utilizando variáveis simples...
• Utilizando uma estrutura, o mesmo pode ser feito da
seguinte maneira:
c1, c2, c3, c4: cadastro
• Esse problema pode ser simplificado se utilizarmos o
conceito de vetores:
cadastros: vetor [1..4] de cadastro
24
nome1, nome2, nome3, nome4 : literal
idade1, idade2, idade3, idade4: inteiro
sexo1, sexo2, sexo3, sexo4: caractere
25. • Registros
• Estruturas: tipo
25
Exemplo...
algoritmo "Vetor de Registros"
tipo
cadastro = registro
// campos do registro..
fimregistro
var
cadastros: vetor [1..4] de cadastro
i: inteiro
inicio
para i de 1 ate 4 faca
escreva("Nome: ")
leia(cadastros[i].nome)
escreva("Idade: ")
leia(cadastros[i].idade)
escreva("Sexo [F/M]: ")
leia(cadastros[i].sexo)
fimpara
fimalgoritmo