Your SlideShare is downloading. ×
0
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Aula 6   aed - registros
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Aula 6 aed - registros

1,324

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,324
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
43
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Algoritmos eEstruturas de DadosAula 5 e Aula 604 e 11/09/2012Profª Ms. Engª Elaine Cecília GattoUnidade 5: Variáveis CompostasCurso de Bacharelado em Engenharia de ComputaçãoUniversidade do Sagrado Coração – USCBauru/SP
  • 2. Registros• Registros são variáveis compostas heterogêneas;• Conjunto em que os elementos não são do mesmo tipo;• Conjunto heterogêneo de dados;• Exemplo: formulário de inscrição em um evento. O formulário é composto por vários campos que você deve preencher. Esses campos são de tipos diferentes. Alguns são numéricos outros são textos e, assim por diante.• Um registro é composto por campos que são partes que especificam cada uma das informações que o compõe.• Uma variável do tipo registro é uma variável composta, pois engloba um conjunto de dados, e é heterogenea, pois cada campo pode ser de um tipo primitivo diferente.
  • 3. Registros• Exemplo: passagem de ônibus:• Número da passagem• Data• Origem• Destino• Horário• Poltrona• Plataforma• Idade• Nome do passageiro
  • 4. Registro//definição do tipo de registroTipo regEmbarque = registro inteiro: numPass, numPol, Idade; caracter: nome, data, origem, destino, hor;fimregistro;//declaração da variável composta do tipo registro definidoregEmbarque: Embarque;
  • 5. Registros//lendo todos os campos do registroleia(Embarque);//escrevendo todos os camps do registroescreva(Embarque);//lendo/escrevendo um campo especifico do registroleia(Embarque.numPoltrona);escreva(Embarque.Data);
  • 6. Registros//acesso genérico ao registro//ler todos os campos do registro;leia(Embarque);//acesso específico a um campo do registroescreva(Embarque.Idade);Se (Embarque.Idade < 18) então escreva(Embarque.Nome, “ é menor”);fimse;
  • 7. Registros• Registros também podem conter vetores e matrizes em sua composição. Exemplo: registro de estoque• Nome do produto• Código do produto• Preço do produto• Baixa: 1 ( ) 2 ( ) 3 ( ) 4 ( ) 5 ( ) 6 ( )• Sempre antes será necessário declarar o vetor/matrizes para somente depois declarar o registro
  • 8. Registros//definição do tipo vetortipo vDias = vetor [1..6] de inteiros;//definição do tipo registrotipo regProduto = registro inteiro: Cod; caracter: Nome; real: Preço; vDias: Baixa; //vetor definido antesfimregistro;//declaração da variável composta do tipo registroregProduto: Produto;
  • 9. Registros• Monte o registro para o seguinte formulário:• Nome do Produto• Código do Produto• Preço do Produto• Baixas: 1 2 3 4 5 6 1 2 3 4
  • 10. Registrostipo matDias = matriz [1..4, 1..6] de inteiros;tipo regProduto = registro inteiro: Cod; caracter: Nome; real: Preço; matDias: Baixa;fimregistro;regProduto: Produto;
  • 11. Registros• Acesso aos elementos de um registro com matriz• Exemplo 1: acessar quanto foi vendido do produto no terceiro dia da quarta semana: Produto.Baixa[4,3]• Exemplo 2: escreva o nome do produto, o código, o preço e as baixas da segunda semana: escreva(Produto.Nome); escreva(Produto.Código); escreva(Produto.Preço); para J de 1 até 6 faça escreva(Produto.Baixa[2,J]); fimpara;
  • 12. Registros• Exemplo 3: totalize por dia de semana todos os dias do mêspara j de 1 até 6 faça aux  0; para i de 1 até 4 faça aux  aux + Produto.Baixa[i,j] fimpara; escreva(j, “ totalizou ” , aux, “ baixas”);fimpara;
  • 13. Registros• Matrizes de Registros.• Exemplo: suponha que queremos manter um registro de informações relativas a todos os passageiros que embarcam em um onibus. Um registro é usado para identificar cada passageiro e, para agrupar todos eles, usamos o conjunto desses registros, ou seja, uma matriz de registros. Suponha que temos 44 lugares no onibus, numerados em sequencia de 1 a 44. Para unir esses registros criamos um vetor em que cada posição é um elemento do tipo registro.
  • 14. Registros 1 2 Número da passagem Assim, primeiro devemos definir a 3 Data estrutura dos registros, 4 Origem no momento da declaração. Somente 5 Destino depois definimos o 6 Horário vetor. 7 Poltrona 8 Plataforma 9 Idade . Nome do passageiro . .4344
  • 15. Registros//definindo o tipo registrotipo regEmbarque = registro inteiro: numPas, NumPol, Idade; caracter: Nome, Data, Origem, Destino, Hor;fimregistro;//definindo o tipo vetortipo vetEmbarque = vetor [1..44] de regEmbarque;//definindo a variável compostavetEmbarque: Onibus;
  • 16. Registros• Exemplo: declare um conjunto de registros que comporte as informações de estoque, mas que desta vez permita armazenar 500 produtos diferentes em um vetor.tipo matDias = matriz [1..4,1..6] de inteiros;tipo regProduto = registro inteiro: Cod; caracter: Nome; real: Preço; matDias: Baixa;fimregistro;tipo vetEstoque = vetor [1..500] de regProduto;vetEstoque: Produto;
  • 17. Registros• Qual é a baixa do décimo produto, da terceira semana do mês e do quarto dia da semana? Resposta: Produto[10].Baixa[3,4]• Imprima o total de movimentação do estoque para cada um dos 500 produtos:para n de 1 até 500 faça acm  0; para i de 1 até 4 faça para j de 1 até 6 faça acm  acm + Produto[n].Baixa[i,j]; fimpara; fimpara; escreva(Produto[n].Nome, acm);fimpara;
  • 18. Registros• Mostre quantos são e o nome de todos os passageiros que possuem menos de 18 anosQM  0;para i de 1 até 44 faça se(Onibus[i].Idade < 18) então início escreva(Onibus[i].Nome); QM  QM +1; fim; fimse;fimpara;escreva(“Total de menores de idade no onibus: ”, QM);
  • 19. Exercícios1. Defina um registro para um cheque bancário.2. Mostre a média de idade dos passageiros e o nome daqueles que estejam acima desta média.3. Uma biblioteca possui obras de ciências exatas, humanas e biomédicas, totalizando 1500 volumes, 500 de cada área. O proprietário resolveu informatizá-la e, para tal, agrupou as informações sobre cada livro do seguinte modo:• Código de catalogação• Nome da obra• Nome do autor• Doação• Editora• Número de páginas
  • 20. registrosa. Construa um algoritmo que declare tal estrutura e reúna todas as informações de todas as obras em três vetores distintos para cada áreab. Elabore um trecho de algoritmo que, utilizando como premissa o que foi feito no item a, realize uma consulta às informações. O usuário fornecerá código da obra e sua área; existindo tal livro, informa seus campos; do contrário, envia mensagen de aviso. A consulta repete-se até que o usuário introduza código finalizador como valor -1.

×