Programação Java I. Prof. Vinicius Rosalen



Documentos relacionados
PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Linguagem Java - Introdução

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Sintaxe Básica do Java. João Paulo Q. dos Santos

Tipos Primitivos, estruturas de iteração e decisão.

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

Algoritmos II prof. Daniel Oliveira

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Ambientação com a Sintaxe de Java: parte 1

Linguagem de programação Java

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Variáveis primitivas e Controle de fluxo

Working 03 : Conceitos Básicos I

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

3. Linguagem de Programação C

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Análise de Programação

Programação Estruturada e Orientada a Objetos

Algoritmos e Programação

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

4. Constantes. Constantes pré-definidas

Laboratório de Programação II

Programação com Acesso a BD. Programação com OO Acesso em Java

MsC. João Maria MsC. Liviane Melo

Instituto Superior de Engenharia de Lisboa

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Algoritmos I Aula 13 Linguagem de Programação Java

PROGRAMAÇÃO JAVA. Parte 2

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

JAVA. Professor: Bruno Toledo

Programação Estruturada

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.

Palavras Reservadas da Linguagem Java

Programação científica C++

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

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

3. Linguagem de Programação C

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Organização de programas em Java

Linguagem C Princípios Básicos (parte 1)

Linguagem de Programação II Implementação

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Desenvolvendo aplicações Java

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Linguagens de Programação

Linguagem de Programação C

Programação I A Linguagem C. Prof. Carlos Alberto

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

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

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

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Orientação a Objetos e Java

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Conceitos básicos de programação

Programação de Computadores II TCC Turma A-1

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

Linguagem C: Introdução

Organização de programas em Java

Diagramas Sintáticos

Introdução à Linguagem C Variáveis e Expressões

Seleção Múltipla Laços (while, do-while, for) AULA 05

A Linguagem C. A forma de um programa em C

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

Aula 4: Introdução à Linguagem C++

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Métodos Computacionais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.

Esta é a única declaração da aplicação

Ambiente de desenvolvimento

ptraux = dynamic_cast <PacoteNoite *> (vetor[i]); if (ptraux) auxiliar += vetor[i]->calculacusto();

Lição 4 Fundamentos da programação

Capítulo 2 Operadores. A função scanf()

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Estruturas de Repetição e String. Vanessa Braganholo

Transcrição:

Programação Java I Prof. Vinicius Rosalen

Parte I

A Plataforma Java Características básicas Revisão Linguagem OO Baseia-se na JVM (Java Virtual Machine) Executáveis escritos em bytecodes Idéia fundamental: write once, run anywhere Linguagem Java é a parte central da plataforma.

Ambiente Java Temos 3 elementos principais Revisão Programas Compilados em JAVA (Bytecodes) Máquina Virtual Java Plataforma de Hardware e Sistema Operacional

Programador Ambiente Java Processo de compilação e execução pela JVM Revisão API API API API Interpretador Depende da Plataforma Editor Compilador Fonte Bytecode Disco Memória

Ambiente Java O que vamos usar?? => Java SDK (Antigo JDK) Pacote contendo os seguintes componentes: Compilador Java Máquina Virtual Bibliotecas principais Gerador de documentação Depurador de programas Distribuído pela Sun (java.sun.com) Ele pura não é ambiente visual Arquivos editados em editores de texto comuns Compilador e máquina virtual executados a partir de linha de comando Podemos usar IDES como JCreator, Eclipse, NetBeans, etc Principalmente para o desenvolvimento de interfaces ou projeto maiores

Ambiente Java Se for usar só o SDK 1.6 Vá ao site java.sun.com Vá na área Popular Downloads (lado direito) e clique em Java SE Clique no botão Download do SDK 6 update 4 Selecione na próxima pagina o sistema operacional que você está usando Clique no checkbox abaixo da escolha do sistema operacional Siga o restante das instruções (são intuitivas) Instalar a IDE depois... Visite à Documentação de APIs de Java http://java.sun.com/javase/6/docs/api/

Ambiente Java Se for feito o download junto (SDK + IDE) Instalar um único arquivo Mais prático E possível desenvolver sem IDE? SIM... e iremos trabalhar com algumas vezes só com um frontend simples para focar no código PORÉM para desenvolvimento... Diminui produtividade; aumenta a quantidade de erros, etc... Com a IDE é possível usar o CODE INSIDE, DEBUG, CRIAR PROJETOS, GERAR O EXECUTÁVEL. Tudo de maneira automática.

Nomes e Extensões Conceitos iniciais A extensão dos arquivos é.java e é obrigatória Após compilado, a extensão é.class Cada arquivo.java só pode conter uma classe pública, que deve ter o mesmo nome do arquivo Exemplo: Se o nome da classe é PrimeiraClasse, o nome do arquivo fonte deverá obrigatoriamente ser PrimeiraClasse.java Uma aplicação Java completa é composta por um ou mais arquivos.java

Conceitos iniciais Convenções Convenções de Nomes São adotados por padrões de empresas... Nomes de classes: Cliente CadastrarCarro Pedido Variáveis: valor numeropedido foneclienteespecial Métodos: modifica modificanome atualizavalortaxa Constantes: DIREITA PI

É importante para entende uma nova linguagem!!! Questões LéxicasL Durante a compilação, os caracteres no código Java são reduzidos a uma série de tokens. O compilador Java reconhece cinco tipos de tokens : Identificadores Palavras Reservadas Literais Separadores Operadores Comentários Comentários e espaços em branco, como tabulação, são usados para separar os tokens. Vamos falar um pouco sobre cada uma destas questões.

Identificadores Questões LéxicasL Identificadores são nomes usados para nomear variáveis, atributos, métodos, classes As regras para declarar identificadores são: Maiúsculas e minúsculas são diferentes Java é sensível ao caso» int A é diferente de int a Palavras reservadas não podem ser usadas como identificadores Pode conter letras, números, o caractere $ (cifrão) ou _ (underscore) Não pode começar com número Somente diferencia os 32 primeiros caracteres É possível utilizar acentuação nas variáveis porque Java usa Unicode como código de caracteres

Questões LéxicasL Palavras Reservadas É importante sabermos quais são as palavras reservadas da linguagem Java, Primeiro pra não ocorrer o erro de tentar criar variáveis com estes nomes, Segundo porque a certificação pede esse conhecimento... Tabela: Tipos, modificadores e mecanismo de controle de fluxo. abstract boolean break byte case catch char class const continue default do double else extends false final finallly float for goto if implements import instanceof int interface long native new null package private protected public return short static super synchronized this throw throws transient true try void volatile while

Questões LéxicasL Identificadores - Exercício Quais dos identificadores abaixo são válidos? a) foobar b) alguem_sabe_o$_que_e_foobar$ c) 3_node5 d)!puxavida e) my_$_money f) new g) newinterface h) ExageratedLong$WeirdAndMeaninglessName

Declaração de Variáveis Formato Questões LéxicasL Tipo seguido por lista de identificadores tipo identificador [ = valor] [, identificador [= valor... ];» Ex.: int b, c; Inicialização Pode ser feita na declaração; Ex.: int a=10; É interessante inicializar a variável local antes de usar o valor, a não ser que seja utilizado o valor padrão do tipo. Variáveis de classe e instância são inicializadas automaticamente Pode ser feita em qualquer ponto do programa

Questões LéxicasL Literais Literais são os valores Que podem ser atribuídos a um identificador de um tipo primitivo, Ou passados como argumentos em chamadas de método: É qualquer número, texto ou outra informação que representa um valor, Exemplos: Booleanos : somente true ou false Caracteres : 'a', 'b', 'Z', '\n Inteiros : 28 Ponto flutuante : 6.02E+23, 1.013E-15D String : "qualquer coisa entre aspas duplas"

Questões LéxicasL Literais Inteiros Inteiros podem ser expressos no formato: decimal (base 10), octal (base8) ou hexadecimal (base 16). 2, 2L 0777 0xDeadBeef Literais de Ponto Flutuante Representam valores decimais com um componente fracionário. Podem ser expressos na notação padrão ou científica. 3.1415 3.1E12.1e12 2E12 2.0d or 2.0D double 2.0f or 2.0F or 2.0 float Literais Booleanos São expressos por true e false, sendo que estes não podem ser convertidos em nenhuma representação numérica.

Questões LéxicasL Literais de Caracteres Os caracteres em Java são índices do conjunto de caracteres Unicode que são valores de 16 bits que podem ser convertidos em inteiros e manipulados com operadores inteiros. Um caracter inteiro é representado dentro de um par de apóstrofos ( ). A tabela que se segue mostra alguns caracteres que não podem ser inseridos diretamente e sim com escape. (Caracteres Especiais) - usando \ Literais String Qualquer coisa entre aspas duplas"

class Escopo{ public static void main(string args[ ]) () { int var = 10; int var = 20; //Erro!!! } } Questões LéxicasL Separadores Utilizados para delimitar escopos, declarações de comandos, fim de linha de comando, etc. ( ) { } [ ] ;,. Escopo Blocos de declaração são demarcados por { }. As variáveis são válidas a partir do ponto onde são declaradas até o final do bloco. Cada declaração pode conter conjunto de declarações de variáveis locais. Não é permitido declarar duas variáveis distintas com o mesmo nome. Causa erro em tempo de compilação.

Tipos em Java Em Java temos os tipos primitivos e compostos: Os tipos primitivos em Java são 8: boolean, char byte, short, int, long float, double Os tipos compostos em Java são: Objetos... Daqui a pouco a gente fala sobre eles. Ao contrário de outras linguagens, os tipos primitivos tem sempre: A mesma representação em bytes independente da plataforma onde o bytecode é executado. Lembrar que em arquiteturas de hardwares diferentes, temos formas distintas de representar e armazenar as informações em memória. Não são considerados objetos São alocados na pilha (Java não é OO pura por causa deles)

Tipos Primitivos Tipos Inteiros Todos tipos possuem sinal; Cuidado com valores atribuídos Pode ocorrer sobreposição, ou seja, alcançar o limite superior e recomeçar no inferior (overflow)

Tipos Primitivos Tipos Inteiros - Exercício Qual o resultado do código abaixo:

Tipos Ponto Flutuante Tipos Primitivos Seguem padrão IEEE754 Notação Científica 1.44E6 (= 1.44 x 10 6 = 1,440,000) ou 3.4254e-2 (= 3.4254 x 10-2 = 0.034254) Precisão: A precisão se refere ao número de casas decimais, não ao tamanho float: até 6 casas decimais (depois da,) double: até 12 casas decimais (depois da,)

Tipos Primitivos Tipos Ponto Flutuante Exercício Qual o resultado do código abaixo: Dica:O resultado não vai aparecer em notação científica

Tipos Primitivos Tipo Caractere Representação de Caracteres Individuais Tamanho de 16 bits Tabela Unicode Código numérico sem sinal (até 32.768 caracteres) Internacionalização Compatível com a tabela ASCII Valor literal de um caractere limitado por aspas simples: a Caracteres especiais e sem representação visual precedidos por barra invertida: \n, \ Uso de escapes \u0061 = a Uso como identificador (só escape \uxxxx) int b\u0061 = 10; // int ba = 10;

Tipos Primitivos Tipo Caractere Exercício Qual o resultado do código abaixo:

Tipos Primitivos Tipo Caractere Exercício Qual o resultado do código abaixo: // código ASCII

Tipos Primitivos Tipo Booleano Valores true false Condições devem ser tipos booleanos Não há equivalência com inteiros Em C, 0 é false e qualquer outro valor é true. Declaração:boolean bool = true;

Tipos Primitivos Resumão Tabela: Tipos Primitivos tipo conteúdo default tamanho min max (bits) boolean valor lógico false 8 -- -- char caracter Unicode \u0000 16 \u0000 \uffff byte inteiro com sinal 0 8-2 7 2 7-1 short inteiro com sinal 0 16-2 15 2 15-1 int inteiro com sinal 0 32-2 31 2 31-1 long inteiro com sinal 0 64-2 63 2 63-1 float ponto flutuante 0.0 32 IEEE 754 * double ponto flutuante 0.0 64 IEEE 754*

Tipos Primitivos Importante: Conversões entre Tipos Numéricos Pode misturar tipos - Se algum dos operandos for do tipo double, então o outro operando será convertido em um double - Caso contrário, se algum dos operandos for do tipo float, o outro operando será convertido em um float - Caso contrário, se algum dos operandos for do tipo long, o outro operando será convertido em um long Forma análoga para os tipos inteiros: int, short e byte Conversões onde pode haver perda de informação devem ser feitas explicitamente através do operador de coerção (cast) Ocorre, por exemplo, quando são feitas operações com tipos inteiros (byte, short, char) menores que int Resultados das operações são do tipo int» Racional: maior probabilidade de ocorrência de overflow nestes tipos, uma vez que o intervalo de valores é pequeno

Tipos Primitivos Conversões entre Tipos Numéricos em Java O Java converte automaticamente valores de um tipo numérico para outro tipo maior O Java não faz automaticamente o downcast.

Tipos Primitivos Conversões entre Tipos Numéricos Outras forma de visualizar

Tipos Primitivos Conversões entre Tipos Numéricos Outras forma de visualizar

Tipos Primitivos Conversões entre Tipos Numéricos Necessário para atribuir um tipo maior a um menor (<tipo>) <expressão> Converte a expressão para o tipo indicado entre parênteses int a = 1234; long b = a; } int c = (int) b; short c = (short) a; } conversão implícita conversão explícita (cast)

Promoções em expressões aritméticas ticas Conversões entre Tipos Numéricos Outro ex. Tipos de menor precisão são automaticamente convertidos para tipos de maior precisão (promoção aritmética) int + short*byte - double int + short*short - double int + short - double int + int - double int - double double

Tipos Primitivos Conversões entre Tipos Numéricos Outro ex.

Tipos Primitivos Conversões Numéricas - Exemplo Qual o resultado do código abaixo:

Tipos Primitivos Conversões Numéricas - Exemplo Qual o resultado do código abaixo:

Vários Tipos Outros Tipos de Conversão Qual o resultado do código abaixo Execute o código abaixo e analise a saída... Conversoes.java

Entrada e saída de dados básica Toda linguagem de programação deve prover um meio de interação com o usuário; O meio mais básico é o uso do console, com entrada de dados pelo teclado e saída em texto; Outros meios são: interface gráfica (janelas), pela Web, comandos de voz, etc.; Aprenderemos agora a forma de interação básica, pelo console: O shell do Linux; O prompt de comando do Windows

Saída de dados pelo console Entrada e saída de dados básica Java usa o conceito de stream: um duto capaz de transportar dados de um lugar a outro; Vamos ver com mais detalhes mais pra frente no curso A classe java.lang.system oferece um stream padrão de saída chamado out; É um objeto da classe java.io.printstream, aberto e mantido automaticamente pela JVM; Oferece vários métodos para impressão de dados: print(), println() e printf(). Podemos trocar o dispositivo padrão de saída: System.setOut(novaStream).

Saída de dados pelo console Exemplo Entrada e saída de dados básica

Entrada e saída de dados básica Saída de dados pelo console Saída formatada A partir do Java 5, a função printf() do C foi colocada na classe PrintWriter; Facilita a migração de código C para Java; É uma forma mais poderosa de formatar a saída; O trabalho de formatação é, na verdade, feito pela classe java.util.formatter. Como funciona o printf Argumentos: Uma string de formatação, com códigos especiais; Uma lista de argumentos a serem impressos. Exemplo: SaidaFormatada.java

Saída de dados pelo console Códigos de formato Possuem a seguinte sintaxe: %[i$][flags][tam][.prec]conve rsão»i: índice do argumento (opcional); Entrada e saída de dados básica»flags: modificam o formato de saída (opcional);»tam: tamanho da saída em caracteres (opcional);»prec: precisão das casas decimais (opcional);»conversão: código de conversão (indica se é um texto, inteiro, real, booleano, etc. obrigatório). Códigos de conversão

Saída de dados pelo console Mais exemplos Entrada e saída de dados básica SaidaFormatada.java

Entrada e saída de dados básica Entrada de dados pelo console A classe java.lang.system oferece um stream padrão de entrada chamado in; É um objeto da classe java.io.inputstream, aberto e mantido automaticamente pela JVM; Seus métodos de leitura são muito primitivos e não são simples de serem utilizados Precisamos de outras classes que auxiliem na leitura. Classe Console Classe Scanner Além da leitura por System.in, podemos ler também os argumentos passados na chamada do programa.

Entrada e saída de dados básica Entrada de dados pelo console Classe Console A classe Console foi apresentada no livro Core Java A idéia era construir um conjunto de métodos que pudessem abstrair o processo de obtenção de alguns dados via teclado. Possui os seguintes métodos:» public static String readstring()» public static char readchar()» public static double readdouble()» public static int readint() A classe Console é mais utilizada no nível didádito do que para desenvolvimento profissional.» Razões de implementação da classe que deveriam ser melhoradas:

Entrada de dados pelo console Classe Console I/O pelo teclado. Entrada e saída de dados básica Exemplo de utilização do método de leitura de Inteiros

Entrada e saída de dados básica Entrada de dados pelo console Classe Console I/O pelo teclado. Classe Original de Console Console.class Classe de teste dos métodos ConsoleTestEx.java» Qual o resultado da execução dessa classe?

Entrada e saída de dados básica Entrada de dados pelo console Classe Scanner Localizado em java.util.scanner Poderoso meio de ler dados de qualquer stream de entrada, existente a partir do Java 5; Funcionamento: Lê uma informação; Quebra a informação em tokens de acordo com um separador (que pode ser configurado); Converte para o tipo de dados adequado (quando possível).

Entrada e saída de dados básica Entrada de dados pelo console Classe Scanner A idéia é bastante simples... Basta aplicar esse comando:» Scanner sc = new Scanner(System.in); E depois chamar o método o nome do tipo de dados que se deseja capturar» int i = sc.nextint();» double d = sc.nextdouble();» String s = sc.next(); Também é necessário escrever no início do código o seguinte comando:» import java.util.scanner;

Entrada de dados pelo console Classe Scanner Exemplo... Não se preocupe com todos os detalhes agora.. Aceite por enquanto Copy e Paste resolve o problema por enquanto... Entrada e saída de dados básica EntradaScannerAluno.java

Botando na prática SEM IDE! Compilando e executando programas Java 1.Instalar o JDK 2.Javac <programa.java> para compilar 3.Java <programa> para executar

Exercícios cios Blz... Agora é hora de exercitar... Tente resolver os seguintes problemas... Em dupla Apresentar ao professor no final da aula Pontuação em Atividades em sala de aula...

Exercícios cios 1. Crie um arquivo para a classe abaixo e o compile. Explique o que ocorreu. Faça a correção devida e execute-o.

Exerc cios Correção Exercícios

Exercícios cios 2. Escreva um programa que calcule a conversão de um temperatura em Fahrenheit para Celsius e vice versa Dica: fah 32 / 9 * 5; O que acontece se definir o tipo fah ou cel como inteiro 3. Faça um algoritmo que receba o salário de um funcionário, calcule e imprima o valor do imposto de renda a ser pago, sabendo que o imposto equivale a 5% do salário. 4. Fazer um algoritmo que calcule o volume de uma esfera em função do raio R. V = 4 π R 3 3

Exercícios cios 5. Faça um algoritmo que receba o valor do salário de um funcionário e o valor do salário mínimo. Calcule e imprima quantos salários mínimos ganha esse funcionário. 6. Faça um algoritmo que receba o salário de um funcionário, calcule e imprima o novo salário sabendo-se que este sofreu um aumento de 25%. 7. Faça um programa que calcula o Índice de Massa Corporal (IMC). O índice de Massa Corporal (IMC) é uma fórmula que indica se um adulto está acima do peso, se está obeso ou abaixo do peso ideal considerado saudável. A fórmula para calcular o Índice de Massa Corporal é: IMC = peso / (altura)^2 Em Java, a classe que tem funções matemáticas tais como potência está na classe Math.

Exercícios cios 8. Faça um algoritmo que receba duas notas de um aluno e seus respectivos pesos, calcule e imprima a média ponderada dessas notas. 9. Determine qual é a idade que o usuário faz no ano atual. Para isso peça o ano de nascimento e o ano atual. 10. Solicite a quantidade de homens e de mulheres de uma turma qualquer da faculdade. Em seguida calcule e exiba o percentual (separadamente) de homens e mulheres desta turma.

Exercícios cios 11. Calcule o valor final de uma dívida. Para isto pergunte ao usuário o valor inicial do débito, a quantidade de meses e os juros mensais. Use o calculo de juros simples. O regime de juros será simples quando o percentual de juros incidir apenas sobre o valor principal. Transformando em fórmula temos: J = P. i. N J = juros P = principal (capital) i = taxa de juros n = número de períodos Ao somarmos os juros ao valor principal temos o montante. M = P. ( 1 + ( i. n ) ) Montante = Principal + Juros Exemplo: Calcule o montante resultante da aplicação de R$70.000,00 à taxa de 10,5% a.a. durante 145 dias. M = P. ( 1 + (i.n) ) M = 70000 [1 + (10,5/100).(145/360)] = R$72.960,42 Observe que expressamos a taxa i e o período n, na mesma unidade de tempo, ou seja, anos. Daí ter dividido 145 dias por 360, para obter o valor equivalente em anos, já que um ano comercial possui 360 dias.

Parte II

A Plataforma Java Características básicas Revisão.. Nós vimos até agora que Java é... Linguagem OO Baseia-se na JVM (Java Virtual Machine) / bytecodes Idéia fundamental: write once, run anywhere Linguagem Java é a parte central da plataforma.... E ainda questões Léxicas como Identificadores, palavras reservadas Tipos: Int, float, double.. etc Cast...Entrada de dados A classe Scanner Agora vamos ver mais características das linguagem como... Outras questões léxicas e estruturas..

Operadores Símbolos especiais que recebem um ou mais argumentos e produzem um resultado; Os operadores Java trabalham somente com tipos primitivos (e wrappers), exceto: =, == e!= que podem ser aplicados a objetos; + e += que podem ser aplicados a Strings. Temos 5 tipos de operadores: Atribuição Aritméticos Manipulação de bits Relacionais Booleanos Vamos falar um pouco sobre eles...

Operadores Operadores Aritméticos Os operadores aritméticos mais utilizados em Java são:

Operadores Operadores Aritméticos - Exemplo Qual o resultado do código abaixo:

Operadores Operadores Aritméticos - Exemplo Qual o resultado do código abaixo:

Operadores Operadores Relacionais e Condicionais Os operadores mais utilizados em Java são:

Operadores Operadores Relacionais e Condicionais Para a combinação AND, os operadores lógicos & ou && são utilizados. A diferença entre & e && encontra-se em quanto trabalho Java faz sobre a expressão combinada. Se & for utilizado, as expressões em qualquer lado do & são avaliadas, não importa o que seja. Se && for usado e o lado esquerdo do && for falso, a expressão no lado direito do && nunca será avaliada. Para a combinação OR, os operadores lógicos ou são utilizados. A diferença entre e encontra-se em quanto trabalho Java faz sobre a expressão combinada. Se for utilizado, as expressões em qualquer lado do são avaliadas, não importa o que seja. Se for usado e o lado esquerdo do for verdadeiro, a expressão no lado direito do nunca será avaliada.

Operadores Operadores Relacionais - Exemplo Qual o resultado do código abaixo:

Operadores Operadores Condicionais - Exemplo Qual o resultado do código abaixo:

Operadores Operadores de Atribuição Básico int x = 5; // inicialização x = x + 2; x = y = z = 7; // atribuição // encadeada Compostos

Operadores Operadores de Atribuição - Exemplo Qual o resultado do código abaixo:

Operadores Operadores Operadores Java Tabela: Resumo Operadores (parte 1/3) Prec. oper. operand. Assoc. Operação 1 ++, -- A d in/decremento unário +, - A d mais/menos unário ( sinal ) ~ I d complemento de 1! B d complemento lógico ( not ) (tipo) Q d cast 2 *, /, % A,A e multiplicação, divisão, módulo 3 +, - A,A e adição, subtração + S,S e concatenação de strings 4 << I,I e shift left >> I,I e shift right >>> I,I e shift right sem sinal 5 <,<= A,A e menor que, menor ou igual a >,>= A,A e maior que, maior ou igual a instanceof O,T e comparação de tipo

Operadores Operadores Operadores Java Tabela: Resumo Operadores (parte 2/3) Prec. oper. operand. Assoc. Operação 6 ==,!= P,P e igual/diferente (valores iguais/valores diferentes) ==,!= O,O e igual/diferente (referem-se/não se referem ao mesmo objeto) 7 & I,I e E (bits) & B,B e E (lógico) 8 ^ I,I e XOR (bits) ^ B,B e XOR (lógico) 9 I,I e OU (bits) B,B e OU (lógico) 10 && B,B e E (lógico) 11 B,B e OU (lógico)

Operadores Operadores Operadores Java Tabela: Resumo Operadores (parte 3/3) Prec. oper. operand. Assoc. Operação 12?: B,Q,Q d operador condicional (ternário) 13 = V,Q d atribuição *=, /=, V,Q d atribuição com operação %=, +=, -=, <<=, >>=, >>>=, &=, ^=, =

Avaliação de Expressões Precedência de Operadores Tabela de precedências c = a + b * c; Associatividade de Operadores Esquerda para direita, exceto atribuição c = a * b * c; c = a = b = 10; Associatividade de Operandos Esquerda para direita c = b++ + b;

Precedência de Operadores As expressões são avaliadas segundo uma ordem de precedência dos operadores, de acordo com a tabela abaixo:

Comentários // texto Todos os caracteres de // para o final da linha são ignorados. /* texto */ Questões LéxicasL Todos os caracteres de /* para */ são ignorados.

Questões LéxicasL Comentário de documentação /** texto * @param nome nome do cliente */ É uma forma especial de comentário usado pela ferramenta javadoc. Deve ser usado antes da classe pública, do método e das declarações de variáveis. O javadoc reconhece diversas variáveis especiais, as quais são denotadas por @ (sinal de arroba) dentro desses comentários. (usado para identificar parâmetros, por ex.)

Questões LéxicasL Tags javadoc Comentários gerais @deprecated - adiciona um comentário de que a classe, método ou variável deveria não ser usada. O texto deve sugeir uma substituição. @since - descreve a versão do produto quando o elemento foi adicionado à especificação da API. @see - essa marca adiciona um link à seção "Veja também" da documentação Comentários de classes e interfaces @author - autor do elemento @version - número da versão atual Comentários de métodos @param - descreve os parâmetros de um método acompanhado por uma descrição @return - descreve o valor retornado por um método @throws - indica as exceções que um dado método dispara com uma descrição associada Comentários de serialização @serial - para documentar a serialização de objetos

Tagsjavadoc Tabela de consulta rápida Questões LéxicasL

Questões LéxicasL Comentário de documentação Geração de documentação O utilitário javadoc analisa arquivos fonte procurando por classes, métodos e comentários /**...*/. Ele gera um arquivo HTML no mesmo formato que a documentação da API. javadoc FileData.java Espaços e * s iniciais são descartados Também é possível passar vários argumentos...

Questões LéxicasL Comentário de documentação Documentação gerada a partir do código anterior

JavaDoc No NetBeans Questões LéxicasL

Tipos Compostos Vamos abordar mais exemplo mais tarde no curso Em Java temos os tipos primitivos e compostos Tipos primitivos armazenam somente informações muito simples; E se quisermos armazenar informações sobre alunos:» Nome, matrícula, idade, disciplinas cursadas, etc. É necessário criar estruturas compostas por tipos primitivos e outras estruturas. Linguagens estruturadas usam o conceito de registro: Agregado de dados de tipos heterogêneos, que identifica seus elementos individuais por nome.

Tipos Compostos Linguagens orientadas a objeto usam o conceito de classes e objetos: Objetos são estruturas de dados compostas que contém dados e funções (métodos); Pode armazenar internamente dados de tipos primitivos ou outros objetos; Objetos são instâncias de classes. Os tipos compostos são os objetos Vetores, strings, matrizes, registros e arquivos são objetos Alocados no heap Variáveis primitivas possuem tipo, objetos possuem classe Exemplo class coordenadas { public int x; public int y; public int z; }» Vamos abordar mais exemplo mais tarde no curso

Fluxo de Controle Vamos conversar agora sobre as estruturas de controle que Java oferece... Pra quem esqueceu... o controle de fluxo pode ser categorizado em quatro tipos:

Fluxo de Controle Java oferece vários comandos para controlar o fluxo da execução de um programa: Repetições (loops): while, do-while, for Condicionais: if-else, switch-case Desvios: break, continue, label:, return Manipulação de exceções: try-catch-finally, throw

Estrutura Geral FOR Fluxo de Controle - Repetição inicialização expressão lógica verdadeiro diretiva falso incremento/ decremento

Fluxo de Controle - Repetição Estrutura Geral WHILE e DO-WHILE verdadeiro expressão lógica falso verdadeiro diretiva diretiva while expressão lógica falso do-while

Fluxo de Controle - Condicional Estrutura Geral IF e IF/ELSE expressão lógica falso verdadeiro expressão lógica falso verdadeiro diretiva 1 diretiva 1 diretiva 2

Fluxo de Controle - Condicional Estrutura Geral SWITCH expressão lógica caso1 caso2 default diretiva 1 diretiva 2 diretiva n

Fluxo de Controle Sintaxe para Loops/Repetições

Fluxo de Controle Sintaxe para Condicionais uso de break default opcional

Exerc cios Contando de 1 a 10: while Exercícios Substitua a declaração int i=1; por double i=1.2 O que acontece? Qual é o resultado esperado

Exerc cios Contando de 1 a 10: do- while Exercícios

Exerc cios Contando de 1 a 10: for Podem ser declaradas variáveis na parte de inicialização do ciclo for: Exercícios

Exerc cios Listar todos os caracteres ASCII Faça um programa que percorra de 1 até 127 imprimindo os caracteres ASCII Exercícios

Entrada e saída de dados básica Entrada de dados pelo console Classe Scanner Outros Exemplos... Lê uma linha e passa pro próximo comando EntradaScanner.java

Entrada de dados pelo console Classe Scanner O que o programa está fazendo? Entrada e saída de dados básica VerificacaoScanner.java

Entrada de dados pelo console Classe Scanner O que o programa está fazendo? Entrada e saída de dados básica O que acontece se o usuário digitar uma letra, por exemplo B??

Entrada de dados pelo console Classe Scanner O que o programa está fazendo? Entrada e saída de dados básica

Exerc cios Execução condicional: if- else Exercícios O que acontece se retirarmos os parênteses do If nesse caso. E se houvesse mais de um comando a ser executado caso a condição lógica seja verdadeira.

Exerc cios Execução condicional: if- else Exercícios

Execução condicional: if- else Operador Condicional (? : ) ( boolean_expr? expr1 : expr2) É uma alternativa útil ao if else: Se boolean_expr=true, o resultado é expr1, senão o resultado é expr2:

Exerc cios Escolhendo entre vários: v switch-case case // int i = Integer.parseInt ( args[0] ); Exercícios O que acontece se a variável i fosse um char Char i; i = a ; O que aconteceria se eu pegasse o argumento via parâmetro de classe e ele fosse A?

Exerc cios Escolhendo entre vários: v switch-case case Exercícios

Exerc cios Escolhendo entre vários: v switch-case case Exercícios

Os comandos break continue break e O comando break permite sair do loop mais cedo, em qualquer momento. O comando continue permite iniciar novamente a próxima iteração, sem necessariamente ter que executar todo o corpo do loop Eles opcionalmente podem ser seguidos de um rótulo que define um bloco. Desvio Rotulado

break Os comandos break continue break e Interrompe um ciclo ou uma instrução switch; Transfere o controle para a primeira instrução depois do corpo do ciclo ou instrução switch; Pode simplificar o código

continue Os comandos break continue Apenas pode ser usado em ciclos; break e Abandona a iteração em curso e salta para a próxima iteração do ciclo. Continue;

break rotulado Os comandos break continue break e Pode ser usado para saltar fora de ciclos encaixados, ou continuar um ciclo exterior ao ciclo corrente.

Exerc cios Os comandos break continue break e Desvio Simples Faça um programa que retorne todos os números divisíveis por 9 de entre 1 e 74, utilizando um FOR que vai de 1 até 100. Exercícios

cios Exerc Os comandos break e continue Desvio Rotulado Qual o resultado do código abaixo Exercícios

Botando na prática COM IDE! Agora usando o NetBeans Passo 1 Criar um projeto

Botando na prática COM IDE! Agora usando o NetBeans Passo 1 Criar um projeto

Botando na prática COM IDE! Agora usando o NetBeans Passo 1 Criar um projeto

Botando na prática COM IDE! Agora usando o NetBeans Passo 1 Criar um projeto

Botando na prática COM IDE! Agora usando o NetBeans Passo 2 Criar Classe

Botando na prática COM IDE! Agora usando o NetBeans Passo 2 Criar Classe

Botando na prática COM IDE! Agora usando o NetBeans Passo 2 Criar Classe

Botando na prática COM IDE! Agora usando o NetBeans Passo 3 Digitar o conteúdo da Classe

Botando na prática COM IDE! Agora usando o NetBeans Onde é salvo o arquivo?

Botando na prática COM IDE! Agora usando o NetBeans Compilando a Classe

Botando na prática COM IDE! Agora usando o NetBeans Compilando a Classe

Botando na prática COM IDE! Agora usando o NetBeans Executando a Classe

Exercícios cios Blz... Agora é hora de exercitar... Tente resolver os seguintes problemas... Em dupla Apresentar ao professor no final da aula Pontuação em Atividades em sala de aula... Faça o JAVADOC de todos os exercícios!!!

Exercício cio 0. JavaDoc Dado o código abaixo, cria um arquivo com o seu conteúdo e depois gere o JavaDoc Aliás, uma boa pergunta Uma vez que escrevemos a documentação no código, como podemos fazer para gerar o JavaDoc

Exercício cio 1. Faça um algoritmo que leia um número real positivo de cada vez e calcule a média dos valores maiores que cinco e calcule quantos números lidos são menores ou iguais a cinco. Estabeleça um critério de parada para finalizar o algoritmo de leitura de dados. Dica: Para ler do teclado use Scanner e veja na API o comando hasnext() 2. Segundo a OMS (organização Mundial de Saúde), o IMC normal está entre 18.5 e 25. Faça um programa que calcule o IMC para imprimir na tela se para os valores configurados a pessoa está "Abaixo do Peso", "Normal" ou "Acima do Peso". A fórmula para calcular o Índice de Massa Corporal é: IMC = peso / (altura)^2 Proíba a entrada de números negativos do usuário (evitar que a entrada seja um número negativo)

Exercício cio 3. Dado três valores distintos, dizer qual é o maior. 4. Dado três valores distintos, colocá-los em ordem crescente. 5. Elabore um algoritmo que leia o valor de dois números inteiros e a operação aritmética desejada; calcule, então, a resposta adequada. Utilize os símbolos da tabela a seguir para ler qual a operação aritmética escolhida. Código Classificação + Adição - Subtração * Multiplicação / Divisão 6. Apresente uma tabela de conversão de reais em dólares. Ela deve ser totalmente configurável, ou seja o usuário pode informar o valor inicial e final, o valor de incremento e o valor de 1 dólar. Apresente os números no formato monetário com duas casas decimais.

Exercício cio 7. Fazer um algoritmo que calcule e escreva o número de grãos de milho que se pode colocar num tabuleiro de xadrez, colocando 1 no primeiro quadro e nos quadros seguintes o dobro do quadro anterior. 8. Escreva um programa que apresenta dois números e usa os operadores / e % para exibir o resultado e o resto, depois de serem divididos. Use o código de escape de caractere \t para separar o resultado e o resto na sua saída. 9. Crie um programa que calcule quanto seria um investimento de R$14000 se seu valor aumentasse em 40% durante o primeiro ano, perdesse R$1500 no segundo e aumentasse 12% no terceiro.