ana's profileAna Carolina LimaPhotosBlogListsMore Tools Help

ana carolina

Photo 1 of 26

Ana Carolina Lima

March 05

Reunião

 

Para aqueles que não participaram da reunião de hoje (04/03/2008) vimos um pouco do Visual Studio 2005 e lançamos um projeto. A descrição do mesmo segue abaixo:

DESCRIÇÃO DO PROJETO

Implementação em C# de um sistema eletrônico de apuração (urna eletrônica) e contagem de votos.

Funcionalidades do sistema:

• Cadastramento nos Cartórios Eleitorais

• Identificação do Eleitor nas Seções de Votação

• Votação em Cabina Indevassável

• Apuração dos votos de cada Seção

• Totalização dos Votos de todas as Seções

Os usuários do sistema de apuração, integração e contagem de votos (eleitores e funcionários dos tribunais eleitorais regionais) deverão ter acesso apenas as operações definidas pelo TSE, através de uma interface interativa segura, clara (de fácil entendimento) e eficiente.

ASSUNTOS A SEREM ABORDADOS

· Uso de estruturas básicas

· POO

· Enumeradores

· Coleções

· Windows Forms

 

*A ídéia para esse desafio foi baseada no projeto proposto por Clarissa na disciplina Programação II

February 27

Célula acadêmica Soft.NET completa um ano


Por Lucélia Brito

A célula acadêmica Soft.Net, criada e formada por estudantes do curso de Ciências da Computação da Católica, está completando um ano de diversas conquistas. O interesse dos alunos de Ciências da Computação participantes da Soft.NET levou alguns deles a escrever artigos para grupos de discussão da tecnologia .NET (como o SharpGame), além dos estudantes Ana Carolina Lima, Felipe Pimentel e Walby Felix terem obtido a certificação internacional da Microsoft.

Participando da célula acadêmica Soft.NET, os alunos estabelecem uma relação diferenciada com a Microsoft, compartilham conhecimentos, mantêm-se atualizados para o mercado de trabalho e repassam o que aprendem para outros estudantes, através de palestras, seminários e eventos organizados pela Soft.NET. O grupo formado na Católica é liderado pela aluna Ana Carolina Lima e conta com o auxílio do ex-aluno de Ciências da Computação e estudante embaixador da Microsoft, Marcelo Diniz.

As Células Acadêmicas são apoiadas pela Microsoft, que fornece gratuitamente o material de apoio aos estudos (arquivos para download, livros, CD’s, apostilas, um sistema de gerenciamento pela Internet) e promove encontros, palestras e competições. Mais informações pelo site www.softdotnet.com.br.

Link da matéria: http://www.unicap.br/assecom2/boletim/2008/fevereiro/boletim_26.02.2008.html#2

É com grande prazer que gostaria de informar que temos agora um quarto participante que conseguiu obter a certificação, Luciano José, a notícia foi recebida depois da entrevista por isso não foi mencionado.

Parabénss Luciano !!!!!

February 24

Volta as aulas....

 

Olá,

Nesta terça (26/02) a célula acadêmica Soft.NEt voltará com suas atividades, com novas metas
e muitas novidades. A reunião será toda terça, na sala 105 do Bloco A, tendo inicio às 17:00hs.

Um célula acadêmica é focada em capacitar alunos de cursos de TI,
possibilitando que o aluno fiquei mais antenado nas novas tecnologias da Microsoft e fornece material de estudo e orientação.

Até Terça.

Atenciosamente
Ana Carolina Lima
Líder Soft.NET
Microsoft Certified Professional
http://anacarolima.spaces.live.com/

January 25

Férias


Blog de férias !!!

heiuhuehueueh =)

Té mais !!


January 16

Projeto C#

 

Olá, segue abaixo a especificação do projeto do banco 24 horas. O que vale é tentar !! =)

Boa sorte a todos.

Data da entrega : 18/01/2008

Projeto C#

Esta etapa do curso é constituída pelo desenvolvimento de um projeto, no qual o participante poderá apresentar todos os conceitos aprendidos durante o curso. Esta etapa tem como objetivo possibilitar uma avaliação individual de cada participante, nos quesitos: empenho, conteúdo assimilado, compreensão do projeto, etapas concluídas e qualidade do projeto entregue (boas práticas de programação).

DESCRIÇÃO DO PROJETO

Elaborar um sistema para a gestão operacional (atendimento eletrônico) de um Banco 24 horas. As funcionalidades do sistema (verificação de senha, consulta a saldo, déposito, saque, etc) serão estabelecidas pelo banco contratante (Banco do Brasil, Bradesco, Real, Safra, Unibanco, Itaú etc). Os clientes do Banco 24 horas deverão ter acesso a todas as operações financeiras, definidas pelo banco contratante, através de uma interface interativa clara (de fácil entendimento) e eficiente.

DETALHES

O objetivo deste projeto é o de desenvolver uma aplicação de controle de transações bancárias, sendo estas:

· Saldo

· Depósito

· Transferência

· Saque


Saldo:  Deverá fornecer o saldo da conta em questão.

Depósito: Deverá efetuar um depósito na conta em questão.

Transferência: Deverá efetuar uma transferência entre contas, para isto deve ser verificado se o saldo é suficiente como também se é possível fazer a tranferência para a conta em questão.

Saque: Deverá efetuar o saque da conta em questão, para isto deve ser verificado se o saldo é suficiente.

ASSUNTOS A SEREM ABORDADOS

Será conferido se o grupo compreendeu as aulas do programa de capacitação, deverá ser cobrado o uso de alguns conceitos:

· Uso de estruturas básicas

· POO

· Enumeradores

· Coleções

· Windows Forms

Avaliação

Cada turma será avaliada durante o desenvolvimento do projeto.

Pontos de avaliação:

· Cronograma;

· Utilização das tecnologias necessárias;

January 12

Orientação a Objeto

 

Os conceitos de classe e objeto formam a base da para o desenvolvimento de sistemas orientados a objetos.

Imagem1

Quando vemos esta figura o que vem em nossa mente ? Muitos de nós responderia que esta figura se refere a uma bicicleta, mas alguém poderia ver nesta figura uma motocicleta. A questão que podemos analisar é: porque a reposta dada geralmente é bicicleta ? Podemos dizer que esta resposta é mais comum porque as características básicas de uma bicicleta são vistas nessa figura, como rodas, guidon, etc. A partir dessas descrições são geradas verdadeiras bicicletas que poderemos utilizar, que terão determinada cor e tamanho para essas características que enumeramos.

Em orientação a objetos, todas as coisas que podemos definir são objetos. Uma bicicleta, um monitor de TV, uma pessoa. Todos esses objetos pertencem a classes, cada uma delas com características que irão definir os elementos que podem pertencer a elas. Ou seja, os objetos que pertencem à classe bicicleta irão conter todos as mesmas características. O mesmo ocorre para os objetos pertencentes à classe monitor de TV, pessoa e carro, entre outras. Mesmo os objetos pertencentes a mesma classe irão possuir características próprias que o identificam dentre os demais objetos. Por exemplo, duas pessoas, mesmo gêmeas idênticas, são ainda pessoas diferentes. Uma característica que poderia distingui-las seria seu código genético. Uma TV poderia ter seu número de série, etc, ou seja, todos os objetos possuem sua identidade, distinguindo-os dos demais objetos que pertencem a sua classe.

Rumbaugh descreve uma classe como "um grupo de objetos com propriedades semelhantes, o mesmo comportamento, os mesmos relacionamentos com outros objetos e a mesma semântica". Ou seja, uma classe nada mais é do que uma abstração, ela não existe propriamente, sendo apenas uma definição. Os objetos, por sua vez, são a instanciação de uma classe. Eles existem e podem ser manipulados.

As características, ou propriedades, de um objeto são chamadas de Atributos. Os atributos guardam valores úteis para a definição e representação de um objeto. Por exemplo, caso definamos as propriedades Altura, Nome, Peso, Idade e Cor para a classe Pessoa, poderíamos atribuir a um objeto dessa classe os valores 1.70, "José", 50, 75 e "Branca", respectivamente. O exemplo acima mostra algumas características dos atributos de uma classe.

Além dos atributos, vimos que as classes podem definir comportamento para os seus objetos. O comportamento de uma classe é definido através de seus métodos. Em linguagens puramente orientadas a objetos a forma que os objetos possuem para modificar os valores de seus atributos é através das chamadas aos seus métodos.

Por exemplo, podemos definir um método FazAniversario para a classe Pessoa. A função do método FazAniversario é a de aumentar o valor do atributo Idade dos objetos dessa classe. Para aumentarmos o valor do atributo idade, não deveríamos fazer acesso direto ao seu atributo, mas sim, chamar o método FazAniversario.

Um aspecto importante que devemos observar em relação a definição dos métodos é que ela é feita para a classe, sem levar em consideração objetos isoladamente. Ou seja, quando definimos o método FazAniversario pertencente à classe Pessoa, não estaremos levando em consideração um objeto e sim a classe de objetos que ele manipula.

Herança

Imaginemos agora que quiséssemos criar uma nova classe chamada Trabalhador. Poderíamos pensar nessa classe como possuindo os mesmos atributos da classe Pessoa, uma vez que todo trabalhador é uma pessoa. Porém um trabalhador possui atributos e métodos que pessoas de uma forma geral não possuem como, por exemplo, o salário, o cargo que ocupam, e a possibilidade de um aumento salarial.

Seria uma perda de tempo termos de rescrever todo o código que já foi escrito anteriormente para a classe Pessoa. O ideal seria que pudéssemos aproveitar todo o código previamente escrito e simplesmente de tivéssemos de escrever o código restante ou aquele que porventura tivesse sido alterado, ou seja, deveríamos apenas nos preocupar com o que realmente caracteriza a nova classe que estamos definindo. A boa notícia é que podemos fazer isso, graças a um conceito de orientação a objetos chamado de Herança.

O conceito de herança dentro da orientação a objetos é bastante semelhante ao conceito que temos em nossa vida cotidiana. Por exemplo, da mesma forma que os filhos herdam características dos seus pais, que por sua vez herdaram características de seus próprios pais através de uma "hierarquia genética", assim são os objetos. Os objetos podem herdar características e comportamento, ou seja atributos e métodos, de outros objetos atendendo, também, a uma "hierarquia genética". A definição dessa hierarquia não é feita através dos objetos, mas sim através das classes as quais eles pertencem.

Em nosso exemplo, para definirmos a classe Trabalhador e aproveitarmos todos os atributos e métodos previamente definidos para a classe Pessoa, devemos em sua definição informar que a nova classe, a classe Trabalhador, é uma subclasse, também chamada classe filha, de uma outra classe. A classe Pessoa será, portanto, a classe pai, também chamada de super-classe, da classe Trabalhador.

Encapsulamento

Um outro conceito importante dentro da orientação a objetos é o de Encapsulamento. Para garantir um melhor funcionamento dos programas, principalmente devido a herança de código entre as classes, seria aconselhável que os detalhes da implementação de cada um dos métodos escritos ficassem isolados dos desenvolvedores. Para que um desenvolvedor venha a utilizar ou herdar uma classe criada por outro desenvolvedor, bastaria que ele soubesse os atributos e métodos que compõe a classe-pai e não a implementação de cada um deles. O encapsulamento nada mais é do que esse conceito.

Quando criamos a classe Trabalhador já havia sido declarado e codificado o método FazAniversario. Nós tínhamos conhecimento apenas de sua existência e que deveríamos utilizá-lo quando desejássemos aumentar de 1 a idade de um objeto da classe Pessoa e, por conseqüência, da classe Trabalhador. Não saberíamos, ou melhor, não seria necessário que soubéssemos como esse método foi implementado para que pudéssemos utilizá-lo.

É bem verdade que, como desenvolvedores de sistemas, ficamos acima de tudo curiosos para verificar como o código escrito para um determinado método funciona antes de utilizá-lo, porém isso não é necessário. Dessa forma, o código que utilizamos fica protegido contra qualquer alteração indevida. Basta que saibamos o que cada método executa sem termos de nos preocupar com a possível complexidade existente nesse código.

Polimorfismo

Polimorfismo significa que uma chamada de método pode ser executada de várias formas (ou polimorficamente). Quem decide "a forma" é o objeto que recebe a chamada. Essa última frase é muito importante, pois ela encerra a essência do polimorfismo. Ela significa o seguinte: Se um objeto "a" chama um método xpto() de um objeto "b", então o objeto "b" decide a forma de implementação do método. Mais especificamente ainda, é o tipo do objeto "b" que importa. Para concretizar melhor, digamos que xpto() seja grita(). Então a chamada b.grita() vai ser um grito humano se "b" for um humano e será um grito de macaco, se o objeto "b" for um macaco. O que importa portanto, é o tipo do objeto receptor "b".

January 10

Array e Coleções

 

Array

Arrays são usados para gerenciar grande quantidade de informações. Para utilizar arrays você deve declará-los antes de utilizar. Os arrays respeitam as mesmas regras de escopo que as variáveis, ou seja, se são declaradas dentro do procedimento, ficam disponíveis apenas para o procedimento em que foram declaradas.

Declarando um array

int[] MeuArrayDeInteiros;

Instanciando um array

int[] nome_da_variável = new int [tamanho do array];

Ex.: int[] numeros = new int[3]; //Array de 3 posições 0,1,2

Inicializando um array

int[] numero = {30,45,10,36};

Collections

  • São classes usadas para agrupar e gerenciar objetos relacionados e que permitem armazenar, buscar e interagir com estes objetos;
  • As Collections possuem mais funcionalidades do que uma array, facilitando sua utilização.
  • O Namespace System.Collections contém diversos tipos de collections. Estas collections são responsáveis por agrupar e organizar grandes quantidades de dados.

imagem6

  • ArrayList é mais simples, flexível, aceita qualquer tipo de objeto;
  • Hastable por padrão é mais rápida para grandes quantidades de dados;
  • ListDictionary é mais rápida para pequenas quantidades de dados;
  • HibridDictionary é a mais rápida;

ArrayList

  • Encontra-se no namespace System.Collections;
  • ArrayList é uma coleção sem tamanho fixo, não ordenada e que aumenta conforme a necessidade do programador;
  • É possível adicionar qualquer tipo objeto na ArrayList, desde int, stringat é objetos de classes que você mesmo tenha
  • Criar uma ArrayList é muito simples. Ela é instanciada como
  • um objeto qualquer.
  • Existem duas maneiras de se adicionar itens em uma ArrayList. A primeira é utilizando os métodos Add(object item), para adicionar apenas um valor, e AddRange(object lista), para adicionar vários itens, que normalmente vem de uma Arrayou de outra collection.

ArrayList alist= new ArrayList();

  • O método AddRange() aceita adicionar itens de qualquer objeto que suporte a interface ICollection.
  • Os métodos Add() e AddRange() adicionam itens na última posição da ArrayList.
  • Para adicionar um ou vários objetos em uma posição específica da ArrayListutilize o método Insert(int index,object objeto)
  • Para adicionar para vários itens utilize InsertRange(int index,
  • object lista).

Existem ainda outros métodos que podem ser úteis:

  • IndexOf(object item), que retorna o índice do objeto passado como parâmetro;
  • Contains(object item), que verifica se o objeto existe na lista. Se existir, retorna True;
  • Clear(), que apaga todos os itens da lista;
  • Sort(), que ordena a lista;
  • Count(), que retorna o número de itens na lista.