Download - Construcao de Algoritmos - Aula 13
![Page 1: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/1.jpg)
Disciplina: Constr. de Algoritmos e Prog. de SistemasProfessor: Jeovane Reges
Caxias – MA2016
ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
![Page 2: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/2.jpg)
2
Link Drive
bit.ly/ads-algoritmos
![Page 3: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/3.jpg)
3
Algoritmos
![Page 4: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/4.jpg)
4
Registros
![Page 5: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/5.jpg)
5
• Registros• Introdução• Exemplo:• De que forma você criaria um algoritmo
para declarar quatro cadastros para quatro pessoas?
• Nome;• Idade; e• Sexo.
![Page 6: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/6.jpg)
6
• Registros• Introdução• Exemplo:• De que forma você criaria um algoritmo
para declarar quatro cadastros para quatro pessoas?
algoritmo "Exemplo 01"var nome1, nome2, nome3, nome4 : literal idade1, idade2, idade3, idade4: inteiro sexo1, sexo2, sexo3, sexo4: caractereinicio // instruções lógicasfimalgoritmo
![Page 7: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/7.jpg)
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.
![Page 8: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/8.jpg)
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).
![Page 9: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/9.jpg)
9
A versão 3 do Visualg NÃO suporta o tipo de dados literal.
![Page 10: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/10.jpg)
10
Estruturas: tipo
![Page 11: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/11.jpg)
11
• Registros• Estruturas: tipo
Sintaxe: declarando um registro
tipo nome_registo = registro campo1: tipo1
campo2: tipo2
... campon: tipon
fimregistro
O tipo1..n pode ser qualquer tipo de dado válido em Portugol.
![Page 12: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/12.jpg)
12
• Registros• Estruturas: tipo
Exemplo
tipo cadastro = registro
nome: caractere idade: inteiro sexo: caractere fimregistro
![Page 13: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/13.jpg)
13
Os nomes dos campos de uma estrutura devem ser diferentes uns dos outros.
Porém, estruturas diferentes podem ter membros com nomes iguais.
![Page 14: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/14.jpg)
14
• Registros• Estruturas: tipo
Exemplo
tipo cadastro = registro
nome: caractere idade: inteiro sexo: caractere fimregistro
tipo aluno = registro
nome: caractere matricula: inteiro n1, n2: real fimregistro
Cadastro: Aluno:
![Page 15: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/15.jpg)
15
Estruturas: tipo<Declarando uma variável do tipo da estrutura>
![Page 16: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/16.jpg)
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
nome1, nome2, nome3, nome4 : literalidade1, idade2, idade3, idade4: inteirosexo1, sexo2, sexo3, sexo4: caractere
![Page 17: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/17.jpg)
17
Estruturas: tipo<Acessando os campos de uma estrutura>
![Page 18: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/18.jpg)
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
![Page 19: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/19.jpg)
19
• Registros• Estruturas: tipo
algoritmo "Registro Atribuição"tipo cadastro = registro
nome: caractere idade: inteiro sexo: caractere fimregistrovar cad: cadastroinicio cad.nome ← "Paulo" cad.idade ← 21 cad.sexo ← "M"fimalgoritmo
![Page 20: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/20.jpg)
20
Se quiséssemos atribuir valores aos campos da estrutura a
partir do teclado?
![Page 21: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/21.jpg)
21
• Registros• Estruturas: tipo
Exem
plo.
..
algoritmo "Registro Atribuição"tipo cadastro = registro
nome: caractere idade: inteiro sexo: caractere fimregistrovar cad: cadastroinicio escreval("Nome: ") leia(cad.nome)
escreval("Idade: ") leia(cad.idade) // demais campos..fimalgoritmo
![Page 22: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/22.jpg)
22
Estruturas: tipo<Vetor de estruturas>
![Page 23: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/23.jpg)
23
De que forma você criaria um algoritmo para declarar quatro cadastros para quatro pessoas?
![Page 24: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/24.jpg)
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
nome1, nome2, nome3, nome4 : literalidade1, idade2, idade3, idade4: inteirosexo1, sexo2, sexo3, sexo4: caractere
![Page 25: Construcao de Algoritmos - Aula 13](https://reader035.vdocuments.com.br/reader035/viewer/2022062412/58a53c621a28ab4f088b4935/html5/thumbnails/25.jpg)
25
• Registros• Estruturas: tipo
Exem
plo.
..
algoritmo "Vetor de Registros"tipo cadastro = registro
// campos do registro.. fimregistrovar cadastros: vetor [1..4] de cadastro i: inteiroinicio 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) fimparafimalgoritmo