Gerência de Desenvolvimento Sidney Zaganin Latorre. Coordenação Técnica OzeasVieira Santana Filho. Apoio Técnico Ana Cristina Manzano dos Santos

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

Download "Gerência de Desenvolvimento Sidney Zaganin Latorre. Coordenação Técnica OzeasVieira Santana Filho. Apoio Técnico Ana Cristina Manzano dos Santos"

Transcrição

1 ItROdUçãO À liguagem java

2 Admiistração Regioal do Seac o Estado de São Paulo Gerêcia de Desevolvimeto Sidey Zagai Latorre Coordeação Técica OzeasVieira Sataa Filho Apoio Técico Aa Cristia Mazao dos Satos Seac-SP 2006 Elaboração do material didático Fábio Luís Ramo Edição e Produção Edições Jogo de Amareliha

3 ItROdUçãO À liguagem java 2006

4 Itrodução à Liguagem Java SUMÁRIO 1 Itrodução / 7 Objetivos do curso Java e seus vários aspectos O que é realmete Java? Origem da liguagem Características da liguagem 2 Java Machie / 17 Java Virtual Machie Compiladores e Iterpretadores Vatages Desvatages Arquitetura Java Machie Java e suas edições 3 Ambiete de Desevolvimeto / 23 Java Developmet Kit Eclipse Criado um projeto Perpectivas Acrescetado uma classe Executado um programa Depurado um programa Mudado a versão do JDK 4 Estrutura de um programa Java / 33 Requisitos Básicos Tipos e Classes básicas Variáveis Declaração e Iicialização Operadores e expressões Comados básicos Parâmetros de etrada Pacotes 5 Classes e Objetos / 47 Importate Coceito de classe Atributos, métodos e iterfaces Regras gerais Métodos especiais Seac São Paulo

5 Itrodução à Liguagem Java Defiição de uma classe e alocação Costrutores e istaciação Referêcias a objetos Declaração de métodos Notação UML Sobrecarga de métodos Sobrecarga de costrutores Classes e métodos abstratos Atributos e métodos estáticos API Java 6 Arrays e Strig / 66 Alocação de arrays Arrays multidimesioais Strig 7 Heraça e iterfaces / 71 Aatomia da heraça Heraça e hierarquia de classes Defiição de subclasses Chamada de métodos a heraça Sobrescrita de métodos Heraça e costrutores Iterfaces Declaração de iterfaces Exemplo do uso de iterfaces Defiição das classes bases Exemplo Defiição das classes derivadas Exemplo Defiição da iterface Exemplo Redefiição das classes bases Exemplo Redefiição das classes Modificador fial 8 Ecapsulameto / 85 Modificadores de acesso 9 Polimorfismo / 90 Exemplo coceitual Polimorfismo e Heraça Exemplo completo 10 Etrada e Saída / 98 Etrada IputStream Exemplo Classes herdadas de IputStream Saída OutputStreams Readers e Writers A classe File Seac São Paulo

6 Itrodução à Liguagem Java 11 Threads / 105 Diagrama Implemetação Exemplo Sicroização de threads 12 Exceções e Erros / 110 Maeira comum de tratar exceções/erros Tratameto em Java Modificador throws Tratameto i loco Passado o tratameto adiate Tratameto múltiplo A cláusula fially Defiido exceções 13 Tópicos avaçados / 117 Coleções Networkig Geerics Seac São Paulo

7 CAPÍTULO I itrodução

8 Itrodução à Liguagem Java Objetivos do curso Travar cohecimeto básico com a Liguagem Java, sua estrutura e sitaxe e suas aplicações a iteret. Editar, compilar, depurar e executar programas Java utilizado o Eclipse. O pricipal objetivo deste curso é fazer o aluo travar um primeiro cotato com a Liguagem Java, mostrado sua estreita relação com a iteret. Este curso visa esclarecer os pricipais potos que cercam essa liguagem, mostrar sua potecialidade e recursos e pricipalmete forecer subsídios para que os profissioais da área de iformática possam julgar com critérios adequados o quato Java é útil detro de sua área de atuação. Além disso, será apresetado o Eclipse, que é uma ferrameta de uso livre, feita para a edição, compilação, depuração e execução de programas Java. Java e seus vários aspectos Aspectos técicos - Recursos e potecialidades - Ambiete de desevolvimeto - Seguraça Aspectos coceituais - Novo paradigma de computação e redes - Novo mercado de serviços - Aspectos coceituais itroduzidos com Java Aspectos técicos A Liguagem Java já asceu adulta, ou seja, ão foi uma liguagem que passou pelo processo tradicioal de avaliação, eriquecimeto e agregação de recursos. Com isso ão se percebe, a liguagem, estruturas acomodadas a posteriori, ou adaptações, que para o programador represetam verdadeiras armadilhas. Tecicamete, a Liguagem Java é bastate homogêea em termos de estrutura e sitaxe. Cosegue ser verdadeiramete orietada a objetos e ao mesmo tempo de fácil programação. Seac São Paulo

9 Itrodução à Liguagem Java Em termos de ambiete de desevolvimeto, Java apreseta características peculiares. Pode comportar o desevolvimeto de uma aplicação de grade porte, tal como C++, e oferece recursos para tal. No etato, pode ser eficietemete usada para aplicações de poucas lihas, gerado executáveis bem reduzidos e exutos. Java otimiza a geração de código em fução do tamaho da aplicação. A seguraça oferecida ao programador em tempo de compilação e execução permite a geração de aplicativos com meos bugs e com meos riscos de perda de cotrole da execução, acelerado o processo de desevolvimeto. Aspectos coceituais Java ão represeta apeas uma liguagem, represeta também um ovo modelo de computação e desevolvimeto sobre a iteret. Podemos dizer que, mesmo que Java ão seja a liguagem do século XXI, por razões mercadológicas, o coceito que Java carrega já é amplamete explorado pelas liguages de programação para a iteret que estão surgido. Este coceito ada mais é do que torar a iteret um meio de iteração ão apeas etre as pessoas, mas etre as aplicações e objetos de programação, de forma que os recursos estarão compartilhados essa grade rede e o seu uso ficará trasparete ao usuário fial. Este coceito de rede e computação gera uma série de outros serviços e faz com que as empresas de desevolvimeto orteiem seus esforços esse setido. O que é realmete Java? Limitada? Simplicidade ou icapacidade? Ieficiete? Iterpretada versus compilada? Java é uma liguagem limitada? O fato de Java ão apresetar algus recursos dispoíveis em outras liguages de alto ível, tais como poteiros, destrutores e heraça múltipla ão a qualifica como iferior esses aspectos. Com Java é possível realizar praticamete as mesmas coisas que em qualquer outra liguagem que utiliza esses recursos, com a vatagem de haver elimiado grade parte das fotes de erros e bugs que prejudicam e atrasam um desevolvimeto. Dessa forma, esta simplificação do poto de vista do programador represetou uma eorme complicação para os idealizadores da liguagem, que tiveram de garatir que Java fosse igualmete eficiete com meos recursos. Seac São Paulo

10 Itrodução à Liguagem Java Java é ieficiete? Java é idepedete da plataforma. Para chegar a isso o código biário em Java é a realidade um código iterpretado. Veremos mais a fudo essa questão posteriormete. Dessa forma, o desempeho de uma aplicação Java depede essecialmete do iterpretador utilizado. Com isso, vê-se aplicações idêticas, em máquias iguais, rodado com difereças de velocidade. Sob esse poto de vista, podemos afirmar que Java será sempre meos eficiete ou pelo meos igual a uma mesma aplicação em C. A tedêcia verificada os iterpretadores Java é atigir íveis de performace iguais ao C, com o uso de técicas específicas e desevolvidas especialmete para isto. No etato o limite superior deve ser o limite imposto por C. Padrão? Código aberto versus proprietário? Portabilidade versus eficiêcia? Ecoomicamete viável? Custo versus beefício Java é um ovo padrão? Java ão é um padrão aberto, mas sim uma liguagem defiida e cotrolada pela Su, o etato com ampla participação de comuidades de usuários e com processos de defiição e evolução muito parecidos com os procedimetos adotados pelos softwares de código aberto. Existem soluções alterativas a Java, em íveis diferetes. C# da Microsoft, por exemplo, é muito similar coceitualmete e em termos de liguagem, sem o etato compartilhar todas as características de Java. Java é portável? A característica multiplataforma de Java tora desecessária, em pricípio, a preocupação com sua portabilidade. No etato, tem-se verificado que surgiram ferrametas que covertem Java para C, a fim de se gahar em performace. Utiliza-se também, e Java suporta, a iclusão de rotias em C os programas (código ativo). Com isso surgem aplicações desevolvidas em Java, mas que são especificas para determiadas plataformas. Neste caso, as cosiderações sobre portabilidade em Java passam a ser as mesmas que as aplicadas a C. Seac São Paulo 10

11 Itrodução à Liguagem Java Java é ecoomicamete viável? Vários fatores devem ser levados em cosideração, etre eles a real utilidade da liguagem, o esforço de sua apredizagem e seu poder. O sucesso de uma ferrameta depede do que se pode fazer com ela e com que esforço. Java pretede oferecer o mesmo que C++ em termos de poder de código e ao mesmo tempo oferece um ambiete de desevolvimeto mais bug free e cociso que C, almejado exigir meos esforço que programar em C. Esta última característica é muito importate porque possibilita o uso de ferrametas de desevolvimeto mais poderosas e automatizadas, semelhates ao VB, por exemplo. JavaScript? Programação para desktop? Executáveis liha de comado Programas gráficos - AWT - Swig - Games Programação para dispositivos Cartões, Celulares, Palms, etc. Java é o mesmo que JavaScript? JavaScript é uma outra liguagem, orietada a modelos e ão a objetos, e que tem um ome similar simplesmete porque compartilha os modelos de dados e objetos de Java. Assim, muito pouco do que se aplica a Java pode ser aplicado a JavaScript, que é uma liguagem puramete iterpretada e portato goza desse beefício em sua estrutura de programação. JavaScript é utilizado para acrescetar processameto local às págias HTML, e iterage diretamete com as diretivas da págia. Pode ser cosiderado como uma espécie de HTML procedural. Covém ressaltar que JavaScript é muito poderosa e pode substituir Java em muitas aplicações, o que geralmete ão é levado em cota quado se estuda Java. Programação para desktops Java é utilizada para o desevolvimeto de aplicações para desktop, especialmete pelas empresas que desejam ter uma úica ferrameta para diferetes plataformas (Widows, Seac São Paulo 11

12 Itrodução à Liguagem Java Liux, Uix, Mac etc.). Java possui todos os recursos para o desevolvimeto de aplicações completas, iclusive jogos. No etato, para a execução de um programa Java um desktop é ecessário que o programa possua uma Java Virtual Machie istalada, como veremos adiate. A costrução de programas gráficos pode ser feita com bibliotecas gráficas simples (AWT) ou mais ricas (Swig). Programação para dispositivos Java é amplamete utilizada para o desevolvimeto de aplicações em dispositivos, especialmete os de pequeo porte, tais como cartões, telefoes celulares, computadores de mão e até mesmo robôs. A grade vatagem da utilização de Java é que um mesmo programa pode rodar em dispositivos diferetes devido à característica multiplataforma dos programas. Para a programação de dispositivos é utilizado um subcojuto de bibliotecas da liguagem chamado JME (Java Micro Editio). Programação para a iteret Applets Servlets EJB StoredProcedures Web Services Uma aplicação Web ormalmete possui compoetes que são executados um servidor Web (ou um servidor de aplicação). Além desses compoetes que rodam o servidor, uma aplicação Web pode depeder de compoetes que são executados o cliete (avegador) e mesmo compoetes que são executados o baco de dados. A Liguagem Java pode ser utilizada para a costrução de todos esses tipos de compoetes. Os compoetes que são executados os avegadores são chamados de Applets. Muitos baco de dados permitem a costrução de Stored Procedures escritas em Java. Os compoetes que rodam os servidores podem ser do tipo Servlets ou do tipo Eterprise Java Beas (EJB). Existem aida os compoetes que rodam em servidores que implemetam um ou mais WebServices. Idepedete do tipo de compoete, a liguagem é a mesma, diferido apeas a forma como os programas são costruídos e a forma como os diferetes servidores, baco de dados ou avegadores suportam a execução desses compoetes. Seac São Paulo 12

13 Itrodução à Liguagem Java Itegração ao HTML Applets são programas que rodam detro de uma págia Ampla difusão tempo recorde de difusão busca dos pricipais forecedores pela compatibilidade e suporte à Java Itegração Java-HTML Java ecotra-se totalmete itegrado ao HTML as aplicações chamadas Applets. Applets são programas em Java que rodam em uma parte da págia HTML delimitada por uma diretiva específica. Não só o espaço alocado a págia é defiido por diretivas HTML, como também a passagem de parâmetros para o Applet. Java portato itroduziu ovas diretivas à liguagem HTML. Outro aspecto a ser cosiderado é a itegração Java-browser, que trascede a simples itegração com o HTML e ão se baseia em ehum padrão formal. Java cosegue maipular recursos da própria jaela de browser, como por exemplo forçar a abertura de uma ova istâcia do browser. Este tipo de iteração é mais forte e tora Java mais do que um parceiro do HTML um parceiro do browser. A difusão de Java Nehuma outra liguagem coseguiu se difudir em tempo tão curto quato Java. Todos os browsers buscam compatibilidade e grade parte dos servidores de aplicação e baco de dados suportam a liguagem. Existem certificações de ferrametas que atestam a sua compatibilidade à liguagem, garatido que programas costruídos para um servidor possa rodar em qualquer outro. Eorme potecialidade multimídia recursos de IU, I/O e rede iúmeras bibliotecas e ferrametas de terceiros ou em código aberto Fácil apredizado Costate aprimoradameto geração de pacotes e bibliotecas papel de outras compahias Su ão deseja mater o cotrole Seac São Paulo 13

14 Itrodução à Liguagem Java Java é rico em recursos Java apreseta todos os recursos para programação de iterfaces com usuário, fácil maipulação de I/O e capacidade de iteração em ambietes de rede. Todo esse cojuto de recursos dá à liguagem uma eorme potecialidade de aplicações. Além disso, é crescete o úmero de usuários, grupos ou empresas que colaboram com o desevolvimetos de ferrametas ou bibliotecas, grade parte delas de uso livre. Java pode ser apredida facilmete Este poto é cotroverso. Mas podemos dividir a afirmação acima em outras três que são mais amplamete aceitas: - Java é fácil de ser apredida por quem ão cohece ehuma liguagem de programação; - Java é muito fácil de ser apredida por quem já cohece uma liguagem de programação; - Java é mais fácil de ser apredida por quem já cohece uma liguagem orietada a objetos. Java é costatemete aprimorada Aprimorameto de Java ão sigifica suprir deficiêcias, mas acrescetar potecialidades cuja ecessidade é setida quado se deseja programar para a iteret. A Su desevolveu um cojuto completo de bibliotecas para Java e que defiiu como implemetação básica da liguagem. Outras compahias estão acrescetado ovos recursos por do forecimeto de ovas bibliotecas. A Su estimula esse tipo de atividade e sabe que deles depede o crescimeto da liguagem. Além da iiciativa de compahias, o esforço de grupos de usuários e de comuidades baseadas o código aberto eriquecem costatemete o uso da liguagem. Origem da Liguagem Cocebida e desevolvida pela SuSoft braço da Su Suporte e compatibilidade os produtos da Netscape importâcia fudametal a difusão da liguagem Heraça do C++ e Smalltalk orietação a objetos Aplicações iteret Applets e Applicatios Ambiete destio: Java Machie Seac São Paulo 14

15 Itrodução à Liguagem Java A Liguagem Java foi cocebida e desevolvida iteiramete pela SuSoft, braço da compahia Su, resposável pelo desevolvimeto do software básico dos equipametos Su e que atuava também a área de desevolvimeto de compiladores para outras liguages. O suporte oferecido desde o iício pela Netscape em seus browsers foi decisivo para a divulgação e difusão de Java. O fascíio causado pelos primeiros applets foi fator de coquista de adeptos em toda a iteret. A SuSoft viha trabalhado há muito tempo o desevolvimeto de ambietes Smalltalk. Dessa forma, Java herdou a fidelidade do Smalltalk aos coceitos de Programação Orietada a Objetos (OOP) e os recursos cocisos, poderosos e práticos do C. Quem cohece C++ percebe que Java se ecaixa mais corretamete os coceitos de OOP e quem cohece Smalltalk percebe que Java permite um cotrole maior dos recursos do sistema, como C. Portato, é um casameto feliz. O grade trufo de Java é permitir que se programem aplicações que utilizam os recursos da iteret. Com a proliferação dos web servers e a popularização da iteret, Java ocupou um espaço que estava vazio. Características da liguagem Totalmete orietada a objetos Multithread (paralelização de processos) Sitaticamete e morfologicamete quase idêtica ao C++ (existem difereças fudametais) Ausêcia de poteiros redução de bugs aumeto da seguraça Idepede da plataforma Orietada a aplicações de rede (especialmete Web) Quatro S s : small, simple, safe ad secure Orietada a objetos Implemeta os pricipais coceitos da orietação a objetos. Seac São Paulo 15

16 Itrodução à Liguagem Java Multithread A facilidade de programar multithreads habilita Java para o desevolvimeto de grades aplicações e de IU poderosas. A capacidade da liguagem em fazer um gereciameto preemptivo deste recurso otimiza e tora geral o seu uso. Formato semelhate ao C++ O formato da liguagem semelhate ao C++ é fator importate o reaproveitameto de profissioais de desevolvimeto. No etato, as difereças devem ser cuidadosamete estudadas pois são sigificativas. Ausêcia de poteiros Aumeta a produtividade dos profissioais de desevolvimeto, pois elimia grade fote de erros. Pode gerar alguma dificuldade a criação de rotias que utilizariam (em C) aritmética de poteiros. Orietada à Web Preeche uma lacua existete para criação de aplicações Web, e disto decorre sua característica multiplataforma. Seac São Paulo 16

17 CAPÍTULO 2 JAVA MACHINE

18 Itrodução à Liguagem Java Java Virtual Machie Código fote é compilado para código biário Java, que é iterpretado e executado em diferetes plataformas Java Virtual Machie Deomiação dada ao iterpretador Java rodado sobre o sistema operacioal de qualquer máquia. Esta combiação (iterpretador+os) tem um comportameto idêtico para qualquer OS suportado por Java. Dessa forma, caracteriza-se como uma máquia virtual que executa seu código biário Java, chamados também de bytecodes. Compiladores e Iterpretadores Java Virtual Machie é um coceito implemetado hoje por um cojuto razoável de iterpretadores para as plataformas mais comus. Seac São Paulo 18

19 Itrodução à Liguagem Java Verifica-se que existe uma série de compiladores Java para cada plataforma distita, mas o etato existe também um úico compilador Java, escrito em Java, utilizado em todas as plataformas. Assim, para se sustetar o coceito de Java Virtual Machie, exige-se apeas iterpretadores distitos. O Java Rutime Eviromet (JRE) é um iterpretador Java que suporta a execução de aplicações Java em desktops. Iterpretador Java segue modelo simples e estruturado permitido grade desempeho Compilação just-i-time Cache de execução Possibilidade de uso de código ativo Iformação extra pode ser passada ao iterpretador Existem tradutores para C Arquitetura Java Os bytecodes Java são destiados a uma máquia de estrutura simples e poderosa. Isto resulta em um iterpretador simples e reduzido, o tocate à parte que iterage com o código Java. A parte do iterpretador que iterage com o OS varia em simplicidade coforme o ambiete. Turbiado o iterpretador Uma série de artifícios são utilizados para melhorar a performace de um código Java. Etre eles podemos citar: - Compilação just-i-time : código é compilado para código ativo à medida que é carregado por dowload técica usada em aplicações que trafegam pela rede. - Cache: código de maquia iterpretado é armazeado em cache, evitado a repetição da iterpretação de partes repetitivas do código. Acelera execução de loops. Para programas bem estruturados o gaho de velocidade de execução pode ser de 10 vezes. - Uso de pedaços de código ativo detro do código Java: causa perda da característica multiplataforma de uma aplicação que utilize este recurso. - Parâmetros extras: iformações relativas à máquia ode o código está sedo iterpretado podem acelerar esse processo, ou seja, os bytecodes ajudam o iterpretador sob determiada plataforma. Seac São Paulo 19

20 Itrodução à Liguagem Java Vatages Multiplataforma Compatibilidade Portabilidade Verificação da seguraça do código Toda máquia pode ser Java Virtual por software Além das vatages clássicas de utilizar um iterpretador Java (compatibilidade, multiplataforma, portabilidade etc.), um outro poto deve ser cosiderado como positivo: a verificação, pelo iterpretador, da cofiabilidade do programa sedo executado. Isto sigifica que o iterpretador realiza rigorosa verificação a fim de certificar-se que o programa Java é cofiável em termos de utilização dos recursos da máquia. O iterpretador é capaz de verificar se um programa está mal itecioado alocado recursos excessivos ou idevidos e bloqueá-lo. Pode também limitar a ação de objetos ão corretamete idetificados e delimitados, criados por programadores experietes, cuja atuação pode sigificar riscos para o usuário. O iterpretador pode bloquear também o acesso ao disco local de programas carregados via iteret. Assim, esta característica sigifica um ível a mais de seguraça oferecido ao usuário de aplicações Java, cuja origem pode evetualmete ser igorada. Desvatages Iterpretação - queda de desempeho Duas ferrametas: compilador e iterpretador Código ativo - plataforma específica A iterpretação dos bytecodes, por mais que seja otimizada, tem um custo de performace. No etato, o crescete desevolvimeto do hardware e os beefícios de seguraça trazidos pela iterpretação compesam esse custo adicioal. O iterpretador Java sempre precisa estar istalado a máquia, o que dificulta a execução dos programas de desktop os sistemas operacioais que ão vêm origiariamete com o iterpretador istalado. A utilização de código ativo em programas Java vicula a sua exceção às plataformas para as quais o código ativo foi costruído. Seac São Paulo 20

21 Itrodução à Liguagem Java Arquitetura Java Machie Cojuto de istruções Bytecodes, em geral com 2 operados e 32 bits Cojuto de registradores (apeas 5) Pilha ilimitada mas imue a overflow Garbage Collector roda em backgroud compressão de memória Java e suas edições Java 2 Stadard Editio É a edição de Java feita para rodar em desktops, dispositivos embarcados (robôs, eletrodomésticos etc.) e máquias de cotrole em tempo real (robôs de precisão, servodispositivos etc.). O JRE (Java Rutime Eviromet) é a maquia virtual, sem as ferrametas de compilação, que pode ser utilizada em qualquer computador que irá apeas executar os programas Java. Seac São Paulo 21

22 Itrodução à Liguagem Java Java 2 Eterprise Editio É a edição com todo o suporte para rodar aplicações em servidores web e servidores de aplicação. Oferece um cojuto completo de bibliotecas que implemetam as rigorosas ecessidades de um ambiete de execução seguro e crítico. Java 2 Micro Editio É a edição para rodar em dispositivos de pequeo porte, tais como celulares e palms. Está dispoível em uma série de subedições, cada uma mais adequada a um determiado tipo de dispositivo. Seac São Paulo 22

23 CAPÍTULO 3 AMBIENTE DE DESENVOLVIMENTO

24 Itrodução à Liguagem Java A Su laçou, jutamete com a liguagem, um kit de desevolvimeto, o Java Developmet Kit (JDK) Existe um grade cojuto de ferrametas de desevolvimeto dispoíveis o mercado Livres - Eclipse - NetBeas - Outros Proprietários - JBuilder da Borlad - Studios da IBM, BEA e Su - JDev da Oracle - Outros A Su laçou, jutamete com a liguagem, um kit de desevolvimeto que, embora bem poderoso, é de difícil uso e ão satisfaz as ecessidades de um desevolvedor de médio porte ou maior, pois apreseta recursos pobres. Ao logo do tempo, outras empresas, ou grupos/comuidades de usuários desevolveram outras ferrametas. Hoje existem dezeas de ferrametas de código livre e uma outra dezea de boas ferrametas proprietárias. Nessa apostila utilizaremos o Eclipse, de código livre. Java Developmet Kit Compilador javac MihaClasse.java Iterpretador java MihaClasse Visualizador de applets appletviewer meuapplet.html Debugger jdb Seac São Paulo 2

25 Itrodução à Liguagem Java O Java Developmet Kit é a primeira ferrameta para desevolvimeto de Java. Distribuída livremete e desevolvida pela Su, dispõe de um cojuto míimo de recursos suficietes para gerar qualquer aplicação. Eclipse Ferrameta de edição, compilação, depuração e execução de programas Java Código aberto Extesível por plugis O Eclipse é uma ferrameta de desevolvimeto de aplicações Java que pode ser utilizada livremete, sem pagameto de liceças. A grade vatagem do Eclipse é a sua arquitetura de plugis, que permite que se possa ter seus recursos expadidos idefiidamete. Istalação Se ão estiver istalado a máquia, faça o dowload e istale a última versão do JDK o site (siga o lik de dowloads). Faça o dowload da ultima versão do biário do Eclipse o site Na máquia, basta apeas descomprimir o arquivo de dowload do Eclipse um diretório qualquer (C:\soft, por exemplo). Execução do Eclipse Para rodar o Eclipse basta apeas executar o arquivo C:\soft\eclipse-SDK wi32\ eclipse\eclipse.exe. Sempre que o Eclipse for aberto, ele pede que seja idicado um diretório de trabalho (workspace), ode ficarão os arquivos Java editados ele. Seac São Paulo 25

26 Itrodução à Liguagem Java Criado um projeto Cada programa Java pode ser composto por várias classes. Essas classes e as suas cofigurações ficam agrupados um PROJETO Meu File >> New >> Project... Selecioar Java Project Acrescetar o ome do projeto Seac São Paulo 26

27 Itrodução à Liguagem Java Perpectivas O Eclipse trabalha com perspectivas, que ada mais são do que visões de seu ambiete de trabalho Abrir a Perspectiva Java para editar código Acrescetado uma classe Criar uma ova classe e adicioar ao projeto Meu File >> New... >> Class No Wizard, defiir o ome da classe e marcar para criar o método public static void mai(strig[] args) Criar uma ova classe Seac São Paulo 27

28 Itrodução à Liguagem Java Acrescetar uma classe Adicioar a seguite liha de código ao método mai System.out.pritl( Hello Word ); Adicioar código ao método mai Seac São Paulo 28

29 Itrodução à Liguagem Java Executado um programa Rodar o programa Selecioar o arquivo Java e, com o botão direito do mouse, escolher Ru As >> Java Applicatio (o Eclipse pedirá para você salvar o arquivo; selecioe-o e salve-o) Selecioar o projeto e disparar a execução como Java Applicatio Depurado um programa A depuração é um recurso ecessário para dar produtividade a qualquer desevolvimeto Selecioar classe Java e, com o botão direito do mouse, escolher Debug as >> Java Applicatio... (o Eclipse pedirá para você mudar a perspectiva para Debug, mas ão é ecessário fazer isso este exemplo) Seac São Paulo 29

30 Itrodução à Liguagem Java Executar liha a liha com a tecla F6 Disparar o depurador Para observar o valor de uma variável coloque o poteiro do mouse sobre ela ou mude a perspectiva para Debug (todas as variáveis podem ser ispecioadas essa perspectiva) Meu Widow >> Ope Perspective >> Debug Para voltar para o programa Java e a execução do depurador liha a liha mudar a perspectiva para Java Meu Widow >> Ope Perspective >> Java Mudado a perspectiva para Debug Seac São Paulo 30

31 Itrodução à Liguagem Java Mudado a versão do JDK No Eclipse pode-se trabalhar com várias versões do JDK ou JRE Meu Widow >> Prefereces No item Java/Compiler selecioar a compatibilidade do compilador com a versão do Java (compiler compliace level 1.3, 1.4 ou 5.0) No item Java/ Istalled JREs selecioar a versão do JDK ou JRE. Se ão estiver istalada a versão desejada clicar em - Add... - Browse... (e selecioar o folder ode está istalado o JDK ou JRE) Abrir a cofiguração do Eclipse Selecioar o ível de compatibilidade do compilador (1.3, 1.4 ou 5.0) Seac São Paulo 31

32 Itrodução à Liguagem Java Selecioar o JDK/JRE etre os existetes Acrescetar o uso de um ovo JDK/JRE, se for o caso Seac São Paulo 32

33 Itrodução à Liguagem Java CAPÍTULO 4 ESTRUTURA DE UM PROGRAMA JAVA Seac São Paulo 33

34 Itrodução à Liguagem Java Requisitos Básicos Um programa Java é uma coleção de classes que iteragem etre si de forma totalmete orietada a objetos O método mai() de partida de execução do programa deve pertecer à classe pricipal do programa O ome do arquivo pricipal do programa deve ter o mesmo ome que a classe pricipal (aquela que cotém o método mai()) O método de partida de um programa Java é chamado de mai, que deve ecessariamete pertecer a uma classe. Esta classe (à qual pertece mai), é a classe que dá ome ao programa. Exemplo import java.util.date; public class HelloWorld { public static void mai(strig args[]) { System.out.pritl( Hello World ); System.out.pritl(ew Date()); A assiatura de mai() deve ser como a mostrada acima O ome do arquivo deve ser HelloWorld.java que depois de compilado gera o arquivo HelloWorld.class >edit HelloWorld.java >javac HelloWorld.java >java HelloWorld Exercício 1. Digitar, compilar e depurar o programa HelloWord o Eclipse. Seac São Paulo 3

35 Itrodução à Liguagem Java Tipos e Classes básicas Tipos primitivos São tipos primitivos Iteiro: Não são objetos - byte 8 bits Idepedem da máquia em - short 16 bits termos de precisão e tamaho - it 32 bits - log 64 bits poto-flutuate - float 32 bits - double 64 bits caracter (uicode) - char 16 bits boleao - boolea, true ou false Faixa de valores dos tipos primitivos byte -128 a 127 short a it a log a float -3,4E-38 a 3,4E_38 double -1.7E-308 a 1.7E+308 Classes especiais Strig implemeta um objeto Strig, de forma mais precisa e clara do que um array de caracteres System realiza parte da iteração do programa com o sistema operacioal ativo Seac São Paulo 35

36 Itrodução à Liguagem Java Algumas classes em Java assumem um papel especial ou apresetam um comportameto especial. Etre elas, é iteressate citar duas: Strig ão são arrays de caracteres dispõe de métodos que facilitam seu uso um objeto da classe Strig é criado automaticamete quado se declara e iicializa uma variável. Ex.: Strig curso= curso de Java ; implemetam cocateação (embora Java ão implemete sobrecarga de operadores). Ex.: curso= Meu primeiro +curso; uso do operador += curso+= Meu primeiro ; System cotém a maioria dos métodos que iteragem com o sistema operacioal. Ex.: System.out.pritl( ); Variáveis Declaradas ates de serem utilizadas, em qualquer parte do programa (declaração é dar o tipo e o ome) Podem ser iicializadas a declaração Variáveis locais devem ser iicializadas ates de serem utilizadas Podem ser utilizados sufixos para defiir o tipo de um literal As variáveis em Java podem ser declaradas em praticamete qualquer parte do programa. Lembrar que ão existem variáveis globais. Uma vez que todo o programa está ecapsulado detro de classes, as variáveis mais exteras deste programa pertecem a esta classe. Existem portato dois tipos de variáveis: de classe ou de istâcia locais a fuções ou blocos Seac São Paulo 36

37 Itrodução à Liguagem Java As restrições aplicadas às variáveis são: omes das variáveis ão podem começar por úmero cuidado com símbolos que represetam operadores: *, + etc. cojuto de caracteres Uicode (existem exceções) Tipos: primitivos classe ou iterface array Sufixos L ou l para log D ou d para double F ou f para float Declaração e iicialização it a; Strig ome; float b; boolea isnuber; byte c, d, e, f; log g=0; float h, I, j=1.2; char primeira_letra= a ; Strig sobreome= Silva ; boolea ischar=true; log k=10l; float l=4f; it m=0xff; // Literal hexadecimal Os literais, quado digitados a otação hexadecimal, devem vir precedidos de 0X ou 0x. Os literais, quado digitados a otação octal, devem vir precedidos de 0. Seac São Paulo 37

38 Itrodução à Liguagem Java Escopo de variáveis Variáveis locais: Podem ser utilizadas detro do método ou bloco ode foram declaradas Variáveis de classe ou de istâcia: Podem ser utilizadas detro da classe ou objeto, ou até mesmo por outras classes e objetos, depededo de sua acessibilidade. Coversão de tipos Implícita: de tipos meores para tipos maiores (em úmeros de bits do tipo) byte b = 5; it a = b; // 5 é covertido para iteiro float f = F; double d = f; Explícita: de tipos maiores para tipos meores (em úmeros de bits do tipo). Deve ser feito castig. log l = L; it i = (it)l; double d = 395E+45; float f = (float)d;; Coversão implícita é aquela ode o valor ão corre o risco de sofrer alguma perda, porque a capacidade do tipo covertido é maior que a capacidade do tipo origial. Para fazer essa coversão basta fazer a atribuição direta dos valores. Coversão explícita é aquela ode o valor do tipo origial corre o risco de ser alterado, porque a capacidade do tipo covertido é meor. Coversões explícitas somete podem ser feitas com o uso do castig, que é defiir juto ao valor origial, o tipo para o qual se quer a coversão, etre parêteses. Seac São Paulo 38

39 Itrodução à Liguagem Java Operadores e expressões Operadores aritméticos: Básicos +, -, *, / e % O sial meos ( - ) pode ser usado como operador uário Operadores cojugados com atribuição de valores: a+=b <=> a=a+b a-=b <=> a=a-b a*=b <=> a=a*b a/=b <=> a=a/b Cuidado com a ordem de avaliação das expressões! Operadores aritméticos: Básicos: + (adição), - (subtração), * (multiplicação), / (divisão) e % (módulo, ou seja, resto da divisão iteira) O sial meos ( - ) pode ser usado como operador uário Tipo do resultado: o mais preciso etre os tipos dos operados. Portato 26/7=3, uma vez que o resultado é iteiro Operadores cojugados com atribuição de valores: a+=b <=> a=a+b a-=b <=> a=a-b a*=b <=> a=a*b a/=b <=> a=a/b Cuidado com a ordem de avaliação das expressões, pois uma mesma expressão lógica pode afetar de forma diferete o resultado esperado. Operadores e expressões Operadores de icremeto e decremeto a++ ou ++a <=> a=a+1 a-- ou --a <=> a=a-1 Cuidado: b=a++ pode ão ter o mesmo efeito que b=++a!!! Seac São Paulo 39

40 Itrodução à Liguagem Java Operadores de comparação: == igual!= diferete < meor > maior <= meor ou igual >= maior ou igual Operadores de icremeto e decremeto: a++ ou ++a <=> a=a+1 a-- ou --a <=> a=a-1 Cuidado: b=a++ ão forece o mesmo resultado que b=++a!!! O operador de icremeto, quado colocado ates da variável, faz com que ela seja icremetada ates de ser utilizada. O operador de icremeto, quado colocado depois, faz com que o valor da variável seja utilizado ates do icremeto. it a = 5; it b = a++; // resulta em b com valor 5 a = 5; b = ++a; // resulta em b com valor 6 Operadores lógicos: & ou && <=> AND ou <=> OR! <=> NOR Existem difereças etre & e &&; e etre e!!! Operadores bit a bit: & <=> AND <=> OR ^ <=> XOR << <=> deslocameto à esquerda >> <=> deslocameto à direita ~ <=> complemeto >>> <=> deslocameto à direita, preechimeto com zero Os operadores && e somete podem ser aplicados a tipos booleaos. Os operadores & e podem ser aplicados a qualquer tipo primitivo, sedo que esse caso ele realiza a operação bit a bit etre os bits dos operados. Seac São Paulo 40

41 Itrodução à Liguagem Java Comados básicos Cometários Cometários de uma liha // liha cometada Cometários de múltiplas lihas /* Lihas cometadas lihas cometadas */ Cometários que aparecem a geração automática de código (javadoc) /**Lihas cometadas lihas cometadas */ Codicioais if (codição) { // bloco de código else { // bloco de código switch(expressao) { case valor: // bloco de código break; // outros cases default: // bloco de código Seac São Paulo 41

42 Itrodução à Liguagem Java Comado if else A codição sempre deve ser um literal, variável ou expressão booleaa (icluemse aí também os retoros de métodos). Quado o bloco de código possuir apeas uma liha, ão são ecessárias as chaves. O uso do else é opcioal. Comado switch A expressão deve ser uma variável ou expressão que resulte um úmero iteiro ou um úmero que possa ser covertido para iteiro (byte, short e char). O valor deve ser sempre um literal iteiro. O break ão é obrigatório. Nesse caso a execução do programa prossegue para o próximo bloco de código. O default ão é obrigatório. No caso de ehum case ser igual a expressão, ehum código é executado. Laços while(codição) { // bloco de código do { // bloco de código while (codição); Comados while e do while A codição sempre deve ser um literal, variável ou expressão booleaa (icluem-se aí também os retoros de métodos). Quado o bloco de código possuir apeas uma liha, ão são ecessárias as chaves. Seac São Paulo 42

43 Itrodução à Liguagem Java Exemplos: while(i<2) {... i++; do {... i++; while (i<10); Laços for(iicialização; codição; comado) { // bloco de código for(iteração sobre coleção) { // bloco de código Comado for A iicialização pode declarar uma ou mais variáveis cujo escopo é o bloco de código. A codição sempre deve ser um literal, variável ou expressão booleaa (icluemse aí também os retoros de métodos). O comado pode um ou um cojuto deles, separados por vírgulas e sempre serão executados. A iicialização, a codição e o comado ão são obrigatórios. Quado o bloco de código possuir apeas uma liha, ão são ecessárias as chaves. A iteração sobre coleção declara sempre um objeto do tipo da coleção. O ídice da coleção ão está dispoível o bloco de código. Seac São Paulo 43

44 Itrodução à Liguagem Java Exemplos: for(it i=0; i<10; i++) {... it[] arrval = ew it[5];... for(it a : arrval) { soma += a; Importar para o arquivo fote as classes ou pacotes idicados import <classe ou pacote>; Defiir o pacote ao qual pertece a classe sedo defiida package <ome do pacote>; Iterrompe a execução de um bloco idicado break [label]; Força a próxima iteração do laço idicado cotiue [label]; A importação de arquivos ou pacotes deve ser feita sempre o iício do arquivo Java. A defiição do pacote deve sempre ser feita ates da defiição de qualquer classe ou iterface o arquivo Java. O break somete pode iterromper bloco que o eglobe. Como a defiição desse label é opcioal, a sua ausêcia, o bloco mais itero e próximo do break é o iterrompido. O mesmo vale para o cotiue, com relação aos laços. Caso o label seja especificado, esses comados iterrompem o laço idetificado pelo label. Os labels somete podem ser atribuídos a laços label1: for(...) {... Seac São Paulo 44

45 Itrodução à Liguagem Java Parâmetros de etrada Um programa de liha de comado pode receber parâmetros pela própria liha de comado O parâmetro Strig[] do mai é que recebe os valores passados pela liha de comado java TesteParametro primeiro 2 terceiro parâmetro Programa para testar parâmetros de etrada public class TesteParametro { public static void mai(strig[] args) { for(it i=0; i< args.legth; i++) { System.out.pritl(args[i]); No Eclipse é preciso cofigurar um Laucher Com o botão direito do mouse sobre o programa, escolher Ru as >> Ru... Selecioar tab Argumets e acrescetar os parâmetros da liha de comado Pressioar botão Ru Selecioar o Laucher Seac São Paulo 45

46 Itrodução à Liguagem Java Editar liha de comado Seac São Paulo 46

47 Itrodução à Liguagem Java CAPÍTULO 5 CLASSES E OBJETOS Seac São Paulo 7

48 Itrodução à Liguagem Java Pacotes Defie o ome completo da classe ( fully qualified ame class ) Uso da palavra reservada package Primeira liha útil do programa Um outro arquivo fote referecia uma classe pelo seu ome completo ou com o uso de import O import também pode importar atributos estáticos de classes import java.lag.math.pi; O ome completo de uma classe compreede o ome do pacote ao qual ela pertece juto com o ome com o qual ela foi declarada. A classe Date, do Java, está o pacote java. util, portato seu ome completo é java.util.date. Num arquivo fote qualquer, para se utilizar a classe Date, ou importamos o pacote o iício do fote ou a refereciamos pelo seu ome completo. import java.util.date;... Date dt = ew Date(); Ou import java.util.*; // importa todas as classes do pacote... Date dt = ew Date(); Ou java.util.date dt = ew java.util.date(); A classe Strig, do Java, por exemplo, está o pacote java.lag, portato o ome completo dessa classe é java.lag.strig. No etato, o pacote java.lag é automaticamete importado por todos os arquivos fotes. A defiição do pacote ao qual pertece uma classe é feita usado package br.com.empresa.omepacote; public class NomeClasse {... Essa classe, tem o ome completo br.com.empresa.omepacote.nomeclasse Exercícios: 1. Faça uma Aplicação Java que imprime a saída padrão o úmero de argumetos e os argumetos passados para o programa. Seac São Paulo 48

49 Itrodução à Liguagem Java Exemplo: >java Argumetos abcde 2 Mais um Teste 3,1416 Número de argumetos: 4 abcde 2 Mais um Teste 3, Faça uma Aplicação que calcule o fatorial de um úmero passado como argumeto. 3. Faça uma Aplicação que calcule o fatorial de um úmero passado como argumeto e que teste a itegridade do mesmo verifica se o úmero é iteiro e se tem um valor suficietemete pequeo para que o resultado seja coerete e imprima mesages para o usuário alertado para possíveis erros o argumeto (iclusive avisado caso o usuário ão teha passado ehum argumeto). 4. Faça uma Aplicação que coverta úmeros decimais em úmeros hexadecimais. Exemplo: >java Coversor 13 Decimal: 13 Hexadecimal: D java Coversor 64 Decimal: 64 Hexadecimal: Faça o coversor iverso também. Para pesar O que acotece se eu tetar compilar o código abaixo? short f = 1; short g = 2; short h; h = f + g; Seac São Paulo 49

50 Itrodução à Liguagem Java Programação orietada a objetos O que é? Uidades de código que iteragem são os objetos Classes atributos e comportameto - variáveis e métodos variáveis e métodos iteros podem ão ser visíveis exteramete classes podem ser defiidas de forma icremetal (heraça) Para que serve? Metodologia eficiete Programas grades e desevolvidos por equipes Grade ídice de reaproveitameto do código Seac São Paulo 50

51 Itrodução à Liguagem Java Objetos são etes Classes são defiições Objetos são modelados como os objetos do mudo real, ou seja, possuem existêcia física detro de um programa, ocupado espaço de memória e armazeado as iformações pertietes. Classes são defiições geéricas de objetos (moldes de objetos). Podem existir portato vários objetos de uma úica classe. Classes são defiidas a fim de que a partir delas possam ser gerados os objetos que assumem aquelas propriedades e executam aquela fucioalidade defiida a classe. Uma coceito simples que pode ser atribuído à classe, suficiete para sua compreesão de forma clara, é associá-la a um ovo tipo. Portato, as classes seriam os tipos de variáveis defiidos pelo programador e os objetos seriam as próprias variáveis declaradas daquele tipo. Na realidade, um objeto é muito mais que uma variável, o que será visto as próximas págias. Seac São Paulo 51

52 Itrodução à Liguagem Java Importate Defiir cuidadosamete uma classe levado-se em cota aspectos de fucioalidade, geeralidade e acessibilidade Nomeclatura: classes defiidas e objetos istaciados (ou seja, um objeto é uma istâcia de uma dada classe) Defiir fucioalmete as classes tora mais lógico o ecapsulameto. Defiir claramete que elemetos compõem a iterface - permite que outros usem seus objetos de forma simples e correta. Partir de classes mais geéricas facilita reaproveitameto do código ao mesmo tempo que defie o alcace da classe. Ter em mete que as classes são defiidas e os objetos declarados. Portato, todo objeto criado ocupa espaço o seu programa ou a máquia rodado o programa, e deve-se evitar criar objetos ão utilizados. Cosiderar aspectos de seguraça a defiição da acessibilidade da classe. Nomeclatura de liguagem: classes são defiidas e objetos são istaciados (ou seja, um objeto é uma istâcia de uma dada classe). Seac São Paulo 52

53 Itrodução à Liguagem Java Coceito de classe classe TextWidow Implemetação dos atributos private it x, y; private it dx, dy; private boolea mi; Implemetação dos métodos private resize(...); private maxim(); private clear(); Iterface public Strig Título; public it getx(); public it gety(); public boolea getmi(); public it setx(it X); public it sety(it Y); public it resizewi(it dx, it dy); public it movewi(it X, it Y); public it clearwi(); public it max(); public it mi(); public it loadwi(strig Texto); programa Uma classe cotém uma defiição de um cojuto de variáveis e fuções que são ecapsuladas cojutamete e compartilham o mesmo escopo de defiições. Assim, uma classe é defiida por seus atributos (variáveis) e comportameto (métodos ou fuções). Estas características permitem que a classe assuma em papel detro de um programa uicamete em termos de suas propriedades, ou seja, fatores exteros à classe ão podem afetá-la, além do permitido por ela. Este ecapsulameto é utilizado com uma série de beefícios em relação ao coceito covecioal de programação ão orietada a objetos. Toda classe é defiida em termos de sua iterface e sua implemetação. Atributos, métodos e iterfaces Atributos: variáveis ou propriedades de um objeto Métodos: comportameto do objeto <Modificadores> <tipo de retoro> <ome do método>(<lista de parâmetros>) { //blocos de comados Seac São Paulo 53

54 Itrodução à Liguagem Java Iterface: métodos ou variáveis visíveis ao mudo exterior Variáveis: são locais ao objeto e implemetam o coceito de atributos ou propriedades de um objeto. Métodos: são locais ao objeto e implemetam o coceito de comportameto do objeto, ou como suas propriedades se relacioam, tato etre si, como com o mudo exterior. Iterface: são métodos ou variáveis visíveis ao mudo exterior ao objeto. É a parte do objeto que iterage com os outros objetos de um programa. Regras gerais Atributos clareza Métodos abragêcia Iterfaces seguraça Atributos Claras e sigificativas com respeito às propriedades que represetam Podem ser outras classes Métodos Deve abrager, por defiição, todo o comportameto desejado da classe, iclusive aqueles aida ão implemetados, ou que devem ser implemetados por subclasses Iterfaces Mais seguraça se implemetada apeas com métodos Verificação de parâmetros de etrada Míima, mas fucioal. Deve-se buscar o compromisso ideal etre estas características. Seac São Paulo 54

55 Itrodução à Liguagem Java Métodos especiais Costrutor iicializa o objeto deve ter o mesmo ome da classe Métodos Abstratos Método declarado mas ão defiido Destrutor Fializa objeto Costrutor Método que iicializa o objeto. É o primeiro método chamado quado o objeto é criado (istaciado) e somete pode ser chamado esta situação Usado para iicializar atributos do objeto e executar os métodos de iicialização (abrir um arquivo, por exemplo) Deve ter o mesmo ome da classe; ão possui valor de retoro e pode existir em qualquer úmero para uma mesma classe (difere pelo úmero de argumetos) Método Abstrato Método declarado mas ão defiido, usado para forçar a implemetação de um comportameto desejado as subclasses que herdarem este método Destrutor Fializa objeto, limpa variáveis e libera recursos. Em Java ão pode ser ivocado diretamete. É ivocado a dealocação do objeto. Chama-se fialize e tem o mesmo ome pra todos as classes. Seac São Paulo 55

56 Itrodução à Liguagem Java Defiição de uma classe e alocação Declaração da classe public class Biometrica { public it altura, peso, idade; Declaração do objeto etrada saida Biometrica etrada, saida; altura: 0 altura: 0 Istaciação do objeto peso: 0 idade: 0 peso: 0 idade: 0 etrada = ew Biometrica (); saida = ew Biometrica (); Declaração da classe A classe Biométrica possui três atributos públicos. Declaração do objeto A declaração do objeto ada mais é do que declarar as variáveis que apotarão para as istâcias. Na declaração, os objetos ão estão aida istaciados, mas apeas omeados. Istaciação de objetos Os objetos sempre são istaciados pelo operador ew, que ivoca um costrutor da classe. Nesse exemplo, o costrutor default foi utilizado. O costrutor default é defiido implicitamete a todas as classes que ão possuem costrutor defiido. Ele é um costrutor que ão recebe argumeto ehum. Seac São Paulo 56

57 Itrodução à Liguagem Java Costrutores e istaciação Defiir um costrutor mais útil public class Biometrica { public it altura, peso, idade; public Biometrica (it altura, it peso, it idade) { this.altura = altura; this.peso = peso; this.idade = idade; etrada saida altura: 120 altura: 134 Istaciação de objetos peso: 34 peso: 42 etrada = ew Biometrica (120, 34, 12); idade: 12 idade: 15 saida = ew Biometrica (134, 42, 15); Costrutores podem ser defiidos em qualquer úmero, desde que difiram etre si a lista de argumetos que recebem. A palavra reservada this, detro de uma classe, refere-se à istâcia correte dessa classe. Assim, this.altura refere-se ao atributo altura da classe, equato a variável local altura ão é refereciada por ela. Referêcias a objetos Declaração de objetos que recebem outras istâcias etrada = ew Biometrica (120, 34, 12); saida = ew Biometrica (134, 42, 15); Biometrica aux1 = etrada; aux1.peso = 35; aux1 etrada saida altura: 120 peso: 35 idade: 12 altura: 134 peso: 42 idade: 15 Objetos declarados (mas ão istaciados) podem ser atribuídos a objetos istaciados. Nesse caso, tem-se duas referêcias para o mesmo objeto. Qualquer alteração feita através de qualquer referêcia afeta o objeto em questão. Seac São Paulo 57

58 Itrodução à Liguagem Java Declaração de métodos Métodos são fuções iteras à classe. public class Biometrica { public it altura, peso, idade; public Biometrica (it altura, it peso, it idade) { this.altura = altura; this.peso = peso; this.idade = idade; public float obterrelacaoalturapeso() { retur this.altura/this.peso; Um método é uma fução defiida detro de uma classe e que implemeta um comportameto desta classe. Quado ão possuir tipo de retoro deve ser utilizada a palavra chave void. public void icremetaridade() { this.idade++; Os argumetos de um método devem ser defiidos pelos seus tipos. public void acrescetaraltura(it aumeto) { this.altura += aumeto; Seac São Paulo

59 Itrodução à Liguagem Java Notação UML UML: Uified Modelig Laguage Padrão para especificação de sistemas orietado a objetos Classe Biometrica Nome da classe Atributos Métodos / Costrutores + peso: it + altura: it + idade: it + Biometrica(peso:it, altura: it, idade:it) + obterrelacaoalturapeso(): float A otação UML é um padrão utilizado amplamete para especificar sistemas orietados a objetos. O diagrama de classes é um dos mais utilizados. A otação para especificar uma classe é um retâgulo que possui três regiões: uma com o ome da classe, outra com os seus atributos e uma terceira com os seus métodos ou costrutores. Os atributos são especificados com seus tipos e sua acessibilidade: + para acesso público - para atributos privados Os métodos são especificados com seus tipos de retoro e lista de argumetos, além da acessibilidade, como os atributos. Seac São Paulo 59

Organização de Arquivos

Organização de Arquivos Orgaização de Arquivos Cristia D. A. Ciferri Thiago A. S. Pardo Leadro C. Citra M.C.F. de Oliveira Moacir Poti Jr. Por que Orgaizar Arquivos? Cosidere o seguite stream (fluxo) de bytes AmesJoh123 MapleStillwaterOK74075MasoAla90

Leia mais

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

PROGRAMAÇÃO E ALGORITMOS (LEI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017 PROGRAMAÇÃO E ALGORITMOS (LEI) Uiversidade da Beira Iterior, Departameto de Iformática Hugo Pedro Proeça, 2016/2017 Resumo Alocação de Memória Estática Diãmica malloc calloc realloc free Exercícios Gestão

Leia mais

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos Aálise de Algoritmos Aálise de Algoritmos Prof Dr José Augusto Baraauskas DFM-FFCLRP-USP A Aálise de Algoritmos é um campo da Ciêcia da Computação que tem como objetivo o etedimeto da complexidade dos

Leia mais

08/10/2018. Banco de Dados. Gerenciamento de Arquivos. Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados

08/10/2018. Banco de Dados. Gerenciamento de Arquivos. Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados Baco de Dados Gereciameto de Arquivos Sistema Gereciador de Baco de Dados Modelos de Dados Gereciameto de Arquivos Gereciameto de Arquivos 1 Gereciameto de Arquivos Em uma empresa existem 3 departametos:

Leia mais

1 Amintas engenharia

1 Amintas engenharia 1 Amitas egeharia 2 Cálculo Numérico 1. Itrodução Amitas Paiva Afoso 3 1. Itrodução O que é o Cálculo Numérico? 4 1. Itrodução O Cálculo Numérico correspode a um cojuto de ferrametas ou métodos usados

Leia mais

ORIENTAÇÃO A OBJETOS

ORIENTAÇÃO A OBJETOS ORIENTAÇÃO A OBJETOS Mário Meireles Teixeira mario@deif.ufma.br O que é Orietação a Objetos Paradigma modero da egeharia de software Iflui a aálise, projeto (desig) e programação A aálise orietada a objetos

Leia mais

16/10/2017. Banco de Dados. Gerenciamento de Arquivos. Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados

16/10/2017. Banco de Dados. Gerenciamento de Arquivos. Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados Baco de Dados Gereciameto de Arquivos Sistema Gereciador de Baco de Dados Modelos de Dados Gereciameto de Arquivos Gereciameto de Arquivos 1 Gereciameto de Arquivos Em uma empresa existem 3 departametos:

Leia mais

Tópicos. Ritmo sustentável Integração contínua Releases curtos A organização do ambiente de trabalho A equipe de desenvolvimento

Tópicos. Ritmo sustentável Integração contínua Releases curtos A organização do ambiente de trabalho A equipe de desenvolvimento Práticas do XP Tópicos Ritmo sustetável Itegração cotíua Releases curtos A orgaização do ambiete de trabalho A equipe de desevolvimeto 2 Ritmo sustetável 3 Trabalho em excesso Segudo Frederick Brooks (1995)

Leia mais

Banco de Dados I Parte II: Abordagem Entidade-Relacionamento

Banco de Dados I Parte II: Abordagem Entidade-Relacionamento Baco de Dados I Parte II: Abordagem Etidade-Relacioameto Prof. Gregorio Perez ( gregorio@uiove.br ) Colaboração: profa. Aa Leda prof. Adré Satos prof. José Ferreira Prata Roteiro Itrodução Etidade Relacioameto

Leia mais

Sistemas Operacionais. Gerência de Memória. Edeyson Andrade Gomes.

Sistemas Operacionais. Gerência de Memória. Edeyson Andrade Gomes. Sistemas Operacioais Gerêcia de Memória Edeyso Adrade Gomes www.edeyso.com.br Roteiro da Aula w Gerêcia de Memória Metas Algoritmos Sistemas Operacioais - Itrodução Edeyso A. Gomes 2 Gerêcia de Memória

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado.

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado. Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo Algoritmo Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

Herança e passagem de parâmetro AULA 09

Herança e passagem de parâmetro AULA 09 Itrodução a Programação IF669 http://www.ci.ufpe.br/~if669 Heraça e passagem de parâmetro AULA 09 Ricardo Massa F. Lima rmfl@ci.ufpe.br Sérgio C. B. Soares scbs@ci.ufpe.br Itrodução Imagie que temos uma

Leia mais

Implementação de Planilha de Cálculos Simplificada

Implementação de Planilha de Cálculos Simplificada INF 1620 Estruturas de Dados Semestre 08.2 Primeiro Trabalho Implemetação de Plailha de Cálculos Simplificada Uma plailha de cálculos é um programa muito utilizado em aplicações fiaceiras e aquelas que,

Leia mais

Introdução à Computação

Introdução à Computação Itrodução à Computação Recursividade Aula de hoje Recursividade Fução orial Voto de cofiaça recursivo Fução de Fiboacci Desvatages Professor: Adré de Carvalho Recursão Muitas estratégias de programação

Leia mais

O Modelo OSI. O Modelo OSI. As Camadas do Modelo. As Camadas do Modelo (cont.)

O Modelo OSI. O Modelo OSI. As Camadas do Modelo. As Camadas do Modelo (cont.) 1 O Modelo OSI Eduardo Max A. Amaral Aula 3 O Modelo OSI Framework cocebido pela ISO para a defiição de padrões, visado a itercoexão de sistemas heterogêeos (idepedêcia de fabricate, sistema operacioal

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacioais Sistema de Arquivos Edeyso Adrade Gomes www.edeyso.com.br Sistema de Arquivos w Mecaismo que provê armazeameto e acesso a dados e programas do Sistema Operacioal e do usuário; w Aspecto

Leia mais

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Teste de Software Egeharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Aspectos teóricos e empíricos de teste de cobertura de software Notas Didáticas do ICMC/USP (o. 31) Tópicos da

Leia mais

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO 5.1 INTRODUÇÃO Um sistema é defiido como todo o cojuto de compoetes itercoectados, previamete determiados, de forma a realizar um cojuto

Leia mais

Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados. Banco de Dados

Gerenciamento de Arquivos Sistema Gerenciador de Banco de Dados Modelos de Dados. Banco de Dados Gereciameto de Arquivos Sistema Gereciador de Baco de Dados Modelos de Dados Baco de Dados Gereciameto de Arquivos Gereciameto de Arquivos Gereciameto de Arquivos Em uma idústria são executadas três fuções:

Leia mais

Stela Adami Vayego DEST/UFPR

Stela Adami Vayego DEST/UFPR Resumo 3 Resumo dos dados uméricos por meio de úmeros 1. Medidas de Tedêcia Cetral A tedêcia cetral da distribuição de freqüêcias de uma variável em um cojuto de dados é caracterizada pelo valor típico

Leia mais

Ordenação e Busca em Arquivos

Ordenação e Busca em Arquivos Ordeação e Busca em Arquivos Cristia D. A. Ciferri Thiago A. S. Pardo Leadro C. Citra M.C.F. de Oliveira Moacir Poti Jr. Ordeação Facilita a busca Pode ajudar a dimiuir o úmero de acessos a disco Busca

Leia mais

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Algoritmos e Programação Liguagem Computacioal Estruturas de Cotrole: Estruturas de Decisão ou de Seleção Prof. Dr. Adriao Casia Prof. Dr. Leadro Alves Neves O que veremos: Estruturas de Cotrole de Fluxo

Leia mais

Introdução a Complexidade de Algoritmos

Introdução a Complexidade de Algoritmos Itrodução a Complexidade de Algoritmos Estruturas de Dados Prof. Vilso Heck Juior Apresetação Revisão - O Algoritmo; A Complexidade; Exercício. Complexidade de Algoritmos REVISÃO - O ALGORITMO O Algoritmo

Leia mais

Gerência de Redes Turma : V

Gerência de Redes Turma : V Gerêcia de Redes Turma : 20171.5.01405.1V SNMPv2 Prof. Thiago Dutra Ageda Itrodução Melhorias Gereciameto Descetralizado Estrutura da MIB Operações SNMPv1 x SNMPv2 2 1 Itrodução

Leia mais

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS 1 FEUP/LEEC Algoritmos e Estruturas de Dados 2001/2002 ANÁLISE DE COMPLEXIDADE DE ALGORITMOS João Pascoal Faria http://www.fe.up.pt/~jpf 2 Itrodução Algoritmo: cojuto claramete especificado de istruções

Leia mais

MAC122 Princípios de Desenvolvimento de Algoritmos - BM,BMA

MAC122 Princípios de Desenvolvimento de Algoritmos - BM,BMA DCC IME USP Routo Terada Sala 208-C Tel.: 09 598 e-mail rt@ime.usp.br MAC22 Pricípios de Desevolvimeto de Algoritmos - BM,BMA Segudo Semestre de 20 Exercício-Programa, Peso Observações Data de etrega:

Leia mais

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007. Ageda Aálise e Técicas de Algoritmos Motivação para aálise de de algoritmos Aálise assitótica Algus exemplos simples Jorge Figueiredo Aálise de de Algoritmos Dois aspectos importates: Um problema pode,

Leia mais

RMI - Remote Method Invocation

RMI - Remote Method Invocation RMI - Remote Method Ivocatio Fote: Capítulo 5 do livro texto Prof Starch Souza RMI Itrodução RMI Remote Method Ivocatio Permite que uma programa cliete possa ivocar métodos de objetos remotos em um programa

Leia mais

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3 Itrodução Problema Algoritmo Implemetação Problema Uiversidade Federal de Ouro Preto Departameto de Computação Algoritmo 1 Algoritmo 2 Algoritmo 3 Projeto e Aálise de Algoritmos - I Implemetação C Implemetação

Leia mais

A Computação e as Classificações da Ciência

A Computação e as Classificações da Ciência A Computação e as Classificações da Ciêcia Ricardo de Almeida Falbo Metodologia de Pesquisa Departameto de Iformática Uiversidade Federal do Espírito Sato Ageda Classificações da Ciêcia A Computação e

Leia mais

Stela Adami Vayego DEST/UFPR

Stela Adami Vayego DEST/UFPR Resumo 3 Resumo dos dados uméricos por meio de úmeros. Medidas de Tedêcia Cetral A tedêcia cetral da distribuição de freqüêcias de uma variável em um cojuto de dados é caracterizada pelo valor típico dessa

Leia mais

PROF. DR. JACQUES FACON

PROF. DR. JACQUES FACON 1 PUCPR- Potifícia Uiversidade Católica Do Paraá PPGIA- Programa de Pós-Graduação Em Iformática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO POR MATRIZ DE CO-OCORRÊNCIA Resumo: O método da matriz de co-ocorrêcia,

Leia mais

EXERCÍCIO: ANÁLISE OPERACIONAL

EXERCÍCIO: ANÁLISE OPERACIONAL EXERCÍCIO: ANÁLISE OPERACIONAL Corredor A: ligação etre o Leste e o Cetro da cidade de São Poli extesão de cerca de 8 km até o Ael B (limita face leste da área cetral), distiguido-se 3 trechos em fução

Leia mais

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

O termo linear significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2 MÓDULO 4 - PROBLEMAS DE TRANSPORTE Baseado em Novaes, Atôio Galvão, Métodos de Otimização: aplicações aos trasportes. Edgar Blücher, São Paulo, 978..CONCEITOS BÁSICOS DE PROGRAMAÇÃO LINEAR É uma técica

Leia mais

DETERMINANDO A SIGNIFICÂNCIA ESTATÍSTICA PARA AS DIFERENÇAS ENTRE MÉDIAS

DETERMINANDO A SIGNIFICÂNCIA ESTATÍSTICA PARA AS DIFERENÇAS ENTRE MÉDIAS DTRMINANDO A SIGNIFIÂNIA STATÍSTIA PARA AS DIFRNÇAS NTR MÉDIAS Ferado Lag da Silveira Istituto de Física - UFRGS lag@if.ufrgs.br O objetivo desse texto é apresetar através de exemplos uméricos como se

Leia mais

Métodos de Classificação dos Objetos Segmentados(IAR) Vizinho Próximo Lógica Fuzzy

Métodos de Classificação dos Objetos Segmentados(IAR) Vizinho Próximo Lógica Fuzzy Viziho Próximo ógica Fuzzy Métodos de Classificação dos Objetos Segmetados(IAR) objeto REGRA CASSE Fuzzy Cohecimeto Miima Distâcia Viziho Próximo O método do viziho próximo é baseado o método da míima

Leia mais

Casos de Uso e Diagrama de Casos de Uso

Casos de Uso e Diagrama de Casos de Uso Casos de Uso e Diagrama de Casos de Uso SSC 124: Aálise e Projeto Orietados a Objetos Profa. Dra. Elisa Yumi Nakagawa 1 Defiição Caso de uso (use case) uidade fucioal provida pelo sistema, subsistema,

Leia mais

AULA 1 INTRODUÇÃO AO JAVA

AULA 1 INTRODUÇÃO AO JAVA AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede

Leia mais

Ordenação (Parte 1) Prof. Túlio Toffolo BCC202 Aula 13 Algoritmos e Estruturas de Dados I

Ordenação (Parte 1) Prof. Túlio Toffolo  BCC202 Aula 13 Algoritmos e Estruturas de Dados I Ordeação (Parte 1) Prof. Túlio Toffolo http://www.toffolo.com.br BCC0 Aula 13 Algoritmos e Estruturas de Dados I Critério de Ordeação Ordea-se de acordo com uma chave: typedef it TChave; typedef struct

Leia mais

Medição e Métricas de Software

Medição e Métricas de Software Medição e Métricas de Software Motivação Um dos objetivos básicos da Egeharia de Software é: a trasformação da criação de sistemas software de uma maeira artística, idiscipliada e pouco etedível para uma

Leia mais

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos:

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos: 48 DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL LEI DOS GRANDES NÚMEROS Pretede-se estudar o seguite problema: À medida que o úmero de repetições de uma experiêcia cresce, a frequêcia relativa

Leia mais

10 - Medidas de Variabilidade ou de Dispersão

10 - Medidas de Variabilidade ou de Dispersão 10 - Medidas de Variabilidade ou de Dispersão 10.1 Itrodução Localizado o cetro de uma distribuição de dados, o próximo passo será verificar a dispersão desses dados, buscado uma medida para essa dispersão.

Leia mais

Sumário. 2 Índice Remissivo 19

Sumário. 2 Índice Remissivo 19 i Sumário 1 Estatística Descritiva 1 1.1 Coceitos Básicos.................................... 1 1.1.1 Defiições importates............................. 1 1.2 Tabelas Estatísticas...................................

Leia mais

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU Aula 1 POO 1 Prática Profa. Elaine Faria UFU - 2019 Introdução Java Linguagem de programação poderosa Utiliza o paradigma Orientado a Objetos Muito utilizada em aplicativos para Internet e para redes Difundida

Leia mais

Secção 1. Introdução às equações diferenciais

Secção 1. Introdução às equações diferenciais Secção. Itrodução às equações difereciais (Farlow: Sec..,.) Cosideremos um exemplo simples de um feómeo que pode ser descrito por uma equação diferecial. A velocidade de um corpo é defiida como o espaço

Leia mais

Virgílio A. F. Almeida DCC-UFMG 1/2005

Virgílio A. F. Almeida DCC-UFMG 1/2005 Virgílio A. F. Almeida DCC-UFMG 1/005 !" # Comparado quatitativamete sistemas eperimetais: Algoritmos, protótipos, modelos, etc Sigificado de uma amostra Itervalos de cofiaça Tomado decisões e comparado

Leia mais

4 Teoria da Probabilidade

4 Teoria da Probabilidade 48 4 Teoria da Probabilidade Apresetam-se este capítulo coceitos de probabilidade e de estimação de fuções desidade de probabilidade ecessários ao desevolvimeto e compreesão do modelo proposto (capítulo

Leia mais

Problema de Fluxo de Custo Mínimo

Problema de Fluxo de Custo Mínimo Problema de Fluo de Custo Míimo The Miimum Cost Flow Problem Fluo de Custo Míimo O Problema de Fluo de Custo Míimo (The Miimum Cost Flow Problem) Este problema possui papel pricipal etre os modelos de

Leia mais

Cap. VI Histogramas e Curvas de Distribuição

Cap. VI Histogramas e Curvas de Distribuição TLF /11 Capítulo VI Histogramas e curvas de distribuição 6.1. Distribuições e histogramas. 6 6.. Distribuição limite 63 6.3. Sigificado da distribuição limite: frequêcia esperada e probabilidade de um

Leia mais

Uma Proposta de Infra-estrutura de Medições para o Tráfego do Backbone da RNP2

Uma Proposta de Infra-estrutura de Medições para o Tráfego do Backbone da RNP2 Uma Proposta de Ifra-estrutura de Medições para o Tráfego do Backboe da RNP2 Leobio Nascimeto Sampaio e-mail: leobio@uifacs.br José A. Suruagy e-mail: suruagy@uifacs.br Abril - 2003 Roteiro Apresetação

Leia mais

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[],..., r[-], cada item a lista é chamado

Leia mais

CINÉTICA QUÍMICA FATORES DE INFLUÊNCIA - TEORIA

CINÉTICA QUÍMICA FATORES DE INFLUÊNCIA - TEORIA Itrodução CINÉTICA QUÍMICA FATORES DE INFLUÊNCIA - TEORIA A Ciética Química estuda a velocidade com a qual as reações acotecem e os fatores que são capazes de realizar ifluêcia sobre ela. A medida mais

Leia mais

ENGENHARIA DA QUALIDADE A ENG AULA 3 TEOREMA DO LIMITE CENTRAL INTRODUÇÃO AO CONTROLE ESTATÍSTICO DE PROCESSO

ENGENHARIA DA QUALIDADE A ENG AULA 3 TEOREMA DO LIMITE CENTRAL INTRODUÇÃO AO CONTROLE ESTATÍSTICO DE PROCESSO ENGENHARIA DA QUALIDADE A ENG 09008 AULA 3 TEOREMA DO LIMITE CENTRAL INTRODUÇÃO AO CONTROLE ESTATÍSTICO DE PROCESSO PROFESSOR: CARLA SCHWENGBER TEN CATEN Teorema do limite cetral A soma (e sua média) de

Leia mais

Universidade São Judas Tadeu Faculdade de Tecnologia e Ciências Exatas Laboratório de Física e Química

Universidade São Judas Tadeu Faculdade de Tecnologia e Ciências Exatas Laboratório de Física e Química Uiversidade São Judas Tadeu Faculdade de Tecologia e Ciêcias Exatas Laboratório de Física e Química Aálise de Medidas Físicas Quado fazemos uma medida, determiamos um úmero para caracterizar uma gradeza

Leia mais

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[], r[], r[],, r[-], cada item a lista é chamado registro.

Leia mais

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Noçõ ções básicas b da linguagem Java Profs. Marcel Hugo e Jomi Fred Hübner Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Introduçã ção Origem Funcionamento Vantagens Linguagem

Leia mais

CAPÍTULO 8 - Noções de técnicas de amostragem

CAPÍTULO 8 - Noções de técnicas de amostragem INF 6 Estatística I J.I.Ribeiro Júior CAPÍTULO 8 - Noções de técicas de amostragem. Itrodução A Estatística costitui-se uma excelete ferrameta quado existem problemas de variabilidade a produção. É uma

Leia mais

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012

Prova Parcial 1 Matemática Discreta para Computação Aluno(a): Data: 18/12/2012 Prova Parcial Aluo(a): Data: 8/2/202. (,5p) Use regras de iferêcia para provar que os argumetos são válidos. (usar os símbolos proposicioais idicados): A Rússia era uma potêcia superior, e ou a Fraça ão

Leia mais

Formas Normais. Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr.

Formas Normais. Dalton E. dos Santos, Kelvin E. Nogueira da Silva, Jorge L. dos Santos Ramos Jr. Formas Normais Dalto E. dos Satos, Kelvi E. Nogueira da Silva, Jorge L. dos Satos Ramos Jr. Departameto de Iformática Uiversidade Tecológica Federal do Paraá (UTFPR) CEP: 80230-901 Curitiba PR Brasil daltoes@ms.com,

Leia mais

Modelagem Conceitual - Análise Lógica

Modelagem Conceitual - Análise Lógica Modelagem Coceitual - Aálise Lógica Modelagem Modelagem Trasformar Aspectos do Mudo Real em um Formal Ferado Foseca & Aa Carolia Geéricos Específicos de SGBD /3/03 CI/UFPE 2 Compoetes de um Uma Coleção

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Uiversidade Federal de Alfeas Algoritmos em Grafos Aula 02 Coceitos Básicos Prof. Humberto César Bradão de Oliveira Última aula Histórico dos Grafos Abstração por Euller; Utilização em Química; Utilização

Leia mais

Estudando complexidade de algoritmos

Estudando complexidade de algoritmos Estudado complexidade de algoritmos Dailo de Oliveira Domigos wwwdadomicombr Notas de aula de Estrutura de Dados e Aálise de Algoritmos (Professor Adré Bala, mestrado UFABC) Durate os estudos de complexidade

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.)

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.) Fotes Bibliográficas Estruturas de Dados Aula 14: Recursão Livros: Projeto de Algoritmos (Nivio Ziviai): Capítulo 2; Estruturas de Dados e seus Algoritmos (Szwarefiter, et. al): Capítulo 1; Algorithms

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Busca binária. Busca em arquivos. Busca binária. Busca binária. Ordenação e busca em arquivos

Busca binária. Busca em arquivos. Busca binária. Busca binária. Ordenação e busca em arquivos Algoritmos e Estruturas de Dados II Profa. Debora Medeiros Ordeação e Busca em Arquivos Idexação de Arquivos I: Ídices Simples Ordeação e busca em arquivos É relativamete fácil buscar elemetos em cojutos

Leia mais

Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Ordeação David Meotti Algoritmos e Estruturas de Dados II DIf UFPR Critério de Ordeação Ordea-se de acordo com uma chave: typedef it ChaveTipo; typedef struct ChaveTipo Chave; /* outros compoetes */ Item;

Leia mais

Bombas industriais. 1 Torr = 1 mmhg. Bombas industriais

Bombas industriais. 1 Torr = 1 mmhg. Bombas industriais Codições (especificações) de carga: Para água ao ível do mar 1 Torr = 1 mmhg Codições (especificações) de carga: Carga de Pressão (h p ) A carga de pressão é cosiderada quado um sistema de bombeameto começa,

Leia mais

O USO DAS TIC EM EDUCAÇÃO MUSICAL NO 2º CICLO DO ENSINO BÁSICO NOS DISTRITOS DE VILA REAL E BRAGANÇA

O USO DAS TIC EM EDUCAÇÃO MUSICAL NO 2º CICLO DO ENSINO BÁSICO NOS DISTRITOS DE VILA REAL E BRAGANÇA II SEMINÁRIO INTERNACIONAL INCLUSÃO E INTEGRAÇÃO DAS TIC NA SALA DE AULA O USO DAS TIC EM EDUCAÇÃO MUSICAL NO 2º CICLO DO ENSINO BÁSICO NOS Nuo Carlos Teixeira Machado, 4 de julho de 2014 Itrodução Vivemos

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Aálise de Algoritmos e Complexidade Estrutural Carlos Alberto Aloso Saches CT-234 3) Estruturas de dados elemetares Filas, pilhas e árvores Alocação estática versus diâmica

Leia mais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Uiversidade Federal de Sata Cataria Cetro Tecológico Departameto de Iformática e Estatística Curso de Graduação em Ciêcias da Computação Aula 10-T 4. Projeto de Sistemas Digitais o Nível RT. Aumetado o

Leia mais

CAPÍTULO IV DESENVOLVIMENTOS EM SÉRIE

CAPÍTULO IV DESENVOLVIMENTOS EM SÉRIE CAPÍTUO IV DESENVOVIMENTOS EM SÉRIE Série de Taylor e de Mac-auri Seja f ) uma fução real de variável real com domíio A e seja a um poto iterior desse domíio Supoha-se que a fução admite derivadas fiitas

Leia mais

Preliminares 1. 1 lim sup, lim inf. Medida e Integração. Departamento de Física e Matemática. USP-RP. Prof. Rafael A. Rosales. 8 de março de 2009.

Preliminares 1. 1 lim sup, lim inf. Medida e Integração. Departamento de Física e Matemática. USP-RP. Prof. Rafael A. Rosales. 8 de março de 2009. Medida e Itegração. Departameto de Física e Matemática. USP-RP. Prof. Rafael A. Rosales 8 de março de 2009. 1 lim sup, lim if Prelimiares 1 Seja (x ), N, uma seqüêcia de úmeros reais, e l o limite desta

Leia mais

Escola de Engenharia de Lorena EEL USP Departamento de Engenharia Química DEQUI Disciplina: Normalização e Controle da Qualidade NCQ

Escola de Engenharia de Lorena EEL USP Departamento de Engenharia Química DEQUI Disciplina: Normalização e Controle da Qualidade NCQ 1 Escola de Egeharia de orea EE SP Departameto de Egeharia Química DEQI Disciplia: Normalização e Cotrole da Qualidade NCQ Capítulo : Amostragem por Variáveis (MI STD 1) SEÇÃO A.1 Objetivo Este capítulo

Leia mais

Tópicos. Cliente presente O jogo do planejamento Stand up meeting Programação em par

Tópicos. Cliente presente O jogo do planejamento Stand up meeting Programação em par Práticas do XP Tópicos Cliete presete O jogo do plaejameto Stad up meetig Programação em par 2 Cliete presete 3 Cliete Presete Tradicioalmete, há uma divisão implícita etre as resposabilidades do cliete

Leia mais

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada

Leia mais

Streams II. Overview. The notion of stream Java I/O stream hierarchy Files, and file access using streams Serialization

Streams II. Overview. The notion of stream Java I/O stream hierarchy Files, and file access using streams Serialization Streams II Bruce Eckel, Thikig i Java, 4th editio, PreticeHall, New Jersey, cf. http://midview.et/books/tij4 jvo@ualg.pt José Valete de Oliveira 16-1 Overview The otio of stream Java I/O stream hierarchy

Leia mais

Redes Neurais. Redes de uma única camada O Perceptron elementar. Prof. Paulo Martins Engel. Classificação de padrões por um perceptron

Redes Neurais. Redes de uma única camada O Perceptron elementar. Prof. Paulo Martins Engel. Classificação de padrões por um perceptron Redes Neurais Redes de uma úica camada O Perceptro elemetar Classificação de padrões por um perceptro A tarefa de classificação cosiste em apreder a atribuir rótulos a dados que podem pertecer a uma etre

Leia mais

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari

MATEMÁTICA II. Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari MATEMÁTICA II Profa. Dra. Amada Liz Pacífico Mafrim Perticarrari amada@fcav.uesp.br O PROBLEMA DA ÁREA O PROBLEMA DA ÁREA Ecotre a área da região que está sob a curva y = f x de a até b. S = x, y a x b,

Leia mais

Metodologia Orientada a Objetos Mínima

Metodologia Orientada a Objetos Mínima Aálise e Projeto Orietados a Objeto Metodologia Orietada a Objetos Míima 1 O domíio de estudo ão é o sistema de iformação em sua totalidade A orgaização ão é levada em cosideração O Sistema de Iformação

Leia mais

Arquivo de Índice (Revisão) Indexação de Arquivos II: Arquivos de Índice Grandes. Arquivos de Índice Grandes

Arquivo de Índice (Revisão) Indexação de Arquivos II: Arquivos de Índice Grandes. Arquivos de Índice Grandes Algoritmos e Estruturas de Dados II Prof. Debora Medeiros Arquivo de Ídice (Revisão) Idexação de Arquivos II: Exemplo Prático (Arquivo de Músicas) Ídices Simples Grades & Idexação Secudária Adaptado e

Leia mais

Problema de Fluxo de Custo Mínimo

Problema de Fluxo de Custo Mínimo Problema de Fluo de Custo Míimo The Miimum Cost Flow Problem Ferado Nogueira Fluo de Custo Míimo O Problema de Fluo de Custo Míimo (The Miimum Cost Flow Problem) Este problema possui papel pricipal etre

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Revisão da Literatura

Revisão da Literatura Revisão da Literatura Ricardo de Almeida Falbo Metodologia de Pesquisa Departameto de Iformática Uiversidade Federal do Espírito Sato Revisão Bibliográfica O que é? Fudametação teórica que visa dar sustetação

Leia mais

17/03/2014 MODELO ENTIDADE-RELACIONAMENTO (M.E.R.) Agenda Generalização / Especialização; Entidade Associativa (Agregação);

17/03/2014 MODELO ENTIDADE-RELACIONAMENTO (M.E.R.) Agenda Generalização / Especialização; Entidade Associativa (Agregação); MODELO ENTIDADE-RELACIONAMENTO (M.E.R.) Ageda Geeralização / Especialização; Etidade Associativa (Agregação); 1 MODELO ENTIDADE-RELACIONAMENTO (M.E.R.) Geeralização / Especialização A geeralização é um

Leia mais

CONCEITOS FUNDAMENTAIS DA MATEMÁTICA FINANCEIRA

CONCEITOS FUNDAMENTAIS DA MATEMÁTICA FINANCEIRA CONCEITOS FUNDAMENTAIS DA MATEMÁTICA FINANCEIRA Coceito de taxa de juros Taxa de juro é a relação etre o valor dos juros pagos (ou recebidos) o fial de um determiado período de tempo e o valor do capital

Leia mais

Exercício: Mediu-se os ângulos internos de um quadrilátero e obteve-se 361,4. Qual é o erro de que está afetada esta medida?

Exercício: Mediu-se os ângulos internos de um quadrilátero e obteve-se 361,4. Qual é o erro de que está afetada esta medida? 1. Tratameto estatísticos dos dados 1.1. TEORIA DE ERROS O ato de medir é, em essêcia, um ato de comparar, e essa comparação evolve erros de diversas origes (dos istrumetos, do operador, do processo de

Leia mais

CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR

CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR XXIX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO. CARTA DE CONTROLE PARA MONITORAMENTO DE FRAÇÃO DE CONFORMES UTILIZANDO UM NOVO ESTIMADOR Ruth Pereira Loureço (USP) ruth.p.loureco@gmail.com Lida Lee Ho

Leia mais

Sistemas Digitais Palavra de Controle (Control Word)

Sistemas Digitais Palavra de Controle (Control Word) Sistemas Digitais Palavra de Cotrole (Cotrol Word) Referêcia Bibliográfica: Logic ad Computer Desig Fudametals Mao & Kime Adaptações: josé artur quilici-gozalez Sumário Datapaths e Cotrol Word Itrodução

Leia mais

Modelagem Lógica Verificar Requisitos. 2. Obter o modelo conceitual. 3. Definir a abordagem de banco de dados a ser

Modelagem Lógica Verificar Requisitos. 2. Obter o modelo conceitual. 3. Definir a abordagem de banco de dados a ser Modelagem Coceitual: preocupação: correta abstração do mudo real (captura correta da semâtica da aplicação) Modelagem Lógica + Física: preocupação: escolhas corretas a coversão para o esquema do SGBD (relacioal)

Leia mais

Análise de Sistemas de Informação

Análise de Sistemas de Informação Istituto Superior Politécico de Ciêcias e Tecologia Aálise de Sistemas de Iformação Prof Pedro Vuge http://pedrovuge.com II Semestre de 2018 SUMÁRIO Coceitos de Sistemas de Iformação 2 Coceitos de Sistemas

Leia mais

A B C A e B A e C B e C A, B e C

A B C A e B A e C B e C A, B e C 2 O ANO EM Matemática I RAPHAEL LIMA Lista 6. Durate o desfile de Caraval das escolas de samba do Rio de Jaeiro em 207, uma empresa especializada em pesquisa de opiião etrevistou 40 foliões sobre qual

Leia mais

O jogo MAX_MIN - Estatístico

O jogo MAX_MIN - Estatístico O jogo MAX_MIN - Estatístico José Marcos Lopes Resumo Apresetamos este trabalho um jogo (origial) de treiameto para fortalecer os coceitos de Média, Mediaa, Moda, Desvio Padrão e Desvio Médio da Estatística

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Pato Branco ENGENHARIA DE COMPUTAÇÃO. Prova Parcial 1 Matemática Discreta para Computação 2011 Campus Pato Braco Prova Parcial Matemática Discreta para Computação 20 Aluo(a): Data: 08/04/20. (,5p) Explicar o Paradoxo de Cator. Use como base o seguite: Teorema de Cator: Para qualquer cojuto A, a

Leia mais

Séquências e Séries Infinitas de Termos Constantes

Séquências e Séries Infinitas de Termos Constantes Capítulo Séquêcias e Séries Ifiitas de Termos Costates.. Itrodução Neste capítulo estamos iteressados em aalisar as séries ifiitas de termos costates. Etretato, para eteder as séries ifiitas devemos ates

Leia mais

Ordenação por Troca. Bubblesort Quicksort

Ordenação por Troca. Bubblesort Quicksort Ordeação por roca Bubblesort Quicksort ORDENAÇÃO Ordear é o processo de orgaizar uma lista de iformações similares em ordem crescete ou decrescete. Especificamete, dada uma lista de ites r[0], r[], r[2],...,

Leia mais

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I Prof. Dr. Daniel Caetano 2017-1 Objetivos Conhecer os tipos de dados, constantes e como declarar variáveis Conhecer os operadores e expressões Conhecer e

Leia mais

Administração de Sistemas Proprietários Turma : N. Windows Server 2012 R2 Visão Geral. Prof. Thiago Dutra

Administração de Sistemas Proprietários Turma : N. Windows Server 2012 R2 Visão Geral. Prof. Thiago Dutra Admiistração de Sistemas Proprietários Turma : 20181.4.01405.1N Widows Server 2012 R2 Visão Geral Prof. Thiago Dutra Ageda Microsoft Cloud OS Cloud OS e Widows Server Dados Gerais

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital. Via de Dados

EPUSP PCS 2011/2305/2355 Laboratório Digital. Via de Dados Via de Dados Versão 2012 RESUMO Esta experiêcia tem como objetivo itroduzir o coceito de via de dados, que é largamete empregado a implemetação de sistemas computacioais, com a familiarização com circuitos

Leia mais

Peculiaridades dos DER. Gerenciamento de Dados e Informação. Peculiaridades dos DER. Peculiaridades dos DER

Peculiaridades dos DER. Gerenciamento de Dados e Informação. Peculiaridades dos DER. Peculiaridades dos DER Gereciameto de Dados e Iformação Costrução de Diagrama ER Ferado Foseca Aa Carolia Robso Fidalgo CI.ufpe.br Peculiaridades dos DER Diagrama formal, preciso e ão ambíguo Diferetes leitores de um mesmo DER

Leia mais

Capítulo VII: Soluções Numéricas de Equações Diferenciais Ordinárias

Capítulo VII: Soluções Numéricas de Equações Diferenciais Ordinárias Capítulo VII: Soluções Numéricas de Equações Difereciais Ordiárias 0. Itrodução Muitos feómeos as áreas das ciêcias egearias ecoomia etc. são modelados por equações difereciais. Supoa-se que se quer determiar

Leia mais