• Nenhum resultado encontrado

Algoritmos e Estruturas de Dados I

N/A
N/A
Protected

Academic year: 2022

Share "Algoritmos e Estruturas de Dados I"

Copied!
18
0
0

Texto

(1)

Registros

Profa. Márcia Cristina Moraes Profa. Milene Selbach Silveira

Algoritmos e Estruturas de Dados I

Material para estudo:

Forbellone, A. e Eberspächer, H. (2005)

capítulo 4 (conceitos de variáveis compostas heterogêneas e EXERCÍCIOS)

(2)

Estruturas de Dados Homogêneas

Estruturas de dados homogêneas – como Vetores e Matrizes – armazenam vários

valores todos de um mesmo tipo.

(3)

Estruturas de Dados Heterogêneas

Estruturas heterogêneas permitem

armazenar em uma mesma variável diferentes tipos.

Elas são chamadas de registros:

Um registro pode ser composto de vários campos

(componentes ou elementos) e cada um deles pode

ser de um tipo diferente.

(4)

Estruturas de Dados Heterogêneas

Por exemplo, uma ficha de cadastro tem como componentes: nome, telefone,

endereço, cidade e cep.

Portanto uma ficha de cadastro é um registro com os campos: nome, telefone, endereço, cidade e cep. Os registros serão declarados como tipos semelhantes a inteiro, real, etc.

Tipo Ficha = registro Início

literal: nome inteiro: telefone

literal: endereço, cidade inteiro: cep

Fim

(5)

Estruturas de Dados

Heterogêneas: definição

A definição de um tipo registro ocorre da seguinte maneira:

Tipo nomedoTipoRegistro = Registro Início

tipo: campo1 tipo: campo2

...

tipo: campoN

Fim

(6)

Estruturas de Dados

Heterogêneas: exemplo

Tipo Ficha = Registro Início

literal: nome

inteiro: telefone

literal: endereço, cidade inteiro: cep

Fim

Tipo: palavra chave pré-definida Ficha: nome do tipo do registro

Registro: palavra chave pré-definida

nome, telefone, endereço, cidade, cep: campos do registro tipo Ficha

Quando se tem mais de um campo de um mesmo tipo, eles podem ser separados por vírgulas para definição.

(7)

Estruturas de Dados

Heterogêneas: utilização

Como foi declarado um tipo registro, deve-se criar uma variável deste tipo:

Ficha: Ficha1

Para acessar os campos de uma variável do tipo registro deve-se utilizar:

NomeVariável.Campo

Por exemplo, para acessarmos o campo nome da variável Ficha1 do tipo Ficha:

Ficha1.nome

(8)

Estruturas de Dados

Heterogêneas: exemplo

Para ler os dados da variável Ficha1 do tipo registro Ficha, seria:

Leia(Ficha1.nome) Leia(Ficha1.telefone) Leia(Ficha1.endereco) Leia(Ficha1.cidade)

Leia(Ficha1.cep)

Tipo Ficha = registro Início

literal: nome inteiro: telefone

literal: endereço, cidade inteiro: cep

Fim

<<no algoritmo, a declaração fica>>

Ficha: Ficha1

(9)

Estruturas de Dados

Heterogêneas Aninhadas

Para fazer com que o Tipo registro Ficha

possua um novo campo nasc que também é um tipo de registro com os campos dia, mês e ano, teria que ser criado um tipo registro data_Nasc e um campo do tipo data_Nasc:

Tipo Ficha = registro Início

literal:nome inteiro:telefone

literal:endereço, cidade inteiro:cep

dataNasc:nasc Fim

Tipo dataNasc = registro Início

inteiro:dia inteiro:mês inteiro:ano Fim

(10)

Estruturas de Dados

Heterogêneas Aninhadas

O tipo registro Ficha agora é uma estrutura heterogênea aninhada, pois é composta por outro tipo registro data_Nasc.

Tipo Ficha = registro Início

literal:nome inteiro:telefone

literal:endereço, cidade inteiro:cep

dataNasc:nasc Fim

Tipo dataNasc = registro Início

inteiro:dia inteiro:mês inteiro:ano Fim

(11)

Estruturas de Dados

Heterogêneas Aninhadas

Supondo que Ficha2 também é do tipo Ficha (Ficha: Ficha2)

Para acessar os dados do dia de nascimento do funcionário Ficha2 seria:

Ficha2.nasc.dia

Ficha2.nasc.mes

Ficha2.nasc.ano

(12)

Exemplo 1/5

O Tribunal Eleitoral necessita controlar os dados dos candidatos da última eleição.

Para isso…

Defina um tipo registro para o cadastro de candidatos a uma eleição composto dos seguintes campos: nome, endereço, partido, cargo e número de votos.

Tipo CadastroEleicao = registro Início

literal: nome,endereço, partido, cargo inteiro: votos

Fim

(13)

Exemplo 2/5

Faça um algoritmo que use uma variável do tipo registro criado e leia dados de um candidato para esta variável e os escreva.

Algoritmo Eleicoes

CadastroEleicao: candidato Início

Leia(candidato.nome) Leia(candidato.endereco) Leia(candidato.partido) Leia(candidato.cargo) Leia(candidato.votos)

Escreva(candidato.nome) Escreva(candidato.endereco) Escreva(candidato.partido) Escreva(candidato.cargo) Escreva(canditato.votos) Fim

Tipo CadastroEleicao= registro Início

literal: nome,endereço, partido, cargo inteiro: votos

Fim

(14)

Exemplo 3/5

Agora modifique o tipo registro para incluir o campo data da eleição que é um tipo registro composto dos campos dia, mês e ano.

Tipo CadastroEleicao = registro Início

literal: nome,endereço, partido, cargo inteiro: votos

data: dataeleicao Fim

Tipo data = registro Início

inteiro: dia inteiro: mes inteiro: ano Fim

(15)

Exemplo 4/5

Faça um algoritmo que use uma variável do tipo registro criado e leia e escreva os dados relativos ao dia da eleição.

Algoritmo Eleicoes

CadastroEleicao: eleicao Início

Leia(eleicao.dataeleicao.dia) Leia(eleicao.dataeleicao.mes) Leia(eleicao.dataeleicao.ano) Escreva(eleicao.dataeleicao.dia) Escreva(eleicao.dataeleicao.mes) Escreva(eleicao.dataeleicao.ano)

Fim Tipo CadastroEleicao = registro

Início

literal: nome,endereço,partido,cargo inteiro: votos

data: dataeleicao Fim

Tipo data= registro Início

inteiro: dia inteiro: mes inteiro: ano Fim

(16)

Exemplo 5/5

E se quiséssemos guardar dados de 200 candidatos? Que estrutura de dados poderíamos usar?

Um vetor!!

Algoritmo EleicoesComVetor CadastroEleicao: Varioscand[200]

Inteiro: i Início

Para i de 0 até 199 Início

Leia(Varioscand[i].nome, Varioscand[i].endereco, Varioscand[i].partido) Leia(Varioscand[i].cargo, Varioscand[i].votos, Varioscand[i].dataeleicao.dia) Leia(Varioscand[i].dataeleicao.mes, Varioscand[i].dataeleicao.ano)

Escreva(Varioscand[i].nome, Varioscand[i].endereco, Varioscand[i].partido) Escreva(Varioscand[i].cargo, Varioscand[i].votos, Varioscand[i].dataeleicao.dia) Escreva(Varioscand[i].dataeleicao.mes, Varioscand[i].dataeleicao.ano)

Fim

Fim Tipo CadastroEleicao = registro

Início

literal: nome,endereço,partido,cargo inteiro: votos

data: dataeleicao Fim

Tipo data= registro Início

inteiro: dia inteiro: mes inteiro: ano Fim

(17)

Exercício

A loja de decorações “Decor House” deseja informatizar seus processos e você foi contratado para realizar

este serviço. Sabendo que os produtos da loja são compostos por nome, código, preço e fornecedor, sendo o campo fornecedor composto de nome fantasia, CNPJ e endereço:

a) Defina os tipos necessários para esta informatização.

b) Crie um procedimento pesquisa que recebe um vetor de produtos cadastrados, um CNPJ e um preço e retorna por parâmetro outro vetor com todos os produtos fornecidos pelo fornecedor do CNPJ informado cujo preço seja maior ou igual ao preço informado.

c) No algoritmo principal faça a declaração das variáveis, uma chamada ao procedimento e a impressão dos nomes dos produtos do vetor retornado. Considere que existem 500 produtos na loja (faça a leitura dos dados dos mesmos antes de chamar o procedimento).

(18)

Bibliografia

Orth, Afonso Inácio. Algoritmos e Programação. Editora AIO. 2001.

Forbellone, A. e Eberspacher, H. Lógica de Programação: A Construção de

Algoritmos e Estruturas de Dados.

Makron Books, São Paulo, 3ª edição.

2005.

Referências

Documentos relacionados

As quinolonas já têm sido relatadas como seguras para o tratamento da otite, sem apresentar sinais de ototoxicidade nos animais (GOTTHELF, 2004), e não foram observados

Observações como esta ganham peso ainda maior quando se leva em conta que, num país desprovido de cultura científica, os veículos de comunicação representam o canal mais

É relevante, ainda, considerar que os termos “reciclagem/ formação” indiciam a vontade que o especialista, reconhecido como portador de um saber, tem de

Micro System Mini System Reprodutor de Imagens Caixas Acústicas Home Theater Fone de ouvido TVs e Monitores Periféricos de TVs ÍNDICE Net / Notebook Tablet Smartphone Soundbar

Para Rogers (1977) existem seis condições básicas para que ocorra o processo terapêutico, são elas: que duas pessoas estejam em contato psicológico; a primeira

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

No entanto, para aperfeiçoar uma equipe de trabalho comprometida com a qualidade e produtividade é necessário motivação, e, satisfação, através de incentivos e política de

Apesar de o mercado acionário brasileiro ter se tornado mais importante para a economia brasileira, sobretudo entre o período de 2002 para 2005 (Tabela 3), sua repre- sentatividade