21.11.2014 Views

Aula 6 - DAI - IFMa

Aula 6 - DAI - IFMa

Aula 6 - DAI - IFMa

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Linguagem de Programação 3<br />

Coleções e Aplicações Gráficas<br />

Prof. Mauro Lopes<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

1<br />

- 31 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Objetivos<br />

• Nesta aula iremos dar continuidade aos elementos de<br />

programação da Linguagem C#. Iremos apresentar as<br />

Coleções genéricas e não genéricas e também<br />

iniciaremos nosso estudos sobre as aplicações gráficas<br />

usando o C#. Ao final desta aula, o aluno poderá<br />

implementar pequenas aplicações que envolvem os<br />

conceitos abordados. Boa aula a todos.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

2<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

• Coleções:<br />

– Coleções Genéricas<br />

Plano de <strong>Aula</strong><br />

– Coleções Não Genéricas<br />

• Aplicações Gráficas<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

3<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções<br />

• Coleção é um grupo de objetos. O .NET Framework<br />

contém interfaces e classes que definem e<br />

implementam coleções, que representam<br />

estruturas de dados;<br />

• As coleções são genéricas e não genéricas;<br />

• Aqui iremos abordar:<br />

o<br />

o<br />

Coleções Genéricas<br />

• Dictionary/LinkedList/List/Queue/SortedDictionary/SortedList/Stack<br />

Coleções Não Genéricas<br />

• ArrayList/HashTable/Queue/SortedList/Stack<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

4<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas<br />

• São coleções que implementam estruturas de<br />

dados, como listas ligadas, pilhas, filas, etc;<br />

• As coleções genéricas são seguras quanto ao tipo,<br />

isto é, os elementos de cada coleção devem ser de<br />

um tipo compatível com o tipo da coleção;<br />

• Estão no namespace System.Collections.Generic;<br />

• São elas:<br />

• Dictionary, LinkedList, List, Queue, SortedDictionary,<br />

SortedList e Stack<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

5<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Dictionary <br />

• O Dicionário armazena elementos na forma de pares<br />

do tipo chave/valor, em que as chaves não podem<br />

ser duplicadas nem ser referências nulas, mas os<br />

valores sim;<br />

• Os valores são acessados por meio das respectivas<br />

chaves;<br />

• Dictionary , aonde:<br />

• TK é o tipo da chave;<br />

• TV é o tipo do valor associado à chave;<br />

• A capacidade de um dicionário é o número de elementos<br />

que pode conter e é aumentada à medida que novos<br />

elementos são inseridos.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

6<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Dictionary <br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

7<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – LinkedList <br />

• Armazena elementos como uma lista duplamente<br />

ligada;<br />

• Os seus valores são armazenados em nós, em que um<br />

nó tem um link para o elemento anterior e um para o<br />

posterior;<br />

• Os nós são objetos do tipo LinkedListNode;<br />

• A capacidade de uma linkedlist é o número de<br />

elementos que pode conter e é aumentada à medida<br />

que novos são inseridos.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

8<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – LinkedList <br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

9<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – List <br />

• É um array dinâmico cujos elementos podem ser<br />

acessados por meio de um índice, em que o<br />

primeiro elemento é acessado com o índice 0;<br />

• A sua capacidade é o número de elementos que<br />

pode conter, podendo aumentar ou diminuir à<br />

medida que elementos são inseridos ou eliminados;<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

10<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – List <br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

11<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Queue <br />

• Armazena elementos como uma lista do tipo firstin-first-out<br />

(FIFO);<br />

• É uma coleção dinâmica cujo tamanho aumenta à<br />

medida que novos elementos são inseridos;<br />

• Comparada ao mundo real, é como uma fila de<br />

pessoas em um ponto de ônibus: a primeira pessoa<br />

da fila será a primeira a entrar no ônibus;<br />

• Desta forma, os elementos de uma queue são<br />

retirados na mesma ordem em que foram inseridos.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

12<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Queue <br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

13<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Stack <br />

• Armazena elementos como uma lista do tipo lastin-first-out<br />

(LIFO);<br />

• É uma coleção dinâmica cuja capacidade aumenta<br />

à medida que novos elementos são inseridos. A<br />

capacidade é o número de elementos que pode<br />

conter;<br />

• Comparada ao mundo real, é como uma pilha de<br />

pratos: o último prato colocado na pilha será o<br />

primeiro a ser retirado;<br />

• Desta forma, os elementos de uma stack são<br />

retirados na ordem inversa que foram inseridos.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

14<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas – Stack <br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

15<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Não Genéricas<br />

• São coleções que, ao contrário das genéricas,<br />

operam sobre referências object, assim, podem<br />

armazenar qualquer tipo de objeto e por isso não<br />

são seguras quanto ao tipo;<br />

• Desta forma, é possível armazenar em uma mesma<br />

coleção elementos de tipos diferentes;<br />

• Por exemplo, uma coleção ArrayList pode conter<br />

elementos dos tipos int e string;<br />

• As coleções não genéricas também implementam<br />

estruturas de dados, como, pilhas, filas, etc.;<br />

• Também estão no namespace System.Collections.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

16<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Não Genéricas – ArrayList<br />

• É semelhante a um array, exceto que pode ter sua<br />

capacidade aumentada ou diminuída à medida que<br />

elementos são inseridos ou eliminados;<br />

• A capacidade de um arraylist é o número de<br />

elementos que pode conter, cujo o valor default é 0;<br />

• Os elementos de um arraylist não são<br />

armazenados de forma ordenada, desta forma para<br />

pesquisar precisamos antes ordenar o mesmo;<br />

• Os elementos podem ser acessados por meio de um<br />

índice, em que o primeiro elemento é acessado<br />

com o índice 0;<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

17<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Não Genéricas – ArrayList<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

18<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Não Genéricas – HashTable<br />

• Coleção que usa um hash table para armazenar<br />

elementos na forma de pares do tipo chave/valor,<br />

em que as chaves não podem ser duplicadas nem ser<br />

referências nulas;<br />

• Uma hashtable armazena dados usando uma técnica<br />

chamada hashing, em que o conteúdo de uma chave<br />

é usado para determinar um valor único, denominado<br />

hash code;<br />

• O hash code é criado automaticamente e usado como<br />

um índice para o dado associado à chave<br />

armazenada;<br />

• Sua capacidade segue o modelo das demais coleções;<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

19<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Não Genéricas – HashTable<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

20<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Coleções Genéricas e Não Genéricas<br />

• Atividade para a próxima <strong>Aula</strong>:<br />

– Pesquise sobre as coleções SortedDictionary e SortedList.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

21<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Aplicações Gráficas<br />

• O modo gráfico permite o desenvolvimento de<br />

aplicações com interfaces gráfica cuja base é o<br />

denominado form, que abriga componentes, como<br />

botões e labels;<br />

• Aqui iremos criar várias aplicações do tipo<br />

Aplicativo Windows Forms que mostram o uso de<br />

muitos dos controles da Toolbox;<br />

• As aplicações irão abordar a construção de telas<br />

porém iremos mesclar todos os conceitos<br />

abordados anteriormente;<br />

• Na conclusão iremos estudar o desenvolvimento no<br />

padrão Model-View-Controller.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

22<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Aplicações Gráficas<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

23<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Perguntas<br />

Página do Professor Mauro:<br />

http://www.dai.ifma.edu.br/~mlcsilva<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

24<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Próxima <strong>Aula</strong>...<br />

• Aplicações Gráficas.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

25<br />

- 26


INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO MARANHÃO – IFMA<br />

Referências<br />

• Materiais avulsos da Internet e o livro C#: Guia<br />

do Programador, Joel Saade - Editora Novatec,<br />

687 páginas.<br />

Linguagem de Programação 3 – Prof. Mauro Lopes<br />

26<br />

- 26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!