Você está na página 1de 5

SISTEMA DE ENSINO PRESENCIAL CONECTADO

Analise e desenvolvimento de sistemas 3 Semestre


ARS

PRODUO TEXTUAL INTERDISCIPLINAR

Arapiraca
2011
ARS

Trabalho apresentado ao Curso Analize e Desenvolvimento de Sistemas da UNOPAR
- Universidade Norte do Paran, para as disciplinas Banco de Dados II, Anlise de
Sistemas, Algoritmo e Estrutura de Dados.

Prof. Fbio Csar Zanellato
Roberto Yokio Nishimura
Simone Sawasaki Tanaka
Merris Mozer

Arapiraca - Al
2011
INTRODUO

O objetivo deste trabalho mostrar conceitos de Pilha e Fila mostrando assim
significados e funes de maneira a entender e debater assunto relacionado estruturas
baseadas no princpio FIFO (first in, first out), em que os elementos que foram
inseridos no incio so os primeiros a serem removidos. Uma fila possui duas funes
bsicas.
Por sua vez As pilhas so estruturas baseadas no princpio LIFO (last in, first out), na
qual os dados que foram inseridos por ltimo na pilha sero os primeiros a serem
removidos. Existem duas funes que se aplicam a todas as pilhas: PUSH, que insere
um dado no topo da pilha, e POP, que remove o item no topo da pilha.

Fila
As filas so estruturas baseadas no princpio FIFO (first in, first out), em que os
elementos que foram inseridos no incio so os primeiros a serem removidos. Uma fila
possui duas funes bsicas: ENQUEUE, que adiciona um elemento ao final da fila, e
DEQUEUE, que remove o elemento no incio da fila. A operao DEQUEUE s pode
ser aplicado se a fila no estiver vazia, causando um erro de underflow ou fila vazia se
esta operao for realizada nesta situao.
FIFO
INCIO
FINAL

Insero: da varivel Y para V .............. Y V
Respeitando a regra de fila sempre no final.
Excluso: de V para varivel Y ............ Y V
Respeitando a regra de fila sempre no incio
Pesquisa: localiza varivel Y em V ....... Y ? V
Respeitando a regra de fila a partir do incio
Modificao: localiza varivel Y em V; troca valor de V pela varivel XX V ? V
Um exemplo de Insero da varivel Y para V .............. Y V
se FIM = n
* entoOVERFLOW;
* seno FIM := FIM +1;
* V[FIM] := Y; (onde Y = Felipe)
* se FIM = 1 ento COMEO := 1;
* fim se;
Segue abaixo a tela inicial do nosso algoritmo, onde encontraremos valores para Fim
= 3, Y= Felipe e Comeo = 1.
Fernando
Amanda
Paula
V[2]
V[1]
V[3]
V[4]

Introduo Pilha Duplamente Encadeada, usando teste de mesa para melhor
compreenso.
Na estrutura virtual de pilha:
* As incluses so feitas no topo;
* As excluses so feitas no topo;
* A consulta feita partir do topo;
Insero: da varivel Y para PILHA .............. Y PILHA
Excluso: de PILHA para varivel Y ............. Y PILHA
Pesquisa: localiza varivel Y na PILHA ........ Y ? PILHA
Modificao: localiza varivel Y em PILHA; troca valor de PILHA pela varivel X
............ X Y ? PILHA
Alberto
TOPO
Y
Orlando

Joo

Rogerio

Cladio

Pilha
As pilhas so estruturas baseadas no princpio LIFO (last in, first out), na qual os
dados que foram inseridos por ltimo na pilha sero os primeiros a serem removidos.
Existem duas funes que se aplicam a todas as pilhas: PUSH, que insere um dado
no topo da pilha, e POP, que remove o item no topo da pilha.

Propriedades ACID
Ultimamente escrevi alguns posts sobre o CouchDB, um deles referente as
propriedades ACID.
As propriedades ACID (atomicidade, consistncia, isolamento e durabilidade) so
fundamentais nos bancos de dados, sejam os relacionais ou os orientados a
documentos. Ento, tambm valido tratarmos desse assunto referente aos bancos
relacionais, em um contexto geral.
Atualmente os sistemas de informao suportam vrios usurios. O banco de dados
tem que garantir a confiabilidade nas transaes, haja vista que muitas podem ocorrer
concorrentemente.
O que uma transao?
Uma transao um programa em execuo que forma uma unidade lgica de
processamento no banco de dados. Uma transao inclui uma ou mais operaes de
acesso ao banco de dados englobam operaes de insero, excluso, alterao
ou recuperao. *
Por que a Restaurao (Recuperao) Necessria?
O sistema dever garantir que: (1) todas as operaes na transao foram
completadas com sucesso e seu efeito ser gravado permanentemente no banco de
dados ou (2) a transao no ter nenhum efeito sobre o banco de dados ou sobre
quaisquer outras transaes. *
Atomicidade
A propriedade de atomicidade garante que as transaes sejam atmicas
(indivisveis). A transao ser executada totalmente ou no ser executada.
Consistncia
A propriedade de consistncia garante que o banco de dados passar de uma forma
consistente para outra forma consistente.

Isolamento
A propriedade de isolamento garante que a transao no ser interferida por
nenhuma outra transao concorrente.
Durabilidade
A propriedade de durabilidade garante que o que foi salvo, no ser mais perdido.
* Algumas respostas foram retiradas do livro: Sistemas de banco de dados Ramez
Elmasri e Shamkant B. Navathe.
Polimorfismo
Na programao orientada a objetos, o polimorfismo permite que referncias de tipos
de classes mais abstratas representem o comportamento das classes concretas que
referenciam. Assim, possvel tratar vrios tipos de maneira homognea (atravs da
interface do tipo mais abstrato).O termo polimorfismo originrio do grego e significa
"muitas formas" (poli = muitas, morphos = formas).
ndice
1 Tipos de Polimorfismo
2 Exemplos
3 Benefcios do polimorfismo
3.1 Clareza e manuteno do cdigo
3.2 Aplicaes flexveis
4 Polimorfismo e padres de projeto
Tipos de Polimorfismo
Existem trs tipos de polimorfismo que a linguagem pode ter (atente para o fato de que
nem toda linguagem orientada a objeto tem implementado todos os tipos de
polimorfismo):
Universal:
Incluso: um ponteiro para classe me pode apontar para uma instncia de uma
classe filha (exemplo em Java: "List lista = new LinkedList();" (tipo de polimorfismo
mais bsico que existe).
Paramtrico: se restringe ao uso de templates (C++, por exemplo) e generics (Java).

Benefcios do polimorfismo
Clareza e manuteno do cdigo
Em linguagens de programao no polimrficas, para implementar o mtodo
mostrarCalculo, seria necessrio recorrer a uma enumerao com o tipo de operao
e, dentro do mtodo, testar o valor da enumerao com um case, como no exemplo
abaixo:

publicvoidmostrarCalculo (intoperacao, double x, double y) {
System.out.print("O resultado : ");
switch (operacao) {
case SOMA:
System.out.print(""+(x+y));
break;
case SUBTRACAO:
System.out.print(""+(x-y));
break;
//... outrasoperacoes
default: throw new UnsupportedOperationException()
}
}
Alm do cdigo ser maior e mais difcil de ler, essa implementao tem outros
problemas. Provavelmente esse no ser o nico mtodo a utilizar operaes
matemticas e, portanto, pode-se esperar no um, mas vrios switchs como esse pelo
cdigo. O que acontece, ento, se uma nova operao for adicionada ao sistema?
Ser necessrio que todos os switchs sejam encontrados e substitudos. Com o
polimorfismo, a modificao restringiria-se apenas a criao de uma nova classe.

Aplicaes flexveis
O polimorfismo combinado reflexo permite facilmente a criao de plugins. A
aplicao original cria interfaces e classes que tem muito conhecimento semntico,
mas a sua implementao efetiva ficar a cargo de terceiros. Uma aplicao grfica,
por exemplo, poderia ser implementada de forma a desenhar linhas, formas e grficos
precisos de acordo com operaes matemticas fornecidas. Enquanto isso, empresas
terceiras, nos diversos campos de sua atuao, implementariam as operaes
matemticas especficas para o seu empreendimento (clculos de rbitas para
astronomia, clculos estruturais para engenharia civil, balstica para aeronutica, etc).
Polimorfismo e padres de projeto
Boa parte dos padres de projeto de software baseiam-se no uso de polimorfismo, por
exemplo: Abstract Factory, Composite, Observer, Strategy, TemplateMethod, etc..
O polimorfismo tambm usado em uma srie de refatoraes, como substituir
condicional por polimorfismo.
O POLIMORFISMO
O polimorfismo, na OOP, a habilidade que os objetos, distintos, mas relacionados,
possuem, de receber um estimulo (um mtodo, ou comando) e agir de maneira
diferente a esse estmulo. Por exemplo, podemos ter uma classe, abstract, de
mamferos com o mtodo comunicar. Esse mtodo pode ser implementado de formas
diferentes para subclasses herdades de mamferos, como: Humanos, Ces e Gatos.
Dessa forma ao invocar o mtodo comunicar, a partir do objeto correspondente
(Objeto da classe humanos, ces ou gatos) o programa dever ser capaz de decidir
qual o mtodo adequado ser executado.
E no contexto da orientao a objetos, qual a importncia e quais so as
conseqncias do polimorfismo? Nesse contexto o polimorfismo diz respeito
capacidade de duas ou mais classes de objetos responderem a mesma mensagem,
cada qual, de seu prprio modo. O exemplo clssico de polimorfismo em
desenvolvimento de software o das formas geomtricas. Pense em uma coleo de
formas geomtricas que contenha crculos, retngulos e outras formas especficas.
Pelo princpio do polimorfismo, quando uma regio de cdigo precisa desenhar os
elementos daquela coleo, essa regio no deve precisar conhecer os tipos
especficos das figuras existentes; basta que cada elemento da coleo receba uma
mensagem solicitando que desenhe a si prprio. (BEZERRA, 2007:11).
Na OOP essa caracterstica importante uma vez que possibilita uma codificao
mais simplificada das chamadas dos mtodos, ou seja, o cliente (aquela parte do
cdigo que chamou o mtodo) no precisa saber como ele foi codificado, apenas
envia a mensagem e o cdigo, por delegao, sabe como ele foi implementado e o
executar. Assim, Deitel (2005) refora a definio sobre esse conceito:
O polimorfismo ocorre quando um programa invoca um mtodo por meio de uma
varivel de superclasse em tempo de execuo, a verso correta da subclasse do
mtodo chamada, com base no tipo da referncia armazenada na varivel de
superclasse. (DEITEL, 2005:337).
Com o objetivo de reforar esse conceito, apresentarei um exemplo simples de
aplicao do polimorfismo, esse exemplo ser apresentado na vdeo aula
correspondente.

Concluso

Diante destas estruturas baseadas no princpio FIFO (first in, first out), em que os
elementos que foram inseridos no incio so os primeiros a serem removidos. Uma fila
possui duas funes bsicas: ENQUEUE, que adiciona um elemento ao final da fila, e
DEQUEUE, que remove o elemento no incio da fila. A operao DEQUEUE s pode
ser aplicado se a fila no estiver vazia, causando um erro de underflow ou fila vazia se
esta operao for realizada nesta situao.
Estas estruturas so baseadas no princpio LIFO (last in, first out), na qual os dados
que foram inseridos por ltimo na pilha sero os primeiros a serem removidos. Existem
duas funes que se aplicam a todas as pilhas: PUSH, que insere um dado no topo da
pilha, e POP, que remove o item no topo da pilha.

Referncias
http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html
http://www.p3m.com.br/blog/propriedades-acid/
https://www22.unopar.br/unopar/ava/aluno/formwebaula.action?gecronofer.gcofCd=12
8192&geoferturm.goftCd=2851239&gediscofer.gofdCd=554362#
https://www22.unopar.br/unopar/ava/aluno/formwebaula.action?gecronofer.gcofCd=12
8192&geoferturm.goftCd=2851239&gediscofer.gofdCd=554362#
http://gilmarborba.com.br/?p=367