sábado, 16 de maio de 2009

Atividade 03 - Vetor de apontadores

Um vetor de apontadores é uma estrutura formada por campos homogêneos que guardam registros. Cada registro possui um campo inteiro, o qual indica a posição do próximo registro no vetor. Esse campo inteiro (também chamado de apontador) permite a ordenação lógica dos registros no vetor, facilitando a operação de inclusão, já que não há necessidade de movimentação de registros.

A implementação de um vetor de apontadores em memória secundária é feita utilizando arquivos ordenados por links. Os mesmos registros do vetor são também utilizados no arquivo, com a diferença de que o campo inteiro (denominado link no arquivo) indica a posição física do próximo registro no arquivo.


1) Composição física dos registros
Os registros de arquivo ordenado por link devem possuir o campo link para indicar a posição do próximo registro, um campo chave usado para ordenar logicamente os registros e quaisquer outros campos de dados. Uma declaração geral seria:
TipoRegistro = registro
Chave: TipoChave;
Link: Inteiro;
{outros componentes}
fimRegistro


2) Exemplos
Considere o arquivo ordenado por link abaixo, cuja chave de ordenação é o campo nome:

Ind. ------- Nome -------------- Dados --------------------- Link
__________________________________________________
0 ----------------------------------- ------------------------- 3
1 ---------- Pedro ----------- {outros dados} ---------------- -1
2 ---------- Carlos -----------{outros dados} ----------------- 1
3 ---------- Ana -------------{outros dados} ----------------- 2
__________________________________________________

Percebe-se que o registro índice zero não é utilizado para armazenar dados do arquivo, mas somente o link do registro inicial. Dessa forma, quando uma busca é realizada no arquivo, o registro índice zero indica por qual registro começar, no caso o registro índice 3, cujo nome é Ana.

Ana por sua vez possui o link para o próximo registro, que no caso é Carlos. Este possui link para o próximo, Pedro, que possui link igual a -1, já que não há logicamente mais registros depois dele.

É importante notar que embora os registros estejam desordenados fisicamente, há uma ordenação lógica, graças ao campo link.


3) Descrição da operação de inclusão
Considerando o exemplo anterior, vamos incluir o registro a seguir:
Ind. ------- Nome -------------- Dados --------------------- Link
__________________________________________________
----------- Beto ----------- {outros dados} ----------------
__________________________________________________

Para incluir esse registro, deve-se realizar os seguintes passos:
  1. Inserir o registro no final do arquivo;
  2. Buscar no arquivo ordenado por link (através dos links) o primeiro registro cuja chave é maior que a chave do registro a ser incluído;
  3. Fazer o link do registro a ser incluído apontar para o índice do primeiro registro maior;
  4. Fazer o link do registro anterior ao primeiro maior apontar para o novo registro.
Dessa forma, incluir-se-ia Beto no final do arquivo. Depois seria necessário percorrer o arquivo, passando por Ana e encontrando Carlos como o primeiro maior. O link de Beto então apontaria para o índice de Carlos (no caso 2), e o link de Ana apontaria para o índice de Beto (no caso 4). O resultado seria:

Ind. ------- Nome -------------- Dados --------------------- Link
__________________________________________________
0 ----------------------------------- ------------------------- 3
1 ---------- Pedro ----------- {outros dados} ---------------- -1
2 ---------- Carlos -----------{outros dados} ----------------- 1
3 ---------- Ana -------------{outros dados} ----------------- 4
4 ---------- Beto ------------ {outros dados} ----------------- 2
__________________________________________________


4) Descrição da operação de exclusão:
A operação de exclusão pode ser de dois tipos: lógica ou física. Será descrita a exclusão lógica, já que normalmente antes de uma exclusão física são realizadas várias exclusões lógicas. Devem-se seguir os seguintes passos para a exclusão lógica:
  1. Buscar o registro a ser excluído a partir de uma chave informada;
  2. Mudar o campo chave do registro a ser excluído para um valor não válido ("XXXXXXX", por exemplo);
  3. Fazer o link do registro anterior ao que será excluído apontar para o primeiro registro após ao que será excluído.
Dessa forma, para excluir Beto deve-se percorrer o arquivo até encontrar o registro com o nome Beto e alterar o nome para um valor inválido, "XXXXXXXX" nesse caso. Em seguida o registro anterior a Beto (no caso Ana) apontaria para o primeiro registro após Beto, que seria Carlos. O resultado seria:


Ind. ------- Nome -------------- Dados --------------------- Link
__________________________________________________
0 ----------------------------------- ------------------------- 3
1 ---------- Pedro ----------- {outros dados} ---------------- -1
2 ---------- Carlos -----------{outros dados} ----------------- 1
3 ---------- Ana -------------{outros dados} ----------------- 2
4 -------- XXXXXX --------- {outros dados} ----------------- 2
__________________________________________________

Vale ressaltar que mesmo Beto permanecendo no arquivo, ele nunca será acessado se a busca for realizada pelos links.

Costuma-se realizar uma exclusão física após certo número de exclusões lógicas, pois deixar no arquivo os registros excluídos logicamente consome espaço de armazenamento desnecessário.

sexta-feira, 15 de maio de 2009

Atividade 04

Resolução da questão: "Código para registrar a produção diária de um dado artesão"

leia(artesao);
nomeArq <- artesao+'.dat';
associar(arqLogico,nomeArq);
abrir(arqLogico);
posicione(arqLogico,tamArquivo(arqLógico));
leia(regArt.dia);
leia(regArt.hora);
leia(regArt.totalPecas);
leia(regArt.obs);
escreva(arqLógico,regArt);
fechar(arqLógico);

sexta-feira, 17 de abril de 2009

Atividade 02

Alunos: Israel Silva e Lucas Rollemberg

Descrição e solução da situação problema:
O dono de uma sorveteria deseja informatizar seu estabelecimento para facilitar o controle de estoque.
Esse estabelecimento é simples, sendo necessário um único computador para realizar as seguintes atividades: inserção de preços e produtos, retirada de produtos e listagem do estoque. Há duas soluções para o caso da sorveteria: Banco de Dados e Sistema de Arquivos. Porém a implementação do Banco de Dados é inviável, pelos seguintes motivos:
1) Alto custo;
2) Não há acesso concorrente;
3) A base de dados é simples, sem perspectiva de mudança.
Dessa forma, o Sistema de Arquivos é a solução mais adequada para a informatização da sorveteria.


Alunos: Dellano Oliveira e Tarcísio Costa


Descrição e solução da situação problema:
A idéia do programa foi a de organizar um campeonato, de maneira pela qual fique fácil e rápida a impressão da tabela de jogos, da impressão do ranking, sendo possível a recuperação de dados, para, por exemplo, uma competição que ocorra durante vários dias.

quarta-feira, 8 de abril de 2009

Cartões de Memória

Cartão de memória é um pequeno dispositivo de armazenamento de dados composto por memória Flash. Tal memória é semelhante à RAM utilizada nos computadores, mas sua estrutura permite que os dados fiquem gravados mesmo depois de cessado o fornecimento de energia.

As memórias Flash consomem pouca energia e ocupam pouquíssimo espaço físico, fazendo do cartão de memória um ótimo dispositivo portátil. Sua principal aplicação, portanto, é em dispositivos portáteis que necessitam de uma unidade para o armazenamento de dados, como telefones celulares, câmeras digitais, videogames e diversos outros dispositivos eletrônicos.

Mesmo com tamanho reduzido, os cartões de memória apresentam capacidades de armazenamento bastante atraentes. Modelos atuais variam de 512 MB a 32 GB e duram de 300.000 a 1.000.000 de horas de utilização. Embora seja uma durabilidade espantosa, muitos cartões não ultrapassam os 5 anos de uso, já que são dispositivos bastante frágeis.

Embora sejam baseados na mesma tecnologia (Flash), atualmente existem vários tipos de cartões de memória, na maioria incompatíveis entre si. Essa incompatibilidade tem origem na época em que surgiram os primeiros cartões, quando os fabricantes não entraram em acordo sobre qual padrão seguir e acabaram produzindo cartões específicos para seus produtos.

Dessa forma, existem muitos modelos de cartões de memória no mercado. Os principais são:
  • Compact Flash, lançado pela SanDisk em 1994;
  • Smart Media, lançado pela Toshiba em 1995;
  • Multi Media Card, desenvolvido pela Siemens AG e SandDisk, teve quatro tipos: MMC (em 1997), RS-MMC (em 2003/2005), MMCplus e MMCmicro (em 2005);
  • Memory Stick, desenvolvido pela Sony e SanDisk, teve seis tipos: Standard (em 1998), PRO e Duo(em 2003), PRO Duo (em 2002/2006), M2 (em 2006) e PRO-HG Duo (em 2007/2008);
  • Secure Digital, desenvolvido pela Panasonic, SandDisk, Toshiba e Nokia, teve seis tipos: SD (em 1999), miniSD (em 2003), microSD (em 2005), SDHC (em 2006), miniSDHC e microSDHC(em 2007);
  • USB flash drive, lançado em 2001 por vários fabricantes;
  • xD, desenvolvido pela Olympus e Fujifilm, teve três tipos: Standard (em 2002/2007), Type M e Type H(em 2005).

Baseando-se num cartão de memória de 1 GB, o preço atual está entre R$39,90 e R$ 49,00 reais.


Fontes:
http://cartaodememoria.com/
http://www.jacotei.com.br/mod.php?module=jacotei.comparacao&af=2781&prodid=372402
http://www.fastshop.com.br/product.aspx?src=home&product_id=R1SDSDPH_1024&dept_id=2030
http://www.shopmania.com.br/compras~online-memorias-externas~comprar-cartao-de-memoria-1-gb-sd-kingston~p-1754744.html
http://www.infowester.com/