Disciplina: Constr. de Algoritmos e Prog. de Sistemas
Professor: Jeovane Reges
Caxias – MA
2016
ACULDADE DE CIÊNCIAS
E TECNOLOGIA DO
MARANHÃO
Link Drive
bit.ly/ads-algoritmos
2
3
Algoritmos
4
Registros
• Registros
• Introdução
• Exemplo:
• De que forma você criaria um algoritmo para
declarar quatro cadastros para quatro pessoas?
• Nome;
• Idade; e
• Sexo.
5
• 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
• 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
• 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
A versão 3 do Visualg NÃO suporta o
tipo de dados literal.
10
Estruturas: tipo
• 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.
• Registros
• Estruturas: tipo
 Exemplo
12
tipo
cadastro = registro
nome: caractere
idade: inteiro
sexo: caractere
fimregistro
13
Os nomes dos campos de uma estrutura
devem ser diferentes uns dos outros.
Porém, estruturas diferentes podem ter
membros com nomes iguais.
• 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:
15
Estruturas: tipo
<Declarando uma variável do tipo da estrutura>
• 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
17
Estruturas: tipo
<Acessando os campos de uma estrutura>
• 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
• 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
20
Se quiséssemos atribuir valores
aos campos da estrutura a
partir do teclado?
• Registros
• Estruturas: tipo
21
Exemplo...
algoritmo "Registro Atribuição"
tipo
cadastro = registro
nome: caractere
idade: inteiro
sexo: caractere
fimregistro
var
cad: cadastro
inicio
escreval("Nome: ")
leia(cad.nome)
escreval("Idade: ")
leia(cad.idade)
// demais campos..
fimalgoritmo
22
Estruturas: tipo
<Vetor de estruturas>
23
De que forma você criaria um algoritmo
para declarar quatro cadastros para
quatro pessoas?
• 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
• 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

Construcao de Algoritmos - Aula 13

  • 1.
    Disciplina: Constr. deAlgoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
  • 2.
  • 3.
  • 4.
  • 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 3do Visualg NÃO suporta o tipo de dados literal.
  • 10.
  • 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 doscampos 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:
  • 15.
    15 Estruturas: tipo <Declarando umavariável do tipo da estrutura>
  • 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
  • 17.
    17 Estruturas: tipo <Acessando oscampos de uma estrutura>
  • 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
  • 20.
    20 Se quiséssemos atribuirvalores aos campos da estrutura a partir do teclado?
  • 21.
    • Registros • Estruturas:tipo 21 Exemplo... algoritmo "Registro Atribuição" tipo cadastro = registro nome: caractere idade: inteiro sexo: caractere fimregistro var cad: cadastro inicio escreval("Nome: ") leia(cad.nome) escreval("Idade: ") leia(cad.idade) // demais campos.. fimalgoritmo
  • 22.
  • 23.
    23 De que formavocê 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