25
Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO

Construcao de Algoritmos - Aula 13

Embed Size (px)

Citation preview

Page 1: Construcao de Algoritmos - Aula 13

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

2

Link Drive

bit.ly/ads-algoritmos

Page 3: Construcao de Algoritmos - Aula 13

3

Algoritmos

Page 4: Construcao de Algoritmos - Aula 13

4

Registros

Page 5: Construcao de Algoritmos - Aula 13

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

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

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

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

9

A versão 3 do Visualg NÃO suporta o tipo de dados literal.

Page 10: Construcao de Algoritmos - Aula 13

10

Estruturas: tipo

Page 11: Construcao de Algoritmos - Aula 13

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

12

• Registros• Estruturas: tipo

Exemplo

tipo cadastro = registro

nome: caractere idade: inteiro sexo: caractere fimregistro

Page 13: Construcao de Algoritmos - Aula 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.

Page 14: Construcao de Algoritmos - Aula 13

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

15

Estruturas: tipo<Declarando uma variável do tipo da estrutura>

Page 16: Construcao de Algoritmos - Aula 13

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

17

Estruturas: tipo<Acessando os campos de uma estrutura>

Page 18: Construcao de Algoritmos - Aula 13

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

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

20

Se quiséssemos atribuir valores aos campos da estrutura a

partir do teclado?

Page 21: Construcao de Algoritmos - Aula 13

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

22

Estruturas: tipo<Vetor de estruturas>

Page 23: Construcao de Algoritmos - Aula 13

23

De que forma você criaria um algoritmo para declarar quatro cadastros para quatro pessoas?

Page 24: Construcao de Algoritmos - Aula 13

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

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