Linguagem JAVA 789 – Fundamentos de linguagem JAVA A linguagem Java Historial – JAVA foi concebida por equipa liderada por James Gosling, na Sun Microsystems em 1991. – A primeira versão demorou 18 meses a ser desenvolvida. No ínicio tinha o nome de OAK, e a sua primeira implementação foi em 1992. – O anúncio público do nascimento do JAVA foi na primavera de 1995. – Dadas as suas características, em Janeiro de 1996, a Netscape integrou a capacidade de executar código JAVA no seu browser. A integração do Java com os browsers da Internet conduz à popularização da linguagem, sendo uma das mais utilizadas . A linguagem Java Evolução • JAVA acaba por ser uma evolução das linguagens C e C++. A sintaxe é bastante semelhante às das referidas linguagens. • Tal como o C++, inclui o conceito de programação orientada por objectos. A portabilidade do JAVA JAVA foi desenhada por forma a ser compilada e interpretada, Uma vez compilado um programa de JAVA, este poderá correr em qualquer plataforma (hardware + SO), que tenha um interface JAVA A portabilidade do JAVA A máquina virtual de JAVA • A máquina virtual de JAVA (JVR) é responsável por interpretar o JAVA bytecode e traduzi-lo em operações que deverão ser executadas por o sistema operativo. • Diferentes sistemas operativos podem executar uma mesma operação de forma diferente. Mas isto é irrelevante ao programador, pois é responsabilidade da máquina virtual interpretar e traduzir estas acções. O JAVA Runtime Enviroment (JRE) Para correr programas em Java é necessário ter o JRE instalado no computador. • A máquina virtual de Java (JVM) forma parte do JRE. • Cada plataforma (hardware + SO) requer um diferente JRE. • A portabilidade do Java é produto da implementação do JRE numa grande variedade de plataformas. O JAVA Development Kit (JDK) Para criar programas em Java é necessário ter o Java SE Development Kit (JDK) instalado no computador. • A plataforma de desenvolvimento Java SE (Standard Edition) é também conhecida como J2SE (Java 2 Standard Edition). • O JDK inclui diversas ferrramentas úteis: • O compilador de JAVA chamado JAVAC • O intérprete de bytecode adequado ao tipo de computador em causa chamado java. • Um largo conjunto de classes já programadas com a respectiva documentação (as classes Java API) • O JDK é disponibilizado gratuitamente em http://java.sun.com para diversos tipos de plataformas. Pode descarregar a versão mais actual do JDK ( a versão 6) em: http://java.sun.com/javase/downloads/index.jsp Ambiente Integrado de Desenvolvimento (IDE) • • • As ferramentas incluídas no JDK são normalmente suficientes quando se utilizam sistemas operativos baseados em comandos (Unix, o Linux). Na escrita dos programas pode ser usado qualquer editor de ficheiros texto. Quando se utilizam sistemas operativos baseados em janelas, como o Windows ou o MacOS, é comum a utilização de ambiente integrados de desenvolvimento (IDE, do termo em Inglês Integrated Development Enviroment), que facilitam a utilização do JDK. Existem vários: – Eclipse – Netbeans – BlueJ – DrJava Estrutura de um programa Um programa em Java é um conjunto de uma ou mais classes • Requisitos que deve satisfazer um programa que pode ser executado: – Incluir uma classe com o mesmo nome do ficheiro (*.java) onde o programa é guardado – Esta classe pública deve incluir o subprograma main() o subprograma por onde se iniciará a execução do programa O primeiro programa em Java O primeiro programa em Java O primeiro programa em Java public class HelloWorld { public static void main(String[] args) { System.out.println("Olá mundo!"); } } Elementos de um programa Java Os programas incluem componentes: – – normalmente três Declarações: permitem reservar memória armazenamento das estruturas de dados envolvidas tipos de para o Instruções: indicam ao computador o que deve efectuar • As instruções são separadas por ponto e vírgula – Comentários: são úteis para os programadores, mas são ignorados pelo computador: • /* */ - mais de uma linha • /** */ - documentação • // - até ao final da linha Sintaxe Os programas incluem normalmente três tipos de componentes: – – Declarações: permitem reservar memória para o armazenamento das estruturas de dados envolvidas Instruções: indicam ao computador o que deve efectuar • As instruções são separadas por ponto e vírgula – Comentários: são úteis para os programadores, mas são ignorados pelo computador: • /* */ - mais de uma linha • /** */ - documentação • // - até ao final da linha Sintaxe As linguagens de programação têm regras sintácticas que indicam como criar declarações, intruções e comentários de forma correcta. A sintaxe do Java, tal como a de outras linguagens, inclui: •Palavras reservadas •Identificadores •Símbolos •Literais Sintaxe Para uma melhor clareza na escrita de um programa deve-se seguir as seguintes convenções: • Sempre que possivel utilizar letras minúsculas – Exe.: nome de um subprograma main () • Com as seguintes excepções: – Nom de uma classe começa por maúscula • Ex: Math, System, Poligono – Se o nome consta de várias palvras: usar uma maiúscula para a primeira letra da palavra que segue a outra • Exe: imprimirMensagem, lerNome – O nome de uma constante – todo em maiúscula ou separado por”_” – Exe: MAX, TAXA_DE_JUROS Tipos de dados Primitivos Formador: Henrique Fidalgo 19 Símbolos e Literais Símbolos: • Operadores – Exe: + , -. *, = – O operador = tem a função de atribuição, para comparação utiliza-se o operador ==. • Literais: dados explícitos que podem ser manipulados pelo programa Exemplos: – – – – Números inteiros: -17 e 255 Reais: 3.1415 Caracteres: ‘a’, ‘A’, ‘n’ Cadeias de caracteres: “Bom dia!”, “Boa tarde” Constantes Um valor de uma constante, como o seu nome indica, se matêm inalterado durante toda a execução do programa A sintaxe da declaração de constantes é a seguinte: final tipo_de_dado nome_da_variável = valor inicial; Exemplo: public class taxa_juro{ public static void main(String [] args){ double taxa_de_juro=0.2; System.out.println(“A taxa de juros mensal é”+taxa_de_juro); } } Formador: Henrique Fidalgo 22 Exercício1 • Elabore um programa em JAVA que mostre no ecrã a seguinte mensagem: “Olá Mundo JAVA!” Formador: Henrique Fidalgo 23 Exercício 2 • Elabore um programa que mostre no ecrã as seguintes mensagens: – Porto 22 graus. – Lisboa 25 graus – Faro 27 graus Nota: Utilize uma variável constante para substituir os números. Formador: Henrique Fidalgo 24 Expressões aritméticas As expressões aritméticas são calculadas segundo a prioridade dos diferentes operadores aritméticos; Conversões de Tipo O tipo de resultado de uma expressão aritmética depende do tipo dos seus operandos • Se todos forem do mesmo tipo – o resultado será do mesmo tipo • Caso contrário – o computador terá de fazer conversões de tipo: – Conversão automática: de tipo mais pequeno para tipos maiores Byte > short > int > long > float > double – Conversão explicita: indicada expressamente pelo programador Operadores Unários Operadores de incremento e decremento: aumentam ou diminuem, respectivamente, uma unidade ao valor do operando Os pacotes de Java • • • • • • Os pacotes (packages) em Java são bibliotecas de programas Um pacote agrupa várias classes que podem não estar relacionadas Os pacotes são guardados em ficheiros com extensão *.jar Podemos importar uma classe de um pacote usando a instrução import logo no ínicio do programa Podemos importar todas as classes de um pacote usando um asterisco em vez do nome da classe As classes pertencentes ao pacote java.lang tais como Math, System, String, etc., não precisam de ser importadas Leitura de valores Para efectuar a leitura de valores no java vamos utilizar a class Le.java que deverá ser copiada para o directório de trabalho, assim sempre que pretender ler um valor deverá ultilizar a seguinte sintaxe: variavel=Le.umDouble(); Output de variáveis Para efectuar a escrita de variáveis no java utilizamos a seguinte sintaxe: System.out.println (“O valor é:” +variavel); Exemplo: public class nota{ public static void main(String [] args){ double nota=15; System.out.println(“A nota é:” + nota); } } Exercício 3 Elabore um programa que permite calcular a hipotenusa de um triângulo através da introdução da medida dos catetos. Nota: hipotenusa=Math.sqrt(cateto1*cateto1)+(cateto2*cateto2) Exercício 4 Elabore um programa que permite calcular os metros cúbicos de betão necessários para determinada obra, através da introdução da altura, comprimento e largura de determinada secção da obra. Nota: betão=largura*altura*comprimento Todas as medidas devem ser inseridas em metros. Exercício 5 Desenvolva um programa que o ajude a calcular a nota de um aluno, sabendo que esta é definida da seguinte forma: 60% - média dos 2 testes da disciplina 20% - média dos 3 melhores trabalhos práticos 20% - trabalho final Exercício 6 Ao chegar a uma casa de hamburguers, o cliente dirige-se ao computador para encomendar a sua refeição. Surge-lhe o seguinte menu: MENU Hamburguer – 2 euros Cheeseburger – 2.5 euros Batatas fritas – 0.75 euros Sumo – 1 euros De seguida tem de responder a um conjunto de perguntas: Hamburguers? Cheeseburgers? Batatas Fritas? Sumo? Finalmente deverá aparecer o seguinte menu: Hamburguers X Cheeseburgers x Batatas fritas x Sumos A pagar: x x Expressões lógicas Operador Operação > Maior que < Menor que >= Maior ou igual que <= Menor ou igual que == Igual a != Diferente de A instrução if Sintaxe: if (condição) { intruções; } Exemplo Programa que permite determinar se um número é par: public class SeraPar { public static void main (String[] args) { int num; System.out.println(“Escreva um número:”); num=Le.umInt(); if (num %2==0) { System.out.println(“O número” +num+ ” é par”); } } } A instrução if - else Sintaxe: if (condição) { Intruções se a condição for verdadeira; } else { Intruções se a condição for falsa; } Exemplo Programa que permite determinar se um número é par ou ímpar: public class SeraPar { public static void main (String[] args) { int num; System.out.println(“Escreva um número:”); num=Le.umInt(); if (num %2==0) { System.out.println(“O número” +num+ ” é par”); } else { System.out.println(“O número” +num+ ” é ímpar”); } } } Observações: Não colocar ponto e vírgula a seguir a um “if” ou a um “else” Exercício 7 Elabore um programa que permita informar o utilizador que tipo de bilhete deve ser vendido, através da introdução da idade. Idade Bilhete Inferior a 6 anos Isento de pagamento Entre 6 e 12 anos Bilhete de criança Entre 13 e 65 anos Bilhete normal Mais de 65 anos Bilhete de 3ª idade Exercício 8 1. Elabore um software que permita ao introduzir a nota de uma disciplina informar se o aluno está aprovado ou reprovado na disciplina. 2. Considere uma escala de 0 a 20 em que de 9,5 a 20 o aluno deverá transitar. 43 Exercício 9 1. Elabore um software que ao introduzir as notas das disciplinas de Matemática, de Português e de Inglês de determinado aluno informe qual a sua média e se a sua média é positiva ou negativa. 2. Considere uma escala de 0 a 20 em que de 9,5 a 20 a média é positiva. 44 Exercício 10 1. Elabore um software que através da introdução de um salário calcule quanto o funcionário terá de pagar de imposto tendo em atenção a seguinte tabela: Salário Taxa <1000 5% >=1000 e < 5000 11% >= 5000 35% 45 Exercício 11 Um método de criação de números de cartões consiste em acrescentar um dígito ao número original de modo a que a soma dos dígitos do cartão seja par. Para isso acrescentase um “0” ou um “1” à direita do número original, conforme necessário. Admitindo que os números originais têm todos 4 dígitos, faça um programa que permita aplicar este método, mostrando o número final do cartão. 46 Exercício 12 • Escreva um programa capaz de identificar se uma pessoa é anã, gigante ou de estatura normal. As condições são as seguintes: – Altura<1.40m (Anã) – 1.40m=<Altura<=2.00m – Altura>2.00m (Gigante) (Estatura normal) 47 A instrução switch-case Sintaxe: switch (expressão){ case item_1: instrução_1; break; case item_2: instrução_2; break; default: Instrução de default; break; } 48 Exercício 13 • Elabore um programa que permita ler o seu peso na terra, escolher um planeta, e calcular o seu peso nesse planeta. A relação de planetas é: A fórmula de cálculo da gravidade é: PesoNoPlaneta = PesoNaTerra / 10 * GravidadeRelativa 49 Exercício 14 Elabore um programa que calcule através da introdução do salário, o imposto pago por mulheres e por homens, sabendo que as mulheres pagam 10% de imposto e que os homens pagam 15%. 50 Exercício 15 • Escreva um programa que indique o número de dias de determinado mês, através da introdução do mês. 51 Exercício 16 • Construa um programa que lê do teclado dois números e uma opção carácter que representa uma opção aritmética (+ - * /), e faça a operação aritmética pretendida e escreva o resultado no monitor. A – Soma S – Subtracção M – Multiplicação D – Divisão • Tenha em atenção que não pode fazer divisão por zero, pelo que o deve imprimir uma mensagem de erro. 52 Exercício 17 • A empresa XPTO necessita de um programa que calcule qual o desconto a aplicar a determinado cliente conforme a tabela abaixo e o montante final a pagar pelo cliente: (Nota: Utilize o “switch” e “if-else”.) N.º Unidade Compra Desconto A Óptimo Cliente >250€ >100€ outras 40% 25% 15% B Bom Cliente >250€ >100€ outras 30% 15% 10% C Cliente Razoável >250€ >100€ outras 20% 10% 5% D Cliente Normal >250€ >100€ outras 10% 5% 53 O ciclo while A instrução while (também chamada ciclo), executa uma instrução ou bloco de instruções enquanto determinada condição for verdadeira. A sua sintaxe é: while (condição) { instrução; } 54 Exemplo public class MediaNumeros { public static void main (String[] args) { float media; int num=0, soma=0, conta=0; while (num>=0) { System.out.println(“Introduza um número:”); num=Le.umInt(); if (num >=0) { soma +=num; //acumulador conta++; } } media=soma/conta; System.out.println(“A média dos números é” +media); } } 55 Exercicio 18 Implemente um programa que permita ler 10 números inteiros e que no final da leitura apresente a soma de todos eles e a sua média. Utilize para isso uma estrutura de repetição while. 56 Exercício 19: Elabore um programa que calcule o total a pagar por determinado cliente através da introdução do número do menu. O software deverá permitir a soma de vários menus e deverá terminar se for introduzido o número 0. N.º Menu Preço 1 Mini Hamburger 5,35 € 2 Mega Hamburger 6,15 € 3 Giga Hamburger 7,50 € 4 Tera Hamburger 8,00 € 5 Mega Salada 4,50 € 6 Giga Salada 5,00 € 0 SAIR 57 Exercício 20: Elabore um programa que permite efectuar operações de crédito ou débito numa conta bancária. O programa deverá perguntar qual o saldo inicial da conta e qual a operação que o utilizador pretende efectuar (débito ou crédito), assim como o montante a debitar, actualizando o saldo da conta sempre que se efectue uma operação. No final deverá devolver o saldo da conta. Opcão Menu Cálculo D Débito saldo - montante C Crédito saldo + montante S Sair - 58 Exercício 21: Elabore um programa que calcule o total a pagar por determinado cliente através da introdução da letra correspondente do produto. O software deverá permitir a soma de vários produtos e no final deverá permitir aplicar determinado desconto segundo uma tabela de descontos N.º Menu Preço 1 CAMISOLA 15,00€ 2 CALÇA 20,00 € 3 CAMISA 17,50 € 4 CASACO 50,00 € 5 SAPATOS 30,50 € 6 MEIA 5,00 € 0 SAIR Opção DESCONTO 1 10% 2 20% 3 30% 4 40% 5 50% 0 0% 59 Exercício 22: Desenvolva um programa que conte quantos números pares e quantos números ímpares existem numa sequência de números inteiros positivos fornecidos pelo utilizador. A quantidade de números a introduzir não é conhecida à partida, sabendo-se apenas que o conjunto termina com um número negativo. 60 Exercício 23 Um ciclone tropical consiste em uma tempestade muito violenta que, sob determinadas condições, adquire um movimento de rotação em torno de uma região de baixa pressão atmosférica. Um ciclone pode atingir um diâmetro de até 500 km. Furacões são os mais violentos desses ciclones e chegam a produzir ventos de até 320 km/h. Na tabela abaixo, são apresentados alguns dados relativos à classificação dos furacões segundo a escala Saffir-Simpson: classificação velocidade dos ventos (km/h) tempestade tropical 62 a 118 furacão de categoria 1 119 a 153 furacão de categoria 2 154 a 177 furacão de categoria 3 178 a 209 furacão de categoria 4 210 a 249 furacão de categoria 5 maior que 249 Escreva um programa que leia a velocidade do vento aferida durante uma tempestade e apresente ao utilizador a classificação do furacão caso a tempestade possa ser classificada como tal. 61 Exercício 24 Construa um programa que calcule o valor e a gravidade de contra-ordenações de velocidade através da leitura da velocidade a que o veículo foi detectado assim como da localização. São contra-ordenações leves: Excesso de velocidade até 30km/h fora das localidades; Excesso de velocidade até 20km/h dentro das localidades; Valor da coima: de 60€ a 300€; Sem sanção inibitória São contra-ordenações graves: Excesso de velocidade superior a 30km/h fora das localidades; Excesso de velocidade superior a 20km/h dentro das localidades; Valor da coima: de 120€ a 300€ Sanção inibitória: de 1 mês a 1 ano; São contra-ordenações muito graves: Excesso de velocidade superior a 60km/h fora das localidades; Excesso de velocidade superior a 40km/h dentro das localidades; Valor da coima: de 300€ a 1500€ Sanção inibitória: de 2 meses a 2 anos. 62