Tipos primitivos, Strings, e Console I/O

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Versão – Prof.: Mauro César Lopes
Estruturas de Repetição
Métodos, Parâmetros, Argumentos e Contratos
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
Prof. Thiago Pereira Rique
Tipos de dados, Variáveis, Expressões e Operadores
Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN © 2005.
Programação para Engenharia I
Características imperativas de Java zTokens zOperadores zExpressões.
Programação Básica em Java
LINGUAGEM C.
Disciplina: AAM Profa. Ana Watanabe vol.3
Tipos de dados, valores literais e variáveis
Paradigmas da Programação
Introdução à linguagem de programação JAVA5
Classes e objetos Arrays e Sobrecarga
Introdução a Programação JAVA
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Linguagem técnica de programação I Java – REVISÃO
JAVA: Conceitos Iniciais
Introdução a Computação e Cálculo Numérico
1 A Tecnologia Java. 2 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória.
PROGRAMAÇÃO I UNIDADE 2.
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Introdução a aplicativos Java
Expressões e Instrução de Atribuição
Operadores e Atribuições Capítulo 3
Linguagem de Programação JAVA
Programação em C++ Compiladores
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
By Ducheno Kelly Centro de Formação São Domingos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
3. Introdução à Linguagem C
Programação Orientada a Objetos - Java
Linguagem de Programação C#
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Tipos de Dados Operadores
Algumas notas sobre a linguagem de programação C
Programação Orientada a Objetos - Java
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Linguagem I Strings.
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Fundamentos de linguagens de programação
Linguagem C.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
Copyright 2000, Departamento de Informática, UFPE. Todos os direitos reservados sob a legislação em vigor. Orientação a Objetos e Java.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
PROGRAMAÇÃO II – PARTE 3 Profa. Maria Augusta Constante Puget.
Introdução Sintaxe Básica da Linguagem JAVA
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
Profa. Maria Augusta Constante Puget
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
VARIÁVEIS Desenvolvido pelo Mestrando Rodrigo Moreira Barreto – VHLab (Virtual Humans Simulation Laboratory – PUCRS) 1 Desenvolvido por: Rodrigo Moreira.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Tipos primitivos, Strings, e Console I/O Capítulo 2 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Objectivos Conhecer os tipos primitivos do Java (números, caracteres, etc.). Perceber a instrução de afectação e expressões. Saber ler dados introduzidos através do teclado (keyboard) e escrever resultados no ecrã (screen). Familiarização com os conceitos de classe, método e objecto. Conhecer as diferenças entre variáveis de tipos primitivos e tipos classe (referência). Saber usar os tipos classe String, Scanner e Math Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Conceitos básicos Variáveis e valores Identificadores Java Tipos Primitivos Expressões Literais Instrução de afectação Conversão de tipos implícita e explícita (type casting) Escrita no ecrã – output Tipos classe – String,Scanner e Math Leitura dos valores inseridos através do teclado – input Constantes com nome Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Variáveis e Valores Variáveis armazenam dados. Têm que ser declaradas antes de serem usadas. Quando se declara uma variável, tem que se dar um nome e o tipo de dados que a variável vai armazenar. Os dados armazenados pelas variáveis são denominados valores O valor contido pode ser alterado através da operação de afectação. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Identificadores Um identificador é um nome, duma variável, dum tipo, ou dum método. Identificadores só podem conter letras dígitos (0 a 9) carácter underscore ( _ ) e o símbolo do dólar ($) em ocasiões especiais. mas o primeiro não pode ser dígito. O Java é case sensitive, nome, Nome, e NOME são identificadores diferentes. Palavras chave (keywords) são palavras reservadas, que não podem ser usadas como identificadores. Identificadores podem ser arbitrariamente grandes. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Tipos em Java Tipo primitivo é usado em valores simples que não permitem decomposição, tais como um número ou um carácter. 1, 1.0, e 'a' são valores de tipo primitivo, int, double, e char respectivamente. Tipo classe (ou referência) é usado em objectos que contêm dados e sobre os quais se pode executar acções (métodos). "Pensa antes de falares." - é um valor do tipo classe String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Tipos primitivos Quatro tipos inteiro (byte, short, int, e long) int é o mais comum Dois tipos em vírgula flutuante (float e double) double é o mais comum O tipo carácter (char) O tipo boolean (boolean) Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Tipos primitivos Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Formato de floating-points IEEE-754 [sinal] 1.[fracção] * 10[expoente] Sinal Expoente Fracção float (Precisão simples) 1 [31] 8 [30-23] 23 [22-00] double (Precisão dupla) 1 [63] 11 [62-52] 52 [51-00] Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Literais ou constantes Expressões como 2, 3.7, ou 'y' são denominadas literais ou constantes. Literais de caracteres encontram-se delimitados pelos carácter plica ('). Literais em vírgula flutuante (floating-point) podem ser escritos: com dígitos depois do ponto decimal ou usando notação cientifica (E notation). Exemplo: 865000000.0 pode ser escrito 8.65e8 0.000483 pode ser escrito 4.83e-4 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Exemplo de valores primitivos Inteiros 0 -1 +365 12000 // literais de tipo int Número em virgula flutuante (floating-point) 0.99 -22.8 3.14159 5.0 // literais de tipo double 23.45f 2.45e23f // literais de tipo float Carácter 'a' 'A' '#' ' ‘ // literais de tipo char Boolean true false // literais de tipo boolean Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Unicode Muitas linguagens de programação usam o código de caracteres ASCII. Java usa o código de caracteres Unicode que inclui o conjunto de caracteres ASCII. O Unicode inclui os códigos para diferentes alfabetos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Declaração e iniciação de variáveis Sintaxe: Declaração_de_variável ::= <tipo> <nome_de_variável> [ = <expressão> ] {, <variável> [ = <expressão> ] }*; Exemplos: int contador = 0; char letra = 'A', sinal = ','; Uma variável declarada, mas que não foi atribuído valor diz-se que não está iniciada (uninitialized). Variáveis do tipo classe devem ser iniciadas com o valor null. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Expressões Com variáveis e operadores, constroem-se expressões às quais fica associado um valor. Uma expressão pode ser uma variável um literal, ou uma combinação de variáveis e literais usando operadores. Numa expressão, o tipo dos operandos determina como deve ser interpretada e executada a operação. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Expressões simples Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Instrução de afectação Uma instrução de afectação é usada para atribuir um valor a uma variável. temperatura = 36; O “sinal de igual” é denominado o operador afectação. Diz-se: “A variável de nome temperatura é afectada com o valor 36”, ou de uma forma abreviada: “temperatura é afectada com 36.” Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Instrução de afectação Sintaxe Instrução_de_afectação ::= <nome_de_variável> = <expressão>; A expressão que se encontra do lado direito do operador afectação é avaliada primeiro. O resultado da expressão é usado para ficar como valor da variável que se encontra do lado esquerdo do operador afectação . score = numeroDeCartas + desvantagem; contador = contador - 2; letra = 'a'; euros = 6; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Output escreve no ecrã a string literal “Olá” System.out.println("Olá"); escreve no ecrã a string literal “Olá” System.out.println("O contador é " + contador); escreve no ecrã a string literal "O contador é " seguido do valor corrente da variável contador. System.out.println(euros + " euros"); escreve no ecrã o valor corrente da variável euros seguido da string literal " euros". Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Input Leitura de dados inseridos através do teclado requer que: import java.util.*; seja colocado no início do ficheiro. Os dados são lidos usando: Scanner keyboard = new Scanner(System.in); seguido, por exemplo, de: euros = keyboard.nextInt(); que lê um valor do tipo int e afecta a variável euros. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Conversões O Java diz-se uma linguagem fortemente tipificada (strongly typed). Não se pode, por exemplo, afectar uma variável declarada como inteiro com um valor numérico em vírgula flutuante. Embora algumas conversões entre números sejam possíveis, como por exemplo : double variavel = 7; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Conversão implícita Valores de um tipo podem ser convertidos quando necessário em valores doutro tipo na seguinte direcção: byte --> short --> int --> long --> float --> double ou char --> int Exemplo: double media; int notaTeste, notaTrab; … media = notaTeste * 0.5 + notaTrab * 0.5; int codigo; char ponto= ‘A’; codigo = ponto; // codigo contem o código // Unicode do caracter ponto (65) Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Conversão explícita Uma conversão explícita (type casting) converte um valor de um tipo para outro. Exemplo: double distancia; ... int ponto = (int)distancia; int codigo; char caracter = (char)codigo; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operadores Operadores aritméticos (binários: +, -, *, / e % e unários: +, -) Associatividade e regras de precedência Operadores incremento e decremento. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operações Aritméticas Nas expressões aritméticas as operações são binárias, isto é, têm dois operandos e um operador (+, -,*, /). Quando os dois operandos são do mesmo tipo, o resultado é desse tipo. Quando um dos operandos é um tipo em virgula flutuante e o outro um inteiro, o resultado é do tipo virgula flutuante. Expressões com mais do que um operador são executadas numa sucessão de passos, em que cada passo envolve uma operação com dois operando. O resultado de um passo produz o operando para o passo seguinte. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Imprecisão dos números em virgula flutuante Os números em virgula flutuante frequentemente são aproximados pois são armazenados com um número finito de bits. Por isso 1.0/3.0 é um pouco menor que 1/3. 1.0/3.0 + 1.0/3.0 + 1.0/3.0 é menor do que 1. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operador Divisão O operador divisão (/) comporta-se como se espera se um dos operandos é um número em virgula flutuante. Quando os dois operandos são números inteiros, o resultado é a divisão inteira, isto é, o valor é truncado e não arredondado. Assim, 99/100 tem o valor 0. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operador resto O operador resto (%) é usado com operandos inteiros e obtém-se o resto da divisão inteira. 14 a dividir por 4 é 3 com resto 2. Assim, 14 % 4 é igual a 2. O operador resto tem muitos usos, tal como: Determinar se um número inteiro é par ou impar Determinar se um número inteiro é divisível por outro número inteiro. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Parênteses e Precedência Os parênteses comunicam a ordem pela qual as operações aritméticas devem ser executadas Sem parênteses, as expressões são avaliadas de acordo com as regras de precedência. Exemplos: (custo + taxa) * desconto custo + (taxa * desconto) Mesmo quando os parênteses não são necessários, podem ser usados para tornar a expressão mais clara. saldo + (taxa * saldo) Os espaços podem tornar o código mais legível saldo + taxa*saldo mas os espaços não ditam a precedência. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Precedência mais baixa Regras de Precedência Precedência mais alta 1º: Operadores unários: +, -, ++, --, e ! 2º: Operadores aritméticos binários: *, /, e % 3º: Operadores aritméticos binários: + e – Precedência mais baixa Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Regras de Precedência Os operadores aritméticos binários *, /, e %, têm menor precedência que os unários +, -, ++, --, e !, mas têm maior precedência que os operadores aritméticos binários + e -. Quando os operadores binários têm igual precedência, a avaliação é da esquerda para a direita. Quando um operador unário tem igual precedência, o operador à direita actua antes do operador da esquerda. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso: enunciado O utilizador entra com a importância entre 1 e 9 cêntimos. O programa determina a mínima combinação de moedas da importância. Por exemplo, 7 cêntimos pode ser uma moeda de 5 cêntimos e uma moeda de 2 cêntimos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso– diálogo Pergunta Introduza a importância em cêntimos (1 a 9) Resposta do utilizador 9 A máquina determina e escreve a combinação de moedas: 9 cêntimos: Para obter os 9 cêntimos é necessário no mínimo: 1 de 5 cêntimos 2 de 2 cêntimos 0 de 1 cêntimo Variáveis necessárias int centimos, centimos5, centimos2, centimos1; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso - algoritmo Algoritmo - primeira versão Escrever a pergunta. Ler a importância para centimos. Determinar quantos 5 cêntimos existem na importância para centimos5. Subtrair o valor em 5 cêntimos a centimos. Repetir os últimos dois passos para os 2 cêntimos (centimos2) e para os 1 cêntimo (centimos1) Escrever a importância lida (centimos) e o número de moedas de cada moeda (centimos5, centimos2, centimos1) . Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso– algoritmo final O algoritmo não trabalha correctamente, porque a importância original foi alterada nos passos intermédios - a importância original centimos perdeu-se. Modificar as variáveis iniciais para int centimos, centimosIniciais, centimos5, centimos2; Actualizar o algoritmo: Escrever pergunta e ler os cêntimos Guardar a importância original em centimosIniciais Calcular quantos 5 cêntimos existem em centimos. Subtrair o valor em 5 cêntimos aos centimos. Repetir os últimos dois passos para os 2 cêntimos Em centimos estão o número de moedas de 1 cêntimo. Escrever os cêntimos iniciais e a quantidade de cada moeda Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso - implementação Escrever em Java o código que implementa o algoritmo escrito em pseudo-code. Como determinar o número de moedas na importância? Por exemplo, de 5 cêntimos existe 1 em 6 e 9 cêntimos. Isto porque: 6 / 5 = 1 e 9 / 5 = 1. Como determinar o resto dos cêntimos? Para obter o resto da importância usa-se o operador resto 6 % 5 = 1 e 9 % 5 = 4 Para as restantes moedas é similar. As moedas de 1 cêntimo são simplesmente o resto da divisão (%) por 2. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso - implementação import java.util.*; public class Moedas { public static void main(String[] args) { // Declarar as variáveis int centimos, centimosIniciais, centimos5, centimos2; // Escrever pergunta System.out.print("Introduza a importância em cêntimos (1 a 9)?"); Scanner keyboard = new Scanner(System.in); centimos = keyboard.nextInt(); // Ler os cêntimos centimosIniciais = centimos; // Guardar a importância original centimos5 = centimos / 5; // Obter o número de moedas de 5 cêntimos centimos = centimos % 5; centimos2 = centimos / 2; // Obter o número de moedas de 2 cêntimos centimos = centimos % 2; // Escrever os cêntimos iniciais e a quantidade de cada moeda System.out.println("Para obter os " + centimosIniciais + " cêntimos é necessário no mínimo:"); System.out.println(" "+ centimos5 + " moeda(s) de 5 centimos"); System.out.println(" "+ centimos2 + " moeda(s) de 2 centimos"); System.out.println(" "+ centimos + " moeda(s) de 1 centimos"); } Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Estudar um caso - teste O programa deve ser testado com diferentes importâncias. Testar com valores que dêem zero para cada uma das moedas. Testar com importâncias limites tais como extremos 0 e 9 Das moedas, tais como 4, 5 e 6. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operadores Incremento e Decremento Usados para aumentar, ou diminuir, o valor de uma variável de 1 Fácil de usar, importante reconhecer O operador incremento contador++ ou ++contador O operador decremento contador-- ou –-contador Operações equivalentes: contador++; ++contador; contador--; --contador; contador = contador + 1; contador = contador - 1; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Operadores Incremento e Decremento em Expressões Depois de executar int m = 4; int result = 3 * ( ++m ) result tem o valor 15 e m tem o valor 5 int result = 3 * ( m++ ) result tem o valor 12 e m tem o valor 5 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Classes Uma classe é um tipo usado para produzir objectos. Um objecto é uma entidade que armazena dados e pode executar as acções definidas nos métodos. Objectos duma mesma classe Têm os mesmos métodos Têm o mesmo tipo de dados mas contêm dados com diferentes valores. Tipos primitivos têm valores, mas não têm métodos. Um objecto do tipo String armazena uma sequência de caracteres. O método length() retorna o número de caracteres contidos no objecto do tipo String. int quantosCaracteres = nome.length(); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Classe String O valor do tipo String é uma sequência de caracteres que se comporta como um único item. Tem-se usado o tipo String em: Literais: "Introduza um valor de 1 a 99." Declarações: String saudar; ou String saudar = "Hello!"; String saudar = new String("Hello!"); Instruções de afectação: saudar = "Hello!"; saudar = new String("Hello!"); Escrita: System.out.println( saudar ); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Classe String Uma string pode ter qualquer número de caracteres, inclusive zero. Uma string com zero caracteres é denominada string vazia (empty). A string vazia pode ser criada: String s3 = ""; Duas strings são concatenadas usando o operador +: String saudar = "Hello"; String frase; frase = saudar + " alunos"; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Concatenação de Strings O operador concatenação (+) é útil sempre que a string não cabe numa linha: System.out.println("Quando a frase " + " não cabe numa linha, tem que se usar o " + " operador concatenação "); Podem ser concatenadas qualquer número de strings usando o operador +. Concatenação de strings com inteiros String resultado; resultado = "A temperatura é " + 72; System.out.println ( resultado ); é escrito: “A temperatura é 72” Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da String Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Posições na String A posição é referida como índice. O 'd' na string “Java é divertido.” está no índice 7. A posição começa em 0, não em 1. O 'J' na string “Java é divertido. ” está no índice 0. O método charAt() retorna o carácter que está na posição passada como parâmetro. Os 17 caracteres da string “Java é divertido.” têm índices de 0 a 16. O índice de cada carácter é: Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Não se modifica objectos String Nenhum método permite que se modifique o valor de um objecto do tipo String. Mas é possível modificar o valor da variável do tipo String. valor da pausa String pausa = " Hmm "; pausa Hmm pausa = pausa.trim() pausa Hmm pausa = pausa + "mmm! "; pausa Hmmmmm pausa = "Ahhh"; pausa Ahhh Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Caracteres de Escape Como é que se escreve Linguagem "Java".? O compilador necessita de saber que a aspa (") não é a marca de fim de string, mas sim para ser escrita. System.out.println("Linguagem \"Java\"."); Outros exemplos: System.out.println("abc\\def"); abc\def System.out.println("new\nline"); new line char singleQuote = '\''; System.out.println(singleQuote); ' Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Caracteres de Escape Cada sequência de escape é um único carácter embora seja escrito com dois símbolos. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Strings vazias e longas Uma string pode ter qualquer número de caracteres, inclusive zero, mas não pode ser quebrada por uma mudança de linha. Uma string com zero caracteres é denominada string vazia (empty). A string vazia pode ser criada: String s3 = ""; O operador concatenação (+) é útil sempre que a string não cabe numa linha. System.out.println("Quando a frase " + "não cabe numa linha, use o" + " operador concatenação"); Em alternativa, usar o método print() System.out.print("Quando a frase "); System.out.print("não cabe numa linha, use o "); System.out.println("método \"print\" "); terminando com o println(). Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Classe Scanner Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Classe Scanner Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Método nextLine() ATENÇÂO O método nextLine() lê o que resta da linha corrente, mesmo que ela esteja vazia. Exemplo int n; String s1, s2; n = keyboard.nextInt(); s1 = keyboard.nextLine(); s2 = keyboard.nextLine(); 5440 ou dois n é afectado com 5440 e s1 é afectado com a string vazia. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

A classe Math A classe predefinida Math providencia vários métodos matemáticos standard. Não é necessário criar objectos para invocar os métodos da classe Math. Estes métodos são invocados usando o nome da classe (Math) seguida do operador ponto e do nome do método. valor = Math.nome_método(parâmetros); Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da classe Math Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Métodos da classe Math O método round retorna o número mais próximo do número. Se o argumento é do tipo double, retorna um número do tipo long. O método floor (ou o ceil) retorna o número mais próximo que é menor (ou maior) ou igual ao argumento. Para armazenar o valor retornado pelos métodos anteriores numa variável do tipo inteiro, é necessário usar uma conversão explícita (cast). double valor = 3.56; int maisProximo = (int)Math.round(valor); //4 int limiteInferior = (int)Math.floor(valor); //3 int limiteSuperior = (int)Math.ceil(valor); //4 Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Constantes da classe Math A classe Math tem duas constantes predefinidas, o E e o PI. Exemplo area = Math.PI * raio * raio; Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Documentação e Estilo Muitos programas são modificados algumas vezes para responder a novos requisitos. Programas que são fáceis de ler e de compreender são fáceis de modificar. Mesmo que um programa seja usado só uma vez, é necessário lê-lo de forma a conseguir fazer o debug. Os melhores programas são auto-documentados. Claros no estilo Nomes bem escolhidos Programas bem comentados explicam o programa. Os comentários são úteis para o programador, mas são ignorados pelo compilador. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Construção dos nomes O nome de uma variável deve sugerir o seu uso. Convenções para os nomes. Usar só letras e dígitos. Usar letras maiúsculas para separar palavras (e.g. corDeFundo). Começar variáveis com letras minúsculas. Começar classes com letras maiúsculas. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Comentários Um comentário pode começar com //. Tudo depois destes símbolos e até ao fim da linha é tratado como comentário e ignorado pelo compilador. double raio; //em centímetros Um comentário pode começar com /* e terminar */ Tudo entre estes símbolos e até ao fim da linha é tratado como comentário e ignorado pelo compilador. /* O método perimetroTriangulo é usado para calcular o perímetro de um triangulo dados os lados */ Um comentário javadoc, começa com /** e termina com */. Pode ser extraído automaticamente por software Java. /** Método que calcula o perímetro de um triangulo dados os lados */ Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Quando usar Comentários? No início do ficheiro com uma explicação O que o programa faz O nome do autor Contactos do autor Data da última modificação. Ao longo do programa providenciar comentários de forma a possibilitar a sua compreensão. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Indentation A indentation permite clarificar o alinhamento das instruções. É boa escolha 4 espaços por cada nível de indentação. indentation deve ser consistente. indentation deve ser utilizada nas linhas seguintes das instruções aninhadas. indentation não modifica o comportamento do programa. indentation impróprias podem provocar erros no comportamento do programa. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Constantes com nome Para clarificar, devem ser dados nomes às constantes (e variáveis). area = PI * radius * radius; é mais claro do que area = 3.14159 * radius * radius; Colocar as constantes perto do início do programa. Uma vez afectado o valor da constante, pode ser usada (e reflectida) do princípio ao fim do programa. double MAX = 6.65; Se o literal em uso (tal como 6.65), necessitar de ser modificado, corre-se o risco de outro literal com o mesmo valor ser alterado sem que fosse essa a intenção. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Declarar Constantes Sintaxe Exemplos [public] [static] final <tipo> <variável> = <constante>; Exemplos public static final double PI = 3.14159; public static final String MOTTO = "O cliente está sempre certo."; Por convenção são utilizadas unicamente letras maiúsculas para os nomes das constantes. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education

Sumário Familiarizamo-nos com os tipos primitivos em Java (números, caracteres e booleanos). Aprendemos expressões e a instrução de afectação. Aprendemos strings. Familiarizamo-nos com classes, métodos, e objectos. Aprendemos a usar o teclado como input e o ecrã como output. Adaptação dos acetatos originais do livro: Java- An Introduction to Problem Solving & Programming, 4ª Edição Autor: Walter Savitch, ISBN 013149020 © 2005 Pearson Education