Algoritmos Genéticos. Adobe Flex e Android Desenvolvendo aplicativos para dispositivos móveis utilizando a tecnologia Adobe Flex

Tamanho: px
Começar a partir da página:

Download "Algoritmos Genéticos. Adobe Flex e Android Desenvolvendo aplicativos para dispositivos móveis utilizando a tecnologia Adobe Flex"

Transcrição

1 Palavra do Educador Prof. Paulo. Giaretta Ano I - 1ª Edição - Dezembro / 2010 Adobe lex e Android Desenvolvendo aplicativos para dispositivos móveis utilizando a tecnologia Adobe lex Algoritmos Genéticos Aplique conceitos de IA para fortalecer seus projetos. Unisep - Curso de Sistemas de Informação - EB

2 Realização: Curso de Sistemas de Informação Unsiep / EB Conselho Editorial Prof. Rodrigo A. Tomazi Coordenador do Curso de Sistemas de Informação EB Prof. Roberto C. da S. Padilha Professor do Curso de Sistemas de Informação EB Profª. Edivane Bellé Professora do Curso de Sistemas de Informação EB / AED Prof. Jandi Barbosa Professor do Curso de Sistemas de Informação EB Índice 03 - Editorial Prof. Rodrigo Ângelo Tomazi 04 - Institucional 05 - Palavra do Educador Prof. Paulo ioravante Giareta 06 - Desenvolvimento de Aplicativos para Android com Adobe lex Prof. Roberto C. da Silva Padilha 14 - Dicas e Desafios 15 - Algoritmos Genéticos Márcio Dalorsoleta Prof. Roberto C. da Silva Padilha

3 Editorial Infosep em Revista Consolidado a partir de suas semanas acadêmicas realizadas do Curso de Sistemas de Informação da Unisep, inicialmente na unidade de Dois izinhos, e também com a unidade de rancisco Beltrão a partir de 2010, o nome Infosep ganha um novo capítulo em sua história, a Infosep em Revista, uma revista eletrônica do curso de Sistemas de Informação da Unisep, com caráter técnico-científico, garantindo aos leitores excelentes artigos relacionados a assuntos atualizados do mundo da Tecnologia da Informação (TI), além da coluna Palavra do Educador, desafios e novidades do mercado de trabalho. O conteúdo da revista será produzido por acadêmicos e professores da Unisep, e divulgado através do site do curso de Sistemas de Informação (www.unisep.edu.br/si) para que todo e qualquer profissional, acadêmico ou interessado pela área de TI possam ter acesso ao download da revista. A Infosep em Revista estará incorporando a cada edição novas idéias impulsionadas por sugestões de acadêmicos e leitores da mesma. O objetivo é que a revista torne-se um veículo propagador de conhecimento tecnológico, e que a cada nova edição um número maior de leitores possa aproveitar o conteúdo da Infosep em Revista para aprimorar e enriquecer seus conhecimentos. Essa edição de dezembro/2010 finaliza o ano letivo da instituição, mas certamente inicia uma nova fase para professores, acadêmicos e profissionais de Sistemas de Informação. Aproveitem essa primeira edição, e estejam certos da evolução a cada nova edição lançada pelo Curso de Sistemas de Informação da Unisep em conjunto com vossas idéias e sugestões, pois para a tecnologia e para o conhecimento não há limites! Boa leitura a todos! Rodrigo Ângelo Tomazi Coordenador do Curso de Sistemas de Informação Unisep - EB

4 Institucional A Unisep A história da UNISEP é também parte da história do desenvolvimento da região Sudoeste do Paraná. A UNISEP consolidou-se como uma das melhores Instituições do país, preocupada com o aprendizado contínuo de seus acadêmicos e com o bem-estar social. A UNISEP iniciou suas atividades com o propósito e a certeza de que seria umas das grandes responsáveis pela transformação sociocultural e econômica da região em que está inserida. O Campus de Dois izinhos da UNISEP foi inaugurado em sete de junho de 2001 possuindo uma área de metros quadrados de extensão. Em agosto de 2001 realizou-se o primeiro vestibular. Quatro meses depois, a UNISEP já contava com os cursos Administração, Ciências Contábeis, Direito, Educação ísica e Sistemas de Informação, completando a primeira etapa do projeto da faculdade. Com a estrutura física em constante evolução e a soma de novos cursos: Tecnologia do estuário, armácia, isioterapia e Gestão Mercadológica. Implantou-se também o Colégio UNISEP, atuando com turmas do maternal ao ensino médio. Posteriormente Engenharia Ambiental e Medicina eterinária completaram os cinco primeiros anos da UNISEP. A UNISEP é uma Instituição que a cada dia está mais comprometida com a qualidade no ensino em todo Sudoeste do Paraná, seu crescimento e a abertura de um novo campus em rancisco Beltrão é prova disso. Em 2010 o campus de Dois izinhos conta com doze cursos de graduação, além de atender a Educação Infantil, Ensino undamental, Médio e Pós-Graduação. Destaque no Sudoeste do Paraná a UNISEP está no ranking das melhores Instituições de Ensino do País, segundo a Avaliação Institucional realizada em 2010 pelo Ministério da Educação, onde obtivemos nota quatro (escala 1 a 5). O Campus de rancisco Beltrão da UNISEP foi inaugurado no dia vinte de novembro de 2009 situado em uma área de metros quadrados de extensão. No ano de 2009 o Campus de rancisco Beltrão tem seu credenciamento pelo Ministério da Educação para iniciar suas atividades com cinco cursos que são: Ciências Contábeis, Administração, Engenharia de Produção, Sistemas de Informação e armácia onde obtivemos nota quatro (escala 1 a 5). Em novembro de 2009 realizou-se o primeiro vestibular! Destaque no Sudoeste do Paraná a UNISEP de Dois izinhos está no ranking das melhores Instituições de Ensino do País, segundo a Avaliação Institucional realizada em 2010 pelo Ministério da Educação, onde obtivemos nota quatro (escala 1 a 5). A UNISEP tem como missão ser uma instituição social e democrática, permeável a todas as correntes de pensamento, dentro dos princípios da liberdade com responsabilidade, justiça e solidariedade humana, visando o desenvolvimento da ciência, do saber e da tecnologia, contribuindo para a formação integral da comunidade local e regional. Composta de instalações especialmente projetadas, que favorecem um aprendizado de qualidade, o projeto da UNISEP compreende salas de aula, laboratórios, biblioteca, clínicas odontológicas e salas cirúrgicas com equipamentos de última geração. O corpo docente com qualificação e dedicação procura repassar ao aluno conhecimentos teóricos e experiências práticas que propiciam um aprendizado dentro dos mais altos padrões de qualidade. A Instituição aprofunda suas relações com a comunidade através de vários projetos de extensão. Estreita seus laços com o mercado de trabalho oferecendo profissionais do mais alto nível e participa significativamente com o crescimento da região Sudoeste do Paraná, propiciando uma gama de cursos que alavancam a economia regional com o que há de mais importante: capital intelectual. Unisep - Um salto para o futuro!

5 Palavra do Educador Educar ou Treinar para a Tecnologia? Ao ser convidado a construir as primeiras linhas deste espaço denominado de PALARA DO EDUCA- DOR, escrevendo sobre educação na perspectiva de sua relação com a tecnologia, que é o objeto deste informativo (social, técnica e educativamente necessário), veio-me a mente o conselho do mestre Machado de Assis, não sei se já alguma vez disse ao leitor que as idéias, para mim, são como nozes e que até hoje não descobri melhor processo para saber o que está dentro de umas e de outras, senão quebrá-las. Quebrar, romper, desmistificar, superar para conhecer as funções efetivas que organizam e norteiam a sociedade contemporânea, também chamada de Sociedade do Conhecimento, parece ser um desafio constante, uma superação diária, quer de âmbito pessoal ou institucional. Esta ruptura parece moldar, desde os pequenos conflitos pessoais na busca individual e constante por novos conhecimentos, por vezes confundido com informações (informação não é conhecimento), bem como os conflitos institucionais, por exemplo: de Instituições de Ensino, quando define a grade curricular de um curso de tecnologia, a proposta teórico-metodológica de trabalho de seus professores e o perfil formativo de seus profissionais; do Estado quando da definição de investimento e fomento a um modelo especifico de utilização e desenvolvimento tecnológico. São conflitos, que delineiam e moldam o ideário de relação dos indivíduos, instituições e dos organismos estatais na sua relação, quer como consumidor ou produtor de tecnologia, o que justifica a necessidade de quebrar as nozes elucidando nossos propósitos face ao modelo de formação para a tecnologia que nos convém. ivemos em um país que, em função de sua opção política de desenvolvimento, passou a ser conhecido como tecnologicamente dependente, por tanto, como centro consumidor e não produtor/desenvolvedor de tecnologia. Esta relação de dependência é facilmente sentida, inclusive, nas instituições que se dedicam a formar os profissionais que trabalham com tecnologia, desenvolvendo, em sua maioria, currículos e posturas pedagógicas focadas essencialmente no treinamento, enquanto capacitação para o uso da tecnologia. Razão pela qual, talvez, seja tão forte o mercado da reciclagem de conhecimentos em nosso país, afinal, quem não foi educado para a tecnologia, mas apenas treinado, tem dificuldade de se adequar criativamente ao criativo e mutante contexto tecnológico. Assim, utilizo deste espaço para um convite à reflexão sobre a educação tecnológica para a autonomia intelectual, superando o mero treinamento para a dependência. Nas palavras do educador Pedro Demo (1996), reconhecer que para além da mera seqüência de ações de formação (treino) está a educação, não apenas como ato de ensinar, instruir, treinar, domesticar, mas sobretudo, como ato de formar a autonomia do sujeito histórico competente, uma vez que o educando não é o objetivo de ensino, mas sim sujeito do processo. O que convém salientar, em conformidade a Paulo reire (1996), que saber ensinar não é transferir conhecimento, mas criar as possibilidades para a sua própria produção ou a sua construção. Postura que faz bem ao desenvolvimento intelectual para a autonomia do indivíduo cidadão; e é técnica e socialmente necessário a um país que se quer desenvolvido e independente. Prof. Paulo. Giareta Diretor Acadêmico Unisep Infosep em Revista - 1ª Edição Página 5

6 Artigo Técnico Desenvolvimento de Aplicativos para Android com Adobe lex Prof. Roberto Cesar da Silva Padilha O mercado de aplicações para dispositivos móveis está em franca expansão. Muitas são as tecnologias disponíveis, o que proporciona aos desenvolvedores a criação de aplicativos cada vez melhores e mais complexos. Acompanhando este crescimento, a Adobe adaptou sua tecnologia lex, bastante difundida no desenvolvimento de aplicações RIA, para o desenvolvimento de aplicativos para a plataforma Android da Google. Este artigo trata do preview release do Adobe lash Builder Burrito e Adobe lex SDK Hero, primeiros passos da Adobe no mercado de aplicações móveis. Além de uma visão geral do novo SDK e seus recursos, será desenvolvido um aplicativo de exemplo, demonstrando o uso dos componentes e a conectividade com uma aplicação servidora desenvolvida em Java. Introdução O desenvolvimento de aplicativos para plataformas móveis tem se tornado uma nova tendência na área de desenvolvimento de software. O uso de aparelhos celulares está cada vez mais difundido, e os anteriormente elitizados smartphones hoje são muito mais acessíveis ao grande público consumidor. Muito mais que apenas aparelhos telefônicos, celulares e smartphones trazem a possibilidade da utilização de aplicações cada vez mais complexas e completas para o dia-a-dia das pessoas. A possibilidade de utilização de recursos de internet, GPS, sensores de posicionamento e movimento abrem um leque de recursos a serem utilizados em aplicações cada vez mais inovadoras e criativas. A evolução dos sistemas operacionais de celulares e outros dispositivos móveis disponibilizam cada vez mais recursos e possibilidades para os desenvolvedores. A plataforma Java tem grande tradição no desenvolvimento de aplicativos para dispositivos móveis, através de sua plataforma J2ME. Por se tornar de uma plataforma independente, capaz de ser executada sobre qualquer sistema operacional, os recursos de componentes disponíveis para este tipo de aplicação é relativamente restrito, pois há uma grande necessidade de manutenção de compatibilidade. Na esteira desta evolução, a gigante de software Google, através da OHA (Open Handset Alliance um grupo de 79 empresas de tecnologia reunidas com o intuito de acelerar a inovação em dispositivos móveis) lançou recentemente a sua própria plataforma de desenvolvimento para dispositivos móveis, que engloba um sistema operacional um middleware e um conjunto básico de aplicativos. Chamada de Android, esta plataforma open source está voltada essencialmente para smartphones, e possibilita a extensa utilização dos recursos destes aparelhos na criação de aplicativos. Para um desenvolvimento nativo na plataforma Android, está disponível o Android SDK. Utilizando a linguagem Java, os aplicativos desenvolvidos nesta plataforma são executados por uma máquina virtual chamada Dalvik. Por tratar-se de um ambiente que, apesar de muito evoluído, ainda precisa de cuidados no gerenciamento de recursos, a máquina virtual Dalvik possui diversos mecanismos de gerenciamento e aproveitamento de recursos e memória do dispositivo, visando aliar performance e recursos na execução dos aplicativos. Além da possibilidade de criação de interfaces via código- -fonte, como na plataforma J2ME, a plataforma Android permite a criação de interfaces através de arquivos XML, que são lidos pela aplicação, para então haver a montagem da interface. A listagem 1 traz exemplos simples de criação de uma interface utilizando a API padrão do Android. Por mais que haja uma evolução na criação de interfaces, principalmente em relação aos componentes disponíveis na plataforma J2ME, a codificação destas interfaces ainda é bastante braçal, e o tratamento de eventos e de controles de ação deve ser toda codificada na classe Java que representa a aplicação. Adobe lex ocada no desenvolvimento de Rich Internet Application Infosep em Revista - 1ª Edição Página 6

7 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico (RIA), que busca a utilização de recursos avançados de interfaces disponíveis para desktop em ambiente WEB, a plataforma Adobe lex voltou-se recentemente para o desenvolvimento de aplicativos para dispositivos móveis. Em sua concepção, lex é multiplataforma, pois roda sobre o lash Player nos browsers, e na runtime Adobe AIR, em aplicações Desktop. altava, porém, a possibilidade de estender o desenvolvimento de aplicativos em uma plataforma compatível com dispositivos móveis. O primeiro passo para isto foi a disponibilização do lash Player para as versões de browsers em dispositivos móveis. Porém, não havia um conjunto de componentes ou uma plataforma que permitisse ao desenvolvedor lex usufruir dos recursos da plataforma mobile. Isto porque, aplicações RIA, executadas em desktop ou mobile, possui uma série de restrições quanto à utilização de recursos de sistema, devido a questões de segurança. Assim, apoiada sobre a versão 2.5 do Adobe AIR, foi lançado o Adobe lex SDK Hero, um framework de desenvolvimento de aplicativos lex para a plataforma mobile. Por basear-se em AIR, o SDK Hero permite que o desenvolvedor utilize as vantagens e recursos do sistema operacional do dispositivo móvel, assim como as aplicações J2ME tradicionais, porém com a vantagem de poder utilizar todos os recursos de componentes visuais da plataforma lex, além de dispor de todo o suporte de conectividade com aplicações em servidor, desenvolvidas em qualquer tipo de plataforma (Java,.NET, PHP, Ruby, etc). Nesta versão do SDK, os componentes padrões foram otimizados para trabalharem de forma correta em dispostiviso touchscreen, além de oferecer suporte a layouts dinâmicos e novos componentes que encapsulam necessidades comuns em aplicativos voltados para smartphones. A versão atual do Adobe lex SDK Hero ainda é um preview release, distribuído juntamente com o Adobe lash Builder Burrito, versão da IDE de desenvolvimento com suporte ao desenvolvimento de aplicações para dispositivos móveis. Em seu preview release, o Adobe lex SDK Hero oferece suporte apenas à plataforma Android. Porém, a idéia é que o suporte seja estendido a outros sitemas, e outros dispositivos. Instalação do Adobe lash Builder Burrito Para o desenvolvimento de aplicativos para Android utilizando a plataforma lex, é necessária a instalação da IDE de desenvolvimento Adobe lash Builder Burrito. Esta pode ser baixada diretamente do site da Adobe (http://labs.adobe.com/ technologies/flex/mobile/), de forma gratuita para avaliação por 60 dias. O processo de instalação é simples, e não requer configurações específicas. 01. <?xml version="1.0" encoding="utf-8"?> 02. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 03. android:orientation="vertical" 04. android:layout_width="fill_parent" 05. android:layout_height="fill_parent" 06. > 07. <Textiew 08. android:layout_width="fill_parent" 09. android:layout_height="wrap_content" 10. android:text="olá Android!" 11. /> 12. </LinearLayout> 01. package com.infosep.mobile; import android.app.activity; 04. import android.os.bundle; 05. import android.widget.linearlayout; 06. import android.widget.textiew; 07. import android.widget.linearlayout.layoutparams; public class HelloAndroid extends Activity { public void oncreate(bundle savedinstancestate) { 13. super.oncreate(savedinstancestate); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( 16. LayoutParams.ILL_PARENT, 17. LayoutParams.WRAP_CONTENT); 18. LinearLayout.LayoutParams txtlp = new LinearLayout.LayoutParams( 19. LayoutParams.ILL_PARENT, 20. LayoutParams.WRAP_CONTENT); LinearLayout layout = new LinearLayout(this); 24. layout.setorientation(linearlayout.ertical); Textiew txt = new Textiew(this); 27. txt.settext("olá Android!"); layout.addiew(txt, txtlp); 30. this.addcontentiew(layout, lp); 31. } 32. } Listagem 1 - Exemplos de códigos de interface utilizando a API padrão para Android O ambiente de desenvolvimento traz a IDE Adobe lash Builder, o Adobe lex SDK Hero para a criação de aplicativos para a plataforma AIR Mobile, e um ambiente para execução, depuração e geração de instalador dos seus aplicativos, que podem então ser importados diretamente no smartphone. A IDE Adobe lash Builder Burrito foi desenvolvida com base na plataforma Eclipse, e é bastante simples e intuitiva. O desenvolvimento é feito na perspectiva lash. A figura 1 traz a visão inicial da IDE. Infosep em Revista - 1ª Edição Página 7

8 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico O Novo SDK Hero ser observado e evitado sempre que possível, exceção feita à listagens, com scroll vertical. Outro agravante que deve ser observado é a orientação da tela do aparelho. Uma interface deve ser capaz de adaptar-se o máximo possível tanto a orientação retrato quanto paisagem. A IDE lash Builder Burrito permite que a aplicação seja visualizada em dempo de projeto tanto na orientação retrato quanto paisagem, além de diversos tamanhos de tela, de diferentes modelos de aparelhos, conforme mostra a figura 2. Área de toque: componentes desenvolvidos para aparelhos touchscreen devem possuir uma área de toque que facilite a interação com o usuário. Assim os componentes devem ser maiores que geralmente são em aplicações tradicionais. Isto também A biblioteca de componentes o novo SDK Hero compreende um conjunto de componentes para construção de interface visual através das linguagens MXML e ActionScript 3.0, além de componentes que permitem a conectividade com aplicações servidoras, da mesma forma que as aplicações construídas com as versões anteriores de lex, para WEB e desktop. Por tratar-se de um ambiente totalmente novo e com várias particularidades em relação ao ambiente WEB, os componentes visuais receberam novos skins para otimizar sua utilização em aparelhos touchscreen. Além disto, alguns novos componentes específicos foram criados para tratar requisitos comuns em interfaces visuais em dispositivos móveis. O desenvolvimento de aplicativos para dispositivos móveis levanta alguns requisitos específicos que precisam ser observados, qualquer que seja a tecnologia utilizada: Tamanho e Orientação da Tela: diferentemente das aplicações que serão executadas em monitores convencionais, o espaço que se dispõe para a construção da interface com o usuário em dispositivos móveis é extremamente restrito. Por mais que os mais recentes modelos de smartphones tenham melhorado bastante neste aspecto, os displays destes dispositivos ainda são extremamente reduzidos, o que significa que os projetos de interface devem aproveitar ao máximo o espaço disponível, sem tornarem- -se poluídas ou desorganizadas. O excesso de scroll tanto vertical quanto horizontal também deve igura 1 - isão Geral da IDE Adobe lash Builder Burrito ocorre devido à densidade de pixels das telas de dispositivos móveis. Os componentes mais comuns, como caixas de texto, checkbox, botões e links possuem um novo skin, na nova versão do SDK, com dimensões e resolução adequada a dispositivos móveis. Além disto, as funcionalidades de scroll em listas foi adaptada para serem acionadas através do toque do usuário na tela. Navegação: devido o tamanho reduzido das telas em dispositivos móveis, as aplicações precisam ser projetadas de forma a dividir a entrada de dados com o usuário em várias telas. A navegação entre estas telas deve ser intuitiva e simples, de forma que o usuário não se perca entre as telas, ou encontre-se sem um caminho de volta ao início da aplicação. igura 2 - Seleção de orientação e modelo de aparelho no Adobe lash Builder Burrito Infosep em Revista - 1ª Edição Página 8

9 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico Limitações de uso de CPU e memória: apesar da grande evolução dos aparelhos, a capacidade de memória e poder de processamento ainda é muito inferior aos computadores tradicionais. Apesar de o SDK Hero ter sido concebido observando estes fatores, recomenda-se cuidado na utilização de componentes mais pesados, como gráficos e componentes rich text. Para demonstrar a utilização destes componentes, será desenvolvido um pequeno aplicativo de cadastro de contatos. O aplicativo consiste de duas telas: uma tela inicial de listagem de contatos, através do qual o usuário poderá acionar a tela de cadastro ou alteração dos dados do contato. A persistência será feita por uma aplicação Java rodando em servidor. A integração entre o aplicativo lex e o servidor será feita utilizando o framework BlazeDS. A parte servidora da aplicação não será abordada neste artigo. Desenvolvendo o aplicativo de exemplo Para criar um novo projeto no lex Builder Burrito, utiliza-se o menu ile > New igura 4 - Novo Projeto Móvel - Passo 2 igura 3 - Novo Projeto Móvel - Configuraçao do Projeto e SDK > lex Mobile Project. Na primeira tela de configuração (figura 3) deve-se informar o nome do projeto. A tela seguinte é de seleção da plataforma de execução do aplicativo. Até o momento a única plataforma disponível é a Google Android. Na terceira tela (figura 4) deve ser configurada, se existir, a conexão com a aplicação servidora. Neste exemplo será utilizada a plataforma J2EE, com BlazeDS. O projeto criado traz, por padrão, a seguinte estrutura: MobileApplication (contatos.mxml) : é o equivalente ao Application das aplicações lex para WEB. É o arquivo de início do projeto e da execução do aplicativo. Diferentemente de aplicações lex tradicionais, normalmente não são incluídos componentes ou lógica de interação neste arquivo. Aplicações construídas baseadas em MobileApplication dispõem de um objeto iewnavigator, que permite o controle e navegação entre as diversas iews da aplicação. Toda a aplicação é baseada em objetos iew, que são gerenciadas pelo iewnavigator. O atributo firstiew do MobileApplication define qual será a iew exibida no início da aplicação. iew (contatoshome.mxml): toda tela do aplicativo deverá estender o componente spark.components.iew e pode ser desenvolvida tanto utilizando MXML quanto ActionScript, da mesma forma que os componentes de aplicações lex para WEB ou desktop. O componente iew é o container que irá conter todos os elementos visuais das telas da aplicação. Todo componente iew possui em seu topo um ActionBar. O ActionBar contém o título da iew e pode conter outros componentes de ação. Toda iew possui sua própria ActionBar, assim como a MobileApplication. Porém, os elementos adicionados à ActionBar da MobileApplication, aparecerão também em todos os ActionBars de todas as Infosep em Revista - 1ª Edição Página 9

10 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico demais iews da aplicação. Arquivo de Configuração da Aplicação (contatos-app. xml): arquivo que contém parâmetros para configuração, execução e instalação do aplicativo. Não será modificado neste artigo. O aplicativo de cadastro de contatos consiste de duas iews: uma para a listagem de todos os contatos, e outra para o cadastro e alteração das informações. A figura 5 traz a estrutura das duas iews da aplicação. A aplicação está configurada para acessar o servidor WEB para busca e persistência de dados. A aplicação servidora foi desenvolvida em Java, utilizando o framework BlazeDS para integração entre as camadas lex e Java. A comunicação é feita através do protocolo AM3, que permite que um objeto seja enviado entre as camadas da aplicação de forma transparente. Neste aplicativo será utilizado uma classe ActionScript ContatoO, que irá conter as propriedades do contato, e será enviado e recebido pela aplicação lex, na comunicação com o servidor. A listagem 2 traz o código da classe ContatoO. A primeira iew que é exibida pela aplicação é a iew de listagem de contatos. Para exibir a lista de dados, será utilizado um componente List. Este componente pode ser ligado a uma estrutura de dados como um Array, ArrayCollection ou XML, e permite a exibição de uma propriedade dos objetos destas estruturas. A ligação é feita através da propriedade dataprovider. Para preenchermos a lista com os dados já cadastrados no servidor, precisamos fazer uma invocação do serviço remoto. Neste exemplo utilizou-se a classe RemoteObject para comunicação. Os dados serão buscados no servidor em dois eventos: creationcomplete, para que ao iniciarmos o aplicativo este já traga carregada a listagem dos contatos cadastrados, e no evento activate, para que toda vez que o usuário navegue da tela de cadastro de volta para a tela de listagem, a lista seja atualizada. A listagem 3 traz o código para o tratamento destes eventos. Por padrão, o componente List exibe apenas uma propriedade do objeto da lista, através da propriedade labelield. lex permite a customização desta exibição através da aplicação de ItemRenderers, que são componentes que substituem os itens da listagem. Nestes componentes, podem ser utilizados outros componentes para exibição de informações e interação com o usuário. Para criação de um ItemRenderer, pode-se utilizar o menu ile > New > MXML Item Renderer. O SDK Hero traz em sua biblioteca padrão dois ItemRenderers que nos permitem customizar a exibição de itens no componente List: MobileItemRenderer e MobileIconItemRenderer. Neste exemplo utilizou-se o renderer MobileIconItemRenderer. Este renderer permite que sejam exibidas duas linhas de texto, além de um ícone opcional em cada linha. Utilizou-se as propriedades labelield e messageield, para exibir, respectivamente o nome e o de cada contato (listagem 4). Para fazer a ligação com a tela de cadastro, foram incluídas duas ações: ao clicar em um item da lista a iew de cadastro de contato será exibida com todos os campos preenchidos com os dados do contato selecionado. Um botão de ação adicionado à ActionBar executa uma ação semelhante, porém traz a tela de cadastro em branco, para o cadastro de um novo contato. A iew de cadastro contém os componentes para inclusão e alteração dos dados do contato. Para adicionar uma nova iew, basta clicar com o botão esquerdo sobre o pacote views no projeto contatos e selecionar a opção New > MXML Component. Por padrão, o componente base é a classe iew. Porém, igura 5 - Estrutura das iews da aplicação. 1 - Listagem de Contatos; 2 - Botão de ação para tela de inclusão de contato. 3 - iew de inclusão de contato. 4 - Botão de ação para retorno à iew de Listagem Infosep em Revista - 1ª Edição Página 10

11 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico 01. package com.infosep.mobile.model 02. { 03. [Bindable] 04. [RemoteClass(alias="com.infosep.model.vo.ContatoO")] 05. public class ContatoO 06. { 07. public function ContatoO(){ 08. } private var _codigo : Number; 11. private var _nome : String; 12. private var _ String; 13. private var _telefone : String; 14. private var _celular : String; 15. private var _ativo : Boolean; // Métodos get e set omitidos 18. } 19. } 01. <s:list left="0" right="0" top="0" bottom="0" id="lista" 02. dataprovider="{this.listacontatos}" click="atualizar();"> 03. <s:itemrenderer> 04. <fx:component> 05. <s:mobileiconitemrenderer labelield="nome" 06. messageield=" "/> 07. </fx:component> 08. </s:itemrenderer> 09. </s:list> Listagem 2 - Código da classe ContatoO esta mesma opção pode ser utilizada na criação de outros componentes personalizados. Na iew de cadastro os compoentes são distribuídos de forma a criarem uma apresentação organizada dos componentes. Os componentes assumem posicionamentos vertical e horizontal, através das propriedades x e y. Da mesma forma que em aplicações lex WEB pode-se utilizar padrões de layout vertical e horizontal para facilitar o posicionamento dos componentes. Para fazer a ligação entre os dados informados pelo usuário nos componentes, utiliza-se o recurso de data binding. Utilizando a ligado à propriedade text dos componentes TextInput e à propriedade selected do componente Checkbox, faz-se uma ligação do conteúdo das propriedades dos componentes aos valores das propriedades do objeto ContatoO de maneira bidirecional. Assim, o que for informado pelo usuário nos campos de texto automaticamente reflete-se no objeto, e vice-versa. Por fim, os botões de salvar e excluir acionam o servidor, para persistência e exclusão do contato. O botão de exclusão será habilitado apenas quando o usuário estiver alterando um contato já cadastrado. A navegação entre as telas é controlada através de um objeto do tipo iewnavigator, que está ligado por padrão ao ActionBar de cada iew. Este componente permite que as telas sejam exibidas e removidas de maneira eficiente do ponto de vista de consumo de memória e processamento do dispositivo. Para incluir uma nova iew, utiliza-se o método pushiew, e para remover, utiliza-se o método popiew. Além de exibir uma nova iew, o método pushiew permite que um objeto seja passado entre as iews. Todo objeto iew possui uma propriedade data, que contém o objeto recebido da iew anterior no momento de sua chamada. A listagem 5 traz os métodos que acionam a iew de cadastro para alteração e inclusão de um contato, a partir da tela de listagem. Para permitir ao usuário voltar à tela inicial, o usuário poderá utilizar o botão voltar, na tela de cadastro, que remove a tela de cadastro, através do método popiew do iewnavigator. O botão oltar do aparelho celular do usuário também fará esta ação de maneira automática. Testando a Aplicação Para testar a aplicação, a IDE Adobe lash Builder Burrito oferece um emulador para teste no desktop. Para executar o aplicativo desenvolvido, utiliza-se a o menu Run > Run. A figura 6 mostra a tela de configuração da execução. Por padrão, o Adobe lash Builder Burrito traz uma série de aparelhos que podem ser simulados na execução. Basta selecionar um deles na lista e clicar em Run. A mesma configuração pode ser feita para depuração do projeto, apenas utilizando o menu Run > Debug. 01. private function oncreate() : void { 02. this.remote.endpoint = 03 "http://localhost:8080/contatosweb/messagebroker/amf"; 04. this.remote.showbusycursor = true; this.oplistar = this.remote.getoperation("listarcontatos") 07. as Operation; 08. this.oplistar.addeventlistener( 09. ResultEvent.RESULT, listarresult); carregarlista(); 12. } private function carregarlista() : void { 15. this.oplistar.send(); 16. } Listagem 3 - Código para execução do método de listagem de contatos Listagem 4 - Código do componente List, na iew de listagem de contatos. O projeto pode também ser exportado para instalação diretamente no aparelho. Para poder ser executado, é necessário que o aparelho possua o sistema operacional Android versão 2.2 ou superior, e o Adobe AIR SDK 2.5. Para exportar o aplicativo para instalação no aparelho, deve ser utilizada o menu Project > Export Release Build. Deve ser informado o local de destino da publicação, e então clicar em Next (figura 7). Para que possa ser instalado no aparelho celular, é necessário que o aplicativo tenha associado a si um certificado digital, para garantir a confiabilidade do mesmo. Pode-se importar um certificado existente, ou então criar um novo. Neste exemplo foi criada um novo certificado (figura 8). O arquivo.p12 gerado poderá ser reutilizado em futuras aplicações. Infosep em Revista - 1ª Edição Página 11

12 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico Uma vez selecionado o certificado, basta clicar em inish, e um arquivo.apk será gerado no local de destino selecionado. Caso o aparelho já esteja plugado ao computador, o arquivo.apk poderá ser publicado diretamente no aparelho. Conclusão O desenvolvimento de aplicativos visando a mobilidade e a conectividade entre aplicações de diferentes ambientes e plataformas é cada vez mais uma forte tendência entre os desenvolvedores. O grande investimento de grandes empresas como Adobe, Google e Microsoft motivam cada vez mais o estudo e desenvolvimento de tecnologias neste sentido. A plataforma lex já de muito sucesso no desenvolvimento de aplicações WEB traz uma excelente opção para o desenvolvimento de aplicações também em dispositivos móveis. A versão utilizada neste aplicativo é apenas um preview release, porém é suficiente para mostrar o que pode-se esperar em um futuro próximo. Até sua versão final, novas plataformas 01. private function adicionarnovo() : void { 02. navigator.pushiew(cadastrocontatos); 03. } private function atualizar() : void { 06. if (this.lista.selecteditem!= null){ 07. navigator.pushiew(cadastrocontatos, 08. this.lista.selecteditem); 09. } 10. } Listagem 5 - Código de ação do botão para adicionar contatos e para alteração de contato, a partir da seleção de um item na listagem. poderão ser atendidas, o que abre ainda mais o leque de possibilidades de uso destas aplicações. igura 6 - Tela de configuração para execução do projeto Infosep em Revista - 1ª Edição Página 12

13 Desenvolvimento de Aplicativos para Android com Adobe lex Artigo Técnico igura 7 - Tela de exportação do release da aplicação. O Autor Prof. Roberto Cesar da Silva Padilha Especialista em Desenvolvimento WEB com Java e.net pela UTPR, e SCJP 1.5 desde 2006, possui 7 anos de experiência em projeto e desenvolvimento de sistemas, e há 2 trabalha com a tecnologia Adobe lex. Roberto é professor do Curso de Sistemas de Informação da Unisep campus de rancisco Beltrão. igura 8 - Tela de configuração do certificado digital. Infosep em Revista - 1ª Edição Página 13

14 Dicas & Desafios Operações Lógicas sobre Proposições 1 Negação Chama-se negação de uma proposição p a proposição representada por não p, cujo valor lógico é a verdade () quando p é falsa e a falsidade () quando p é verdadeira. Desta forma não p tem valor lógico oposto a p. Simbolicamente, a negação de p é indicada com a notação ~p, que se lê: não p.a tabela verdade da negação: p ~p 2 Conjunção (e ^) Chama-se conjunção de duas proposições p e q a proposição representada por p e q, cujo valor lógico é a verdade () quando as proposições p e q são ambas verdadeiras e a falsidade () nos demais casos. Simbolicamente, a conjunção de duas p q p^q proposições p e q é indicada com a notação p ^ q, que se lê: p e q. A tabela verdade da conjunção: 3 Disjunção (ou v) Chama-se disjunção de duas proposições p e q a proposição representada por p ou q, cujo valor lógico é a verdade () quando ao p q p v q menos uma das proposições p e q é verdadeira e a falsidade () quando ambas são falsas. Simbolicamente, a conjunção de duas proposições p e q é indi- cada com a notação p v q, que se lê: p ou q. A tabela verdade da disjunção: 4 Disjunção Exclusiva (e/ou v) Chama-se disjunção exclusiva de duas proposições p e q a proposição representada por simbolicamente por p v q, que se lê ou p ou q ou p ou que, mas não ambos, cujo valor lógico é a verdade () somente quando p é verdadeira ou q é verdadeira, mas não quando p e q são ambas verdadeiras e a falsidade () quando ambas são verdadeiras ou ambas são falsas. Simbolicamente, a conjunção de duas proposições p e q é indicada com a notação p v q. A tabela verdade da disjunção exclusiva: p q p v q suficiente para q ou p é condição necessária para q. A tabela verdade da condicional: 6 Bicondicional (se e somente se ) Chama-se bicondicional uma proposição representada por p se e somente se q, cujo valor lógico é a verdade () quando p e q são ambas verdadeiras ou ambas falsas e a falsidade () nos demais casos. Simbolicamente, a bicondicional de duas proposições p e q é indicada com a notação p q, que se lê: p é condição necessária e suficiente para q ou q é condição necessária e suficiente para p. A tabela verdade da bicondicional: p q p q Desafio 1 - As Três Senhoras Três senhoras dona Branca, dona Rosa e dona ioleta passeavam pelo parque quando dona Rosa disse: - Não é curioso que estejamos usando vestidos de cores branca, rosa e violeta, embora nenhuma de nós esteja usando um vestido de cor igual ao seu próprio nome? - Uma simples coincidência respondeu a senhora com o vestido ioleta. Com base nestas informações apresente a cor do vestido de cada senhora? Desafio 2 - Torres de Hanói Um algoritmo pode ser definido como uma seqüência de passos que visam a atingir um objetivo bem definido. Logo, elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em três hastes (a b c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 2 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste. 5 Condicional (se então ) Chama-se condicional uma proposição representada por se p então q, cujo valor lógico é a falsidade () no caso em que p e q é falsa e a verdade () nos demais casos. Simbolicamente, a conjunção condicional de duas proposições p e q é indicada com a notação p q, que se lê: p é Infosep em Revista - 1ª Edição p q p q As respostas dos desafios será divulgada na próxima edição! Página 14

15 Artigo Técnico Algoritmos Genéticos Márcio Dalorsoleta Prof. Roberto Cesar da Silva Padilha A eficiência na resolução de problemas complexos com aplicabilidade de métodos de pesquisa estocástica conhecidos como Algoritmos Genéticos vem apresentado soluções alternativas em diversas situações. Com este artigo pretende-se alcançar o conhecimento e desmistificar a complexidade da aplicação desta solução computacional, através da exemplificação de um algoritmo simples com utilização de seleção Roulette Wheel. Apresenta-se, ainda, uma introdução histórica e conceitual dos elementos fundamentais para o estudo de algoritmos genéticos. Histórico Acreditavam os naturalistas até meados do século 19, que cada espécie havia sido criada separadamente por um ser supremo ou através de geração espontânea. O trabalho do naturalista Carolus Linnaeus sobre a classificação biológica de organismos despertou o interesse pela similaridade entre certas espécies, levando a acreditar na existência de certa relação entre elas. Outros trabalhos influenciaram os naturalistas em direção à teoria da seleção natural, tais como os de Jean Baptiste Lamark, que sugeriu uma teoria evolucionária no uso e desuso de órgãos; e de Thomas Robert Malthus, que propôs que fatores ambientais tais como doenças e carência de alimentos, limitavam o crescimento de uma população. Depois de mais de 20 anos de observações e experimentos, Charles Darwin apresentou em 1858 sua teoria de evolução através de seleção natural, simultaneamente com outro naturalista inglês Alfred Russel Wallace. No ano seguinte, Darwin publica o seu On the Origin of Species by Means of Natural Selection com a sua teoria completa, sustentada por muitas evidências colhidas durante suas viagens a bordo do beagle (HMS Beagle era um navio da Armada Inglesa que deu a volta ao mundo com Charles Darwin abordo. A viagem do Beagle durou quatro anos e nove meses, dois terços dos quais Darwin esteve em terra firme. Ele estudou uma rica variedade de características geológicas, fósseis, organismos vivos e conheceu muitas pessoas, entre nativos e colonos.) A teoria da evolução e a computação nasceram praticamente na mesma época: Charles Babbage, um dos fundadores da computação moderna e amigo de Darwin desenvolveu sua máquina analítica em Por volta de 1900, o trabalho de Gregor Mendel, desenvolvido em 1865, sobre os princípios básicos de herança genética, foi redescoberto pelos cientistas e teve grande influência sobre os futuros trabalhos relacionados à evolução. A moderna teoria da evolução combina a genética e as idéias de Darwin e Wallace sobre a seleção natural, criando o princípio básico de Genética Populacional: a variabilidade entre indivíduos em uma população de organismos que se reproduzem sexualmente é produzida pela mutação e pela recombinação genética [1]. Este princípio foi desenvolvido durante os anos 30 e 40, por biólogos e matemáticos de importantes centros de pesquisa. Nos anos 50 e 60, muitos biólogos começaram a desenvolver simulações computacionais de sistemas genéticos. Entretanto, foi John Holland quem começou, seriamente, a desenvolver as primeiras pesquisas no tema. Holland foi gradualmente refinando suas idéias e em 1975 publicou o seu livro Adaptation in Natural and Artificial Systems, hoje considerado a Bíblia de Algoritmos Genéticos. Desde então, estes algoritmos vêm sendo aplicados com sucesso nos mais diversos problemas de otimização e aprendizado de máquina. A aplicação prática de algoritmos genéticos pode ser observada em avaliação de políticas de compra e venda de mercadorias, montagens de escalas de trabalho de hospitais, escolas e universidades, mineração e refinação de dados, entre outras. Características dos Algoritmos Genéticos Algoritmos Genéticos (AG) são algoritmos de otimização Infosep em Revista - 1ª Edição Página 15

16 Algoritmos Genéticos Artigo Técnico Indivíduo Si Aptidão f(si) Aptidão Relativa S ,23 0,14 S ,27 0,47 S ,05 0,07 S ,35 0,21 S ,69 0,11 Imagem 1 - Indivíduos de uma pouplação e sua correspondente roleta de seleção global, baseados nos mecanismos de seleção natural e da genética. Eles empregam uma estratégia de busca paralela e estruturada, mas aleatória, que é voltada em direção ao reforço da busca de pontos de alta aptidão, ou seja, pontos nos quais a função a ser minimizada (ou maximizada) tem valores relativamente baixos (ou altos) [2]. Apesar de aleatórios, eles não são caminhadas aleatórias não direcionadas, pois exploram informações históricas para encontrar novos pontos de busca onde são esperados melhores desempenhos. Isto é feito através de processos iterativos, onde cada iteração é chamada de geração. Durante cada iteração, os princípios de seleção e reprodução são aplicados a uma população de candidatos que pode variar, dependendo da complexidade do problema e dos recursos computacionais disponíveis. Através da seleção, se determina quais indivíduos conseguirão se reproduzir, gerando um número determinado de descendentes para a próxima geração, com uma probabilidade determinada pelo seu índice de aptidão. O ponto de partida para a utilização de Algoritmos Genéticos, como ferramenta para solução de problemas, é a representação destes problemas de maneira que os Algoritmos Genéticos possam trabalhar adequadamente sobre eles. A maioria das representações são genotípicas, utilizam vetores de tamanho finito em um alfabeto finito. 01. Procedimento AG 02. { 03. t = 0; 04. inicia_população (P, t) 05. avaliação (P, t); repita até (t = d) 08. { 09. t = t +1; 10. seleção_dos_pais (P,t); 11. recombinação (P, t); 12. mutação (P, t); 13. avaliação (P, t); 14. sobrevivem (P, t) 15. } 16. } onde: t - tempo atual; d - tempo determinado para finalizar o algoritmo; P - população Listagem 1 - Exemplo de algoritmo genético com pseudocódigo Tradicionalmente, os indivíduos são representados genotipicamente por vetores binários, onde cada elemento de um vetor denota a presença (1) ou ausência (0) de uma determinada característica: o seu genótipo. Os elementos podem ser combinados formando as características reais do indivíduo, ou o seu fenótipo. Teoricamente, esta representação é independente do problema, pois uma vez encontrada a representação em vetores binários, as operações padrão podem ser utilizadas, facilitando o seu emprego em diferentes classes de problemas. A utilização de representações em níveis de abstração mais altos tem sido investigada. Como estas representações são mais fenotípicas, facilitariam sua utilização em determinados ambientes, onde essa transformação fenótipo - genótipo é muito complexa. Neste caso, precisam ser criados os operadores específicos para utilizar estas representações. O princípio básico do funcionamento dos AGs é que um critério de seleção vai fazer com que, depois de muitas gerações, o conjunto inicial de indivíduos gere indivíduos mais aptos[3]. A maioria dos métodos de seleção são projetados para escolher preferencialmente indivíduos com maiores notas de aptidão, embora não exclusivamente, a fim de manter a diversidade da população. Um método de seleção muito utilizado é o Roulette Wheel, onde indivíduos de uma geração são escolhidos para fazer parte da próxima geração, através de um sorteio de roleta. Neste método, cada indivíduo da população é representado na roleta proporcionalmente ao seu índice de aptidão. Assim, aos indivíduos com alta aptidão é dada uma porção maior da roleta, enquanto aos de aptidão mais baixa é dada uma porção relativamente menor da roleta. inalmente, a roleta é girada um determinado número de vezes, dependendo do tamanho da população, e são escolhidos, como indivíduos que participarão da próxima geração, aqueles sorteados na roleta. Um conjunto de operações é necessário para que, dada uma população, se consiga gerar populações sucessivas que (espera-se) melhorem sua aptidão com o tempo. Estes operadores são: cruzamento (crossover) e mutação. Eles são utilizados para assegurar que a nova geração seja totalmente nova, mas possuí de alguma forma, características de seus pais, ou seja, a população se diversifica e mantém características de adaptação adquiridas pelas gerações anteriores. Para prevenir que os melhores indivíduos não desapareçam da população pela manipulação dos operadores genéticos, eles podem ser automaticamente colocados na próxima geração, através da reprodução elitista. Esse ciclo é repetido um determinado número de vezes. Infosep em Revista - 1ª Edição Página 16

17 Algoritmos Genéticos Artigo Técnico Na lisagem 1 é mostrado um exemplo de algoritmo genético. Durante esse processo, os melhores indivíduos, assim como alguns dados estatísticos, podem ser coletados e armazenados para avaliação. Apesar de computacionalmente muito simples, estes algoritmos são bastante poderosos, pois não são limitados por suposições sobre o espaço de busca, relativas à continuidade, por um ponto fixo sem ruídos de interpretação do meio externo. 01. class Crom implements Comparable { char[] alleles; // Alelos do cromossomo, cada um contendo 0 ou int fitness; // alor de fitness do cromossomo public Crom(char[] a) { 07. alleles = a; 08. fitness = 0; 09. } public int compareto(object o) { 12. Crom ocrom = (Crom)o; if(ocrom.fitness < this.fitness) 15. return -1; 16. else 17. return 1; 18. } 19. } Listagem 2 - Definição da classe cromossomo Implementando um Algoritmo Genético com Seleção Roulette Wheel Na listagem 2 a classe Crom é a que definimos a estrutura do cromossomo( È uma longa sequência de DNA, que contém vários genes, e outras sequências de nucleótidos (nucleotídeos) com funções específicas nas células dos seres vivos.). O membro alleles é um array de caracteres no qual cada locus contém um de dois valores, 1 ou 0, indicando que o bit está ligado ou desligado, formando assim a string de bits do cromossomo, ou seja, a solução candidata para o problema. A variável fitness é um número inteiro que indica o fitness do cromossomo. 01. Crom[] calcitness(crom[] clist) { 02. // O TreeSet é utilizado para ordenar a população de cromossomos 03. // de acordo com o valor fitness, do melhor para o pior fitness 04. java.util.treeset sortbyitness = new java.util.treeset(); 05. // Cada cromossomo da população tem seu fitness calculado. 06. // O fitness nesse exemplo é indicado pela quantidade de 07. // 1's (bits "ligados") contidos no cromossomo 08. for(crom c : clist){ 09. for (int l = 0; l < c.alleles.length; ++l) { 10. c.fitness += (c.alleles[l] == '1'? 1 : 0); 11. } sortbyitness.add(c); 14. } return sortbyitness.toarray(new Crom[]{}); 17. } Listagem 3 - Definição do método calcitness O método calcitness da listagem 3 é um dos mais importantes, pois é onde será definido o quanto um cromossomo está próximo da melhor solução possível para o problema em questão. Na implementação da listagem 4, um numero aleatório é sorteado, variando entre 0 e a soma do total de fitness da população. A partir desse número, começando pelo cromossomo de melhor fitness, o valor de fitness de cada indivíduo da população é subtraído do fitness total da população até que se chegue a um número menor ou igual ao número sorteado. O cromossomo que gerou a última subtração é então escolhido como um cromossomo pai. Esse processo é repetido para selecionar os próximos cromossomos pai até que todos os cromossomos filho (offspring) tenham sido gerados e populados na geração seguinte, como pode ser visto no método crossover. O processo de crossover[4] acontece a cada geração (epoch/iteração) do GA, realizando os cruzamentos mencionados acima para gerar os indivíduos da população da geração seguinte. Nessa implementação o método de crossover também realiza a mutação de alelos[5] durante a cópia dos genes do cromossomo pai para o cromossomo filho de acordo com a probabilidade de mutação MUT_RATE. Além disso, a taxa de crossover (XO_RATE) define se dois pais selecionados sofrerão cruzamento ou se seus genes serão copiados sem nenhuma alteração para os filhos. No algoritmo implementado em Java com diversas fontes de conhecimento agregadas em um exemplo de AG implementa- -se o método Roulette Wheel que visa somente a implementação e não a resolução de qualquer problema em especifico todavia, se utilizado a implementação do mesmo poderá facilmente ser adaptado a qualquer tipo de problema especifico. A usabilidade 01. final int POP_SIZE = 100; // Tamanho da população de cromossomos 02. final float MUT_RATE = 0.001f; // Taxa/probabilidade de mutação 03. final float XO_RATE = 0.7f; // Taxa/probabilidade de crossover 04. final int CROM_LEN = 20; // Tamanho (qtde. de bits) do cromossomo 05. final int NUM_GENS = 20; // Quantidade de gerações Listagem 6 - Definição de constantes do algoritmo e reaproveitamento do AG poderá simplesmente ser reaplicado fazendo-se alguns ajustes nas variáveis principais (rate de mutação, rate de crossover) e na função de fitness. Com as constantes do AG valorizadas (listagem 6) poderemos observar os resultados: MUT_RATE: esse número deve estar em entre 0.0 e 1.0 e indica a taxa de mutação dos alelos durante o processo de crossover; XO_RATE: a taxa de crossover indica a probabilidade de cruzamento entre dois cromossomos quando uma nova população está sendo formada; CROM_LEN: nesse exemplo, os genes dos cromossomos são formados por uma string de bits e essa variável indica o tamanho (quantidade de bits) de cada cromossomo; Infosep em Revista - 1ª Edição Página 17

18 Algoritmos Genéticos Artigo Técnico NUM_GENS: aqui indicamos quantas gerações serão produzidas ao executar o GA, ou seja, quantas novas populações serão geradas durante a execução. Após todas as gerações terem sido executadas, imprime o fitness e valor dos alelos dos indivíduos da última geração (listagem 7). [1]John H. Holland. Adaptation in Natural and Artificial Systems. [S.l.]: University of Michigan Press, ISBN [2]ernandes, Anita Maria da Rocha, Inteligência Artificial Noções Gerais, isual Books, > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 15 Listagem 7 - Demonstração de resultados do algoritmo Conclusão Os AGs requerem do programador informações sobre como avaliar seus indivíduos, isto é, quão boa é a resposta que este representa, mas não exige informações sobre como deve proceder para encontrar pontos ótimos. Esta independência pode ser encarada como um atributo que confere maior inteligência ao processo. AGs clássicos apresenta um desempenho em muitos casos pouco satisfatório um vez comparados com outros algoritmos de busca. Para resolver tal problema, o uso da heurística no operadores genéticos tem sido a solução mais universal adotada. Tal uso não deve ser indiscriminado: ao implementar função dependente de domínio, aproximamos os AGs de seus concorrentes, mesmo no que diz respeito a desvantagens, e em casos mais externos vamos de encontro á sua própria filosofia de funcionamento. Um mau uso da heurística pode, ainda, suprimir a biodiversidade da população e causar problemas como o da convergência prematura. Existem bons argumentos para justificar a popularidade alcançada pelos algoritmos genéticos na comunidade cientifica: sua robustez, adaptabilidade, generalidade e alto grau de paralelismo, entre outras qualidade, fazem deles uma escolha natural quando se deseja implementar uma aplicação de busca e otimização. Por meio de analise realizada ao longo deste trabalho é possível concluir que o ponto mais forte da técnica de algoritmos genéticos reside em simular a natuzera em de seus aspectos mais importante: o principio de que toda robustez que apresenta são conseqüência direta do dinamismo existente em sua organização interna. [3]SALADOR,O. Introdução a Algoritmos Genéticos. geneticos.pdf,out [4] Satoru Ochi Luiz. artigos/satoru/satoru.html,out [5]Lacerda,Estéfane. metaheuristicas/ag_binario.pdf,out O Autor Márcio Dalorsoleta Acadêmico do 2º período do curso de Sistemas de Informação da Unisep - Campus de rancisco Beltrão. O Orientador Prof. Roberto Cesar da Silva Padilha Especialista em Desenvolvimento WEB com Java e.net pela UTPR, e SCJP 1.5 desde 2006, possui 7 anos de experiência em projeto e desenvolvimento de sistemas, e há 2 trabalha com a tecnologia Adobe lex. Roberto é professor do Curso de Sistemas de Informação da Unisep campus de rancisco Beltrão. Referências Infosep em Revista - 1ª Edição Página 18

19

20 Av. União da itória, 14 one/ax: (46) rancisco Beltrão - PR Av. Presidente Kennedy, 2601 one/ax: (46) Dois izinhos - PR

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

Desenvolvimento Android. http://www.larback.com.br

Desenvolvimento Android. http://www.larback.com.br Desenvolvimento Android http://www.larback.com.br Introdução ao Android O Android é a resposta da Google ao mercado crescente de dispositivos móveis. É uma nova plataforma de desenvolvimento baseado no

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7 Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação: Habilitação Técnica de Nível Médio Técnico em Informática Programação Android na IDE Eclipse PROGRAMANDO ANDROID

Leia mais

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa

Adobe Flex. Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa Adobe Flex Cainã Fuck dos Santos Thiago Vieira Puluceno Jonathan Kuntz Fornari Gustavo Nascimento Costa O que é Flex? Estrutura de Código aberto para a criação de aplicativos Web Utiliza o runtime do Adobe

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ Introdução ao Android SECAP 2014 Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode baixar e modificar Máquina

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS Leandro Guilherme Gouvea 1, João Paulo Rodrigues 1, Wyllian Fressatti 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil leandrog.gouvea@gmail.com,

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

Introdução às Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais Introdução às Redes Neurais Artificiais Treinamento via Algoritmos Genéticos Prof. João Marcos Meirelles da Silva http://www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola

Leia mais

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6 Android Core Felipe Silveira felipesilveira.com.br Aula 6 Aplicações I Desenvolvimento de Aplicações Android SDK SDK https://developer.android.com/sdk Android SDK Android SDK: Eclipse + ADT plugin + Android

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Introdução ao Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode

Leia mais

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO

UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE INFORMÁTICA COMPUTAÇÃO MÓVEL CONTROLE DE GASTOS PARA ORÇAMENTO DOMÉSTICO Fred Paulino Ferreira, Leonardo Couto, Renato Maia, Luiz G. Montanha Departamento

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características:

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características: Cerne Tecnologia www.cerne-tec.com.br Conhecendo o NSBASIC para Palm Vitor Amadeu Vitor@cerne-tec.com.br 1. Introdução Iremos neste artigo abordar a programação em BASIC para o Palm OS. Para isso, precisaremos

Leia mais

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android Instalação e Configuração do Ambiente de Desenvolvimento Instalação

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis Aula 02 - Exercício Programa de Dispositivos Móveis PDM - Aula02 - Exercício- Ver 02-04/06/2014 08:56 Criando Aplicação Android (BasicView) Vamos continuar a criar interfaces gráficas (UI) básicas com

Leia mais

Manual do Usuário Android Neocontrol

Manual do Usuário Android Neocontrol Manual do Usuário Android Neocontrol Sumário 1.Licença e Direitos Autorais...3 2.Sobre o produto...4 3. Instalando, Atualizando e executando o Android Neocontrol em seu aparelho...5 3.1. Instalando o aplicativo...5

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 01: Visão geral do android, instalação e configuração do ambiente de desenvolvimento, estrutura básica de uma aplicação para Android Objetivos Configurar o ambiente de trabalho

Leia mais

Parte I Introdução ActionScript_30_01.indd 1 5/11/2010 08:29:29

Parte I Introdução ActionScript_30_01.indd 1 5/11/2010 08:29:29 Parte I Introdução ActionScript_30_01.indd 1 5/11/2010 08:29:29 ActionScript_30_01.indd 2 5/11/2010 08:29:34 Aprendendo uma nova linguagem... ActionScript é uma linguagem e, como um novo idioma ou a linguagem

Leia mais

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário

Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0. Ajuda ao Usuário Versão 2.2.0 PIMACO AUTOADESIVOS LTDA. Assistente Pimaco + 2.2.0 Ajuda ao Usuário A S S I S T E N T E P I M A C O + 2.2.0 Ajuda ao usuário Índice 1. BÁSICO 1 1. INICIANDO O APLICATIVO 2 2. O AMBIENTE DE

Leia mais

Manual do usuário. isic 5 - Android

Manual do usuário. isic 5 - Android Manual do usuário isic 5 - Android isic 5 - Android Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. O novo aplicativo Intelbras isic 5 possui tecnologia capaz de visualizar

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007

( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Tutorial JUDE ( JUDE Community 5.1 2006/2007 ) Por Denize Terra Pimenta Outubro/2007 Ferramenta CASE UML Índice Introdução... 2 Download e Instalação... 2 Apresentação da Ferramenta... 2 Salvando o Projeto...

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 05 Programando formularios, activities e intents. Dalton Martins dmartins@gmail.com São Paulo, Março, 2012

Leia mais

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler Desenvolvimento para Android Prá9ca 2 Prof. Markus Endler Criando o primeiro projeto Android Com o ambiente de desenvolvimento preparado, vá em File - > New - > Project... Na janela que abrir, selecione

Leia mais

Capítulo 2 Introdução à ferramenta Flash

Capítulo 2 Introdução à ferramenta Flash Capítulo 2 Introdução à ferramenta Flash Índice 1. O uso da ferramenta Flash no projeto RIVED.... 1 2. História do Flash... 4 1. O uso da ferramenta Flash no projeto RIVED. É importante, antes de iniciarmos

Leia mais

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

Introdução ao Android SDK. Prof. Me. Hélio Esperidião Introdução ao Android SDK Prof. Me. Hélio Esperidião Android SDK O Android SDK permite que os desenvolvedores elaborem as aplicações a partir de um dispositivo virtual para os aparelhos de celular e tablet,

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 5 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM DEZEMBRO / 2014 2 de 5 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

CAPES - MEC COLETA DE DADOS 9.01 MANUAL SIMPLIFICADO DO USUÁRIO 2006

CAPES - MEC COLETA DE DADOS 9.01 MANUAL SIMPLIFICADO DO USUÁRIO 2006 CAPES - MEC COLETA DE DADOS 9.01 MANUAL SIMPLIFICADO DO USUÁRIO 2006 1 APRESENTAÇÃO...2 2 INSTALAÇÃO...2 3 IMPORTAÇÃO DO ARQUIVO ESPECÍFICO...3 4 IMPORTAÇÃO DE DADOS DO CADASTRO DE DISCENTES...4 5 PREENCHIMENTO

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Depurando aplicações Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender dicas e técnicas para encontrar erros em aplicações Android. Conhecer os recursos que auxiliam

Leia mais

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS

MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS MONITOR E PREDITOR DE CONECTIVIDADE WIRELESS BASEADA EM LOCALIZAÇÃO GPS Aluna: Eleonora Cominato Weiner Orientador: Markus Endler Introdução A palavra mobilidade ganha mais importância a cada instante,

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais

Manual do Usuário Características e recursos básicos Enterprise Resource Planning

Manual do Usuário Características e recursos básicos Enterprise Resource Planning Manual do Usuário Características e recursos básicos Enterprise Resource Planning www.pwi.com.br 1 Volpe Enterprise Resource Planning Este manual não pode, em parte ou no seu todo, ser copiado, fotocopiado,

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

Leia mais

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos Programação em Java para a Plataforma Android AULA 1 Primeiros Passos O que é Android Como é o desenvolvimento de aplicações para esse ambiente O que é preciso para começar a programar ABvidades, o início

Leia mais

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Uso do SQLite no Android Professor: Danilo Giacobo OBJETIVOS DA AULA Aprender a persistir dados utilizando o banco de dados SQLite. Conhecer e utilizar a classe SQLiteOpenHelper.

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

Manual do usuário. isic 5 - Android

Manual do usuário. isic 5 - Android Manual do usuário isic 5 - Android isic 5 - Android Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. O novo aplicativo Intelbras isic 5 possui tecnologia capaz de visualizar

Leia mais

Evolução Biológica e Algoritmos Genéticos. Fábio Lima Custódio flc@lncc.br

Evolução Biológica e Algoritmos Genéticos. Fábio Lima Custódio flc@lncc.br Evolução Biológica e Algoritmos Genéticos Fábio Lima Custódio flc@lncc.br Sumário Conceitos gerais O que é evolução? Forças Evolutivas Mutação Deriva Gênica Fluxo gênico Seleção Natural A teoria evolutiva

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

CAPÍTULO IV Sistema Operacional Microsoft Windows XP

CAPÍTULO IV Sistema Operacional Microsoft Windows XP CAPÍTULO IV Sistema Operacional Microsoft Windows XP Sistemas Operacionais Sistemas Operacionais são programas que como o próprio nome diz tem a função de colocar o computador em operação. O sistema Operacional

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 03 Introdução ao ambiente de desenvolvimento: Eclipse e Android SDK Dalton Martins dmartins@gmail.com São

Leia mais

Desenvolvimento de um Framework de Jogos 3D para Celulares

Desenvolvimento de um Framework de Jogos 3D para Celulares Desenvolvimento de um Framework de Jogos 3D para Celulares Fabrício Brasiliense Departamento de Informática e Estatística(INE) Universidade Federal de Santa Catarina (UFSC) Campus Universitário Trindade-

Leia mais

Programação para Android. Aula 06: Activity, menus e action bar

Programação para Android. Aula 06: Activity, menus e action bar Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação

Leia mais

Excel 2010 Modulo II

Excel 2010 Modulo II Excel 2010 Modulo II Sumário Nomeando intervalos de células... 1 Classificação e filtro de dados... 3 Subtotais... 6 Validação e auditoria de dados... 8 Validação e auditoria de dados... 9 Cenários...

Leia mais

Android Básico Hello World!

Android Básico Hello World! Android Básico Hello World! Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI marcio.palheta@gmail.com sites.google.com/site/marcio

Leia mais

Aprovação do curso e Autorização da oferta. PROJETO PEDAGÓGICO DE CURSO FIC de PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS COM ANDROID. Parte 1 (solicitante)

Aprovação do curso e Autorização da oferta. PROJETO PEDAGÓGICO DE CURSO FIC de PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS COM ANDROID. Parte 1 (solicitante) MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA Aprovação do curso e Autorização da oferta PROJETO PEDAGÓGICO

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Ponta Grossa ANDRÉ LUIS CORDEIRO DE FARIA RELATÓRIO DE ESTÁGIO

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Ponta Grossa ANDRÉ LUIS CORDEIRO DE FARIA RELATÓRIO DE ESTÁGIO UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Ponta Grossa ANDRÉ LUIS CORDEIRO DE FARIA RELATÓRIO DE ESTÁGIO Ponta Grossa 2012 ANDRÉ LUIS CORDEIRO DE FARIA RELATÓRIO DE ESTÁGIO Trabalho elaborado pelo

Leia mais

É o UniNorte facilitando a vida de nossos docentes e discentes.

É o UniNorte facilitando a vida de nossos docentes e discentes. ACESSO REMOTO Através do Acesso Remoto o aluno ou professor poderá utilizar em qualquer computador que tenha acesso a internet todos os programas, recursos de rede e arquivos acadêmicos utilizados nos

Leia mais

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. AVISO O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma parte desta publicação pode ser reproduzida nem transmitida

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Digifort Mobile Manual Version 1.0 Rev. A

Digifort Mobile Manual Version 1.0 Rev. A Digifort Mobile Manual Version 1.0 Rev. A 2 Digifort Mobile - Versão 1.0 Índice Parte I Bem vindo ao Manual do Digifort Mobile 1.0 5 1 Screen... Shots 5 2 A quem... se destina este manual 5 3 Como utilizar...

Leia mais

Plano de Aula - Dreamweaver CS6 - cód.5232 24 Horas/Aula

Plano de Aula - Dreamweaver CS6 - cód.5232 24 Horas/Aula Plano de Aula - Dreamweaver CS6 - cód.5232 24 Horas/Aula Aula 1 Capítulo 1 - Introdução ao Dreamweaver CS6 Aula 2 Continuação do Capítulo 1 - Introdução ao Dreamweaver CS6 Aula 3 Capítulo 2 - Site do Dreamweaver

Leia mais

Aplicativo da Manifestação do Destinatário. Manual

Aplicativo da Manifestação do Destinatário. Manual Aplicativo da Manifestação do Destinatário Manual Novembro de 2012 1 Sumário 1 Aplicativo de Manifestação do Destinatário...4 2 Iniciando o aplicativo...4 3 Menus...5 3.1 Manifestação Destinatário...5

Leia mais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO UM PADRÃO ABERTO DE SOFTWARE PARA COMPUTAÇÃO MÓVEL: UM ESTUDO SOBRE GOOGLE ANDROID 1. INTRODUÇÃO O aumento do número usuários de dispositivos móveis atrai cada vez os desenvolvedores a produzir aplicações

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Sistema operacional Windows 7, Windows Live Mail e Adobe Reader. Sistemas operacionais em concursos públicos

Sistema operacional Windows 7, Windows Live Mail e Adobe Reader. Sistemas operacionais em concursos públicos Sistema operacional Windows 7, Windows Live Mail e Adobe Reader Sistemas operacionais em concursos públicos Antes de tudo é importante relembrarmos que o sistema operacional é um tipo de software com a

Leia mais

Manual de instalação e configuração da Ferramenta Android SDK

Manual de instalação e configuração da Ferramenta Android SDK Trabalho de Programação para Dispositivos Móveis Turma: 1011 Camila Botelho camilacunhabotelho@gmail.com Manual de instalação e configuração da Ferramenta Android SDK Introdução O Android é uma ferramenta

Leia mais

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION Robison Cris Brito Centro Federal de Educação Tecnológica do Paraná Unidade de Pato Branco robison@pb.cefetpr.br RESUMO Engana-se quem acha

Leia mais

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso Universidade Federal de Santa Catarina Departamento de Informática e Estatística Curso de Bacharelado em Ciências da Computação Marcus Vinicius Cruz Xavier Rascunho do trabalho de conclusão de curso Título

Leia mais

Noções de Informática

Noções de Informática Noções de Informática 2º Caderno Conteúdo Microsoft Excel 2010 - estrutura básica das planilhas; manipulação de células, linhas e colunas; elaboração de tabelas e gráficos; inserção de objetos; campos

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 02 Parte 01: Tipos de Layouts: RelativeLayout, LinearLayout, TableLayout Widgets: TextView, EditText, ImageView, Button Na aula anterior... Visão geral do Android Kit de desenvolvimento:

Leia mais

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE. Guia PDA e SmartPhones Windows Mobile, Pocket PC e CE. Referência completa para o integrador do sistema Module. Aborda os recursos necessários para a itulização, instalação do software e importação das

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Ferramentas RAD e DELPHI

Ferramentas RAD e DELPHI Origem: http://my.opera.com/maicokrause/blog/ferramentas-rad-e-delphi Data: 17 Nov 2009 Autor: Maico Krause Ferramentas RAD e DELPHI Thursday, 16. July 2009, 14:27:40 Desenvolvimento, Delphi, Engenharia

Leia mais

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Android

MANUAL DO USUÁRIO. Software de Imagem via Celular (isic) baseado no sistema operacional Android MANUAL DO USUÁRIO Software de Imagem via Celular (isic) baseado no sistema operacional Android Software de Imagem via Celular (isic) baseado no sistema operacional Android Esse software possui tecnologia

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Algoritmos Genéticos (GA s)

Algoritmos Genéticos (GA s) Algoritmos Genéticos (GA s) 1 Algoritmos Genéticos (GA s) Dado um processo ou método de codificar soluções de um problema na forma de cromossomas e dada uma função de desempenho que nos dá um valor de

Leia mais

Manual do usuário. Intelbras isic5 Tablet - Android

Manual do usuário. Intelbras isic5 Tablet - Android Manual do usuário Intelbras isic5 Tablet - Android Intelbras isic5 Tablet - Android Parabéns, você acaba de adquirir um produto com a qualidade e segurança Intelbras. Este manual irá auxiliá-lo na instalação

Leia mais

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Pós-Graduação em Engenharia Elétrica Inteligência Artificial Pós-Graduação em Engenharia Elétrica Inteligência Artificial João Marques Salomão Rodrigo Varejão Andreão Inteligência Artificial Definição (Fonte: AAAI ): "the scientific understanding of the mechanisms

Leia mais

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico Sistema Gerenciador de Conteúdo Dinâmico Atualizado em 24/08/2011 No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema

Leia mais

Volpe Enterprise Resource Planning

Volpe Enterprise Resource Planning Volpe Enterprise Resource Planning Este manual não pode, em parte ou no seu todo, ser copiado, fotocopiado, reproduzido, traduzido ou reduzido a qualquer mídia eletrônica ou máquina de leitura, sem a expressa

Leia mais

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: Manual da Turma Virtual: MATERIAIS Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: MENU TURMA VIRTUAL MENU MATERIAIS CONTEÚDO/PÁGINA WEB Esta operação possibilita que

Leia mais

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 05. Prof. André Lucio

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 05. Prof. André Lucio FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 05 Prof. André Lucio Competências da aula 5 Backup. WSUS. Serviços de terminal. Hyper-v Aula 04 CONCEITOS DO SERVIÇO DE BACKUP

Leia mais

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS Este anexo apresenta uma visão geral das seguintes plataformas: 1. Plataforma Microsoft.NET - VB.NET e C#; 2. Plataforma JAVA; 3. Plataforma Android, ios e Windows

Leia mais

ÍNDICE... 2 INTRODUÇÃO... 3. A série... 3

ÍNDICE... 2 INTRODUÇÃO... 3. A série... 3 WORD 2007 E 2010 ÍNDICE ÍNDICE... 2 INTRODUÇÃO... 3 A série... 3 01 CAPTURAS DE TELA WORD 2010... 3 02 IMAGENS 2007/2010... 5 03 NOTAS DE RODAPÉ... 13 04 NUMERAÇÃO DE PÁGINAS... 15 05 CONTAR PALAVRAS...

Leia mais

SGCD 2.2. Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.2. Sistema Gerenciador de Conteúdo Dinâmico Atualizado em 13/AGO/2012 Sistema Gerenciador de Conteúdo Dinâmico No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema

Leia mais

- Computação Evolutiva -

- Computação Evolutiva - - Computação Evolutiva - Prof. Dr. Cícero Garrozi DEINFO - UFRPE PPGIA@UFRPE cicerog@gmail.com Site da disciplina: http://cicerog.blogspot.com Sumário Situando a Computação Evolucionária Metáfora principal

Leia mais

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina

Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 2: RIA - Aplicações Ricas para Internet Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar as principais características de uma Aplicação Internet Rica.

Leia mais

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial Manual de Conversão para PDF Manual de Conversão para PDF 3 Conversão para PDF Microsoft Office 2003 Instalação da impressora PDF O pacote de aplicativo Office 2003 não possui nativamente o recurso de

Leia mais

Informática básica: Sistema operacional Microsoft Windows XP

Informática básica: Sistema operacional Microsoft Windows XP Informática básica: Sistema operacional Microsoft Windows XP...1 Informática básica: Sistema operacional Microsoft Windows XP...1 Iniciando o Windows XP...2 Desligar o computador...3 Área de trabalho...3

Leia mais

Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática

Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática Thatiane de Oliveira Rosa 1, Hellen Souza Luz 2 1 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Caixa

Leia mais

Comparando Java e C#

Comparando Java e C# Por: Lincon Alexandre Marques Jonathan T. Dos Santos Ricardo Fumio Tanimoto Abril, 2009 Comparando Java e C# Introdução Escolhemos como tema deste artigo um comparativo entre as linguagens Java e C#, duas

Leia mais

MANUAL E DICAS ASSISTENTE VIRTUAL (AV) ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 POR

MANUAL E DICAS ASSISTENTE VIRTUAL (AV) ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 POR MANUAL E DICAS DO ASSISTENTE VIRTUAL (AV) POR ADS DIGITAL (WWW.ADSDIGITAL.COM.BR) VERSÃO DO ASSISTENTE VIRTUAL: 1.3.1 ÍNDICE Introdução...3 Requisitos e Restrições do Assistente...3 Diferenças da Versão

Leia mais

Introdução Microsoft PowerPoint 2013 apresentações Office PowerPoint 2013 Microsoft PowerPoint 2013 textos planilhas Excel Word

Introdução Microsoft PowerPoint 2013 apresentações Office PowerPoint 2013 Microsoft PowerPoint 2013 textos planilhas Excel Word PowerPoint 2013 Sumário Introdução... 1 Iniciando o PowerPoint 2013... 2 Criando Nova Apresentação... 10 Inserindo Novo Slide... 13 Formatando Slides... 15 Inserindo Imagem e Clip-art... 16 Inserindo Formas...

Leia mais

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos

Leia mais