A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.

Apresentações semelhantes


Apresentação em tema: "AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays."— Transcrição da apresentação:

1 AULA 09 PROGRAMAÇÃO I

2 Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays de Registros;

3 Registros 10/08/2010 Programação I 3 Registros São tipos estruturados com vários componentes denominados de campos. Os campos podem ser de diferentes tipos de dados (inteiro, real, literal,...). Declaração de Registros : lista-de-identificadores : record componentes end; lista-de-identificadores - são os nomes de identificadores que serão associados aos registros que se deseja declarar. componentes - são as declarações das variáveis (campos) do registro, separadas por ponto-e-vírgula. Dentro de um registro, os nomes de campo devem ser únicos.

4 Registros: Declaração 10/08/2010 Programação I 4 Exemplo de declaração: registro pessoa contendo os campos nome, idade e altura var pessoa: record nome: string[20]; idade: integer; altura: real; end; var pessoa: record nome: string[20]; idade: integer; altura: real; end; nomeidadealtura pessoa

5 Registros: Declaração usando Type 10/08/2010 Programação I 5 É possível também declarar um registro através de um tipo definido pelo usuário. Exemplo: type Tpessoa= record nome: string[20]; idade: integer; altura: real; end; var pessoa:Tpessoa; type Tpessoa= record nome: string[20]; idade: integer; altura: real; end; var pessoa:Tpessoa; Primeiro definimos o tipo contendo a estrutura do registro (ex: Tpessoa contendo os campos nome, idade e altura ). Depois declaramos a variável do tipo registro (ex: pessoa do tipo Tpessoa ).

6 Registros: Acesso aos dados 10/08/2010 Programação I 6 Para acessar os campos de um registro, utiliza-se a seguinte notação (referência qualificada):. Exemplo: var p1, p2: record nome: string[20]; idade: integer; altura: real; end; p1.nome p1.idade p1.altura

7 Registros: Acesso aos dados 10/08/2010 Programação I 7 Atribuição: o valor deve ser do mesmo tipo do campo p1.nome: = ‘Rosa’; {string} p1.idade:= 12;{integer} p1.altura:= 1.54;{real} O valor de um registro pode ser atribuído a outro registro. Por exemplo, a atribuição: p2 := p1; É equivalente a: p2.nome := p1.nome; p2.idade := p1.idade; p2.altura := p1.altura;

8 Registros: acesso aos dados 10/08/2010 Programação I 8 Entrada/saida: write(‘Nome da pessoa?’); readln( pessoa.nome); writeln(‘Nome: ’, pessoa.nome);

9 Registros: referência with 10/08/2010 Programação I 9 Utiliza-se a referência WITH com o objetivo de reduzir a referência qualificada. with pessoa do begin nome: = ‘Rosa’; idade:= 12; altura:= 1.54; end ; pessoa.nome: = ‘Rosa’; pessoa.idade:= 12; pessoa.altura:= 1.54;

10 Tipos x variáveis 10/08/2010 Programação I 10 Tipo: descritor Variáveis: instâncias concretas de um tipo Exemplo em Pascal: type VetorL = array [1..3] of boolean; { instanciação } var Vet1, Vet2: VetorL; T/F [1] [2] [3] tipo VetorL [1] [2] [3]

11 Composição de tipos 10/08/2010 Programação I 11 Tipos primitivos ou estruturados podem ser usados para definir novos tipos: arrays como campos de registros; registros como campos de registros; arrays onde os elementos são registros (arrays de registros); etc.

12 Array como campo de um Registro 10/08/2010 Programação I 12 Exemplo : var estudante = record nome: string[20]; notas: array[1..3] of real; end; Acesso às notas do aluno: o campo notas é um array, portanto precisa de índice. estudante.notas[1]:=7.5; estudante.notas[2]:=8.0; estudante.notas[3]:=5.0

13 Registro como campo de um Registro 10/08/2010 Programação I 13 Exemplo : type Tendereco = record rua : string[40]; numero : integer; CEP : real; end; var cadastro : record nome : string[30]; ender : Tendereco; CPF: real; sexo : char; nascimento : real; rg : real; end; Definição da estrutura para o endereço

14 Registro como campo de um Registro 10/08/2010 Programação I 14 Acesso aos campos do cadastro : writeln(cadastro.nome); writeln(cadastro.ender.rua); writeln(cadastro.ender.numero); writeln(cadastro.ender.CEP); writeln(cadastro.CPF); writeln(cadastro.Sexo); writeln(cadastro.nascimento); writeln(cadastro.rg);

15 Arrays de Registros 10/08/2010 Programação I 15 Exemplo : const max=30; type Taluno=record nome: string[20]; idade: integer; altura: real; end; var turma: array [1..max] of Taluno;

16 Arrays de Registros 10/08/2010 Programação I 16 Cada elemento do array turma armazena todos os dados de um aluno. Acesso aos dados: turma é um array, necessita de índice Exemplo: imprimindo dados dos alunos, sendo n o número de alunos armazenados no vetor For i:=1 to n do Begin Writeln(‘Nome: ‘,turma[i].nome); Writeln(‘Idade: ‘, turma[i].idade); Writeln(‘Altura: ‘, turma[i].altura:5:2); End;


Carregar ppt "AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays."

Apresentações semelhantes


Anúncios Google