Aula 6 - DAI - IFMa
Aula 6 - DAI - IFMa
Aula 6 - DAI - IFMa
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