Prévia do material em texto
Programação JAVA - parte 1 Leopoldo França Introdução ao Coding (Mobile) Tipos de dados • Dado pode ser definido como informação em estado primitivo cujo processamento pode gerar informação útil. • Devido a natureza do que vai ser armazenado em memória, existem tipos de dados diferentes. • Tipo de dado representa o conjunto de valores possíveis para um dado. Tipos de dados • Iremos utilizar apenas cinco tipos de dados durante a criação de algoritmos: • Inteiro – Para representar informações que não possuem parte fracionária. Ex: 1, 2, 40000, etc.; • Real – Para representar informações que podem possuir parte fracionária. Ex: 2.718281828...; • Lógico – Para representar um estado ou situação que pode ser apenas verdadeira (true) ou falsa (false); • Caractere – Utilizado para armazenar um único caractere na memória. Ex: ‘A’; • Cadeia de caracteres – Utilizado para armazenar um seqüência de caracteres na memória. Ex: “Computador”. Tipos de dados em Java • Java possui oito tipos primitivos de dados: • Lógico: boolean • Texto (1 caractere): char • Inteiros: • byte (8 bits): -128 a +127; • short(16 bits): -32768 a +32767; • int (32 bits): -231 a + 231 – 1; • long (64 bits): -263 a + 263 – 1; • Reais: double e float • String: representa uma cadeia de caracteres. Operadores em Java •Operadores aritméticos •Consistem de: • Adição (+); • Subtração (-); • Multiplicação (*); • Divisão real entre dois números (/); • Divisão inteira entre dois números inteiros (/); • Resto da divisão inteira entre dois números inteiros (%). Operadores •Operadores relacionais • Utilizados na comparação de literais ou números; • Retornam valores lógicos; • Consistem de: • Igual a (==); • Diferente de (!=); • Maior que (>); • Menor que (<); • Maior ou igual a (>=); • Menor ou igual a (<=). Operadores •Operadores lógicos •Utilizados para combinar resultados de expressões lógicas; •Consistem de: • E (AND); • OU (OR); • NÃO (NOT). Tabela verdade das operações lógicas • NÃO • E • OU x y x E y Verdadeiro Falso Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Falso Falso Falso x y x OU y Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Falso x NÃO x Verdadeiro Falso Falso Verdadeiro Operadores Lógicos em Java •Operadores Booleanos: ! – Não (not) && - E (and) || - Ou (or) Constantes e Variáveis •Variável • Um dos conceitos mais importantes na construção de algoritmos. • Representa um espaço de memória reservado para armazenar determinado tipo de dado; • Deve receber um nome para referenciar e modificar; • Deve possuir um tipo associado; • Quando um algoritmo termina sua execução, todas as variáveis são apagadas da memória; • Só podem armazenar um dado por vez. Identificadores em Java • Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: 1. Foobar 2. BIGInterface 3. $incomeAfterExpenses 4. 3_node5 5. !theCase Ok! Ok! Ok! Errado! Errado! Constantes e Variáveis • Declaração de variáveis • Toda variável utilizada em um algoritmo deve ser declarada. • A sintaxe utilizada em pseudocódigo é: • Exemplo linguagem algorítmica: • real: nota1, nota2, media; • Exemplo Java: • double nota1, nota2, media; <tipo>:<variavel1>, <variavel2>, ...; Atribuição •O que é atribuição? • “Atribui ou associa um valor a uma variável ou constante” •Ex: nome = “José”; media = (nota1 + nota2) / 2; Comando de entrada de dados em Java • Para fazer a leitura de dados do teclado em programas Java, utilizaremos o objeto Scanner: • O objeto Scanner pode ser usado com variáveis numéricas, lógicas e do tipo texto. Scanner s = new Scanner(System.in); int numero = s.nextInt(); Comando de saída de dados em Java • Para escrevermos na tela, usaremos a função println, disponível no Java. • Para concatenar uma variável com um texto, usamos o sinal +. • Ex: • System.out.println (“O saldo atual é” + saldo); • System.out.println (soma); System.out.println(var ou expressão ou mensagem +...); Testando o ambiente • Para testar o ambiente, digite o seguinte programa: public class MinhaClasse { public static void main(String[] args) { System.out.println("Testando o JAVA"); } } Exemplo • Implementar em Java um programa que solicite duas notas de um aluno e calcule a sua média. Programa média em Java import java.util.Scanner; public class exemplo { public static void main(String[] args) { double nota1 = 0, nota2 = 0, media = 0; // entrada de dados System.out.println("Digite a primeira e a segunda nota do aluno:"); Scanner s = new Scanner(System.in); nota1 = s.nextDouble(); nota2 = s.nextDouble(); // cálculo da média media = (nota1 + nota2)/2; System.out.println("A média é : " + media); } } Strings • Implementam o tipo cadeia de caracteres em Java; • Em Java, Strings são objetos que disponibilizam um conjunto de funções que podem ser usadas pelo usuário. • Pode-se concatenar uma String com uma outra variável ou expressão com o sinal +. Strings •Exemplos: • String s1 = “Exemplo de uma string”; • int x = 10; • String s2 = “Idade de ricardo = ” + x; • int y = 5; • String s3 = “Respostas: x = ” + x + “ e y = ” + y; • System.out.println(s3); Igualdade de Strings • Strings não devem ser comparadas com ==, e sim com o método equals; •Comparação diferencia letras maiúsculas e minúsculas; •Caso a comparação não deva levar em conta maiúsculas e minúsculas, deve-se usar o método equalsIgnoreCase; Igualdade de Strings • Ex: • String s1 = “Banana”; • String s2 = “banana”; • System.out.println("método equals = " + s1.equals(s2)); • System.out.println("método equalsIgnoreCase = " + s1.equalsIgnoreCase(s2)); Estruturas de decisão • Existem situações em que desejamos que nem todos os comandos incluídos em um programa sejam executados. • Nestas situações, ensinamos o computador a tomar decisões, optando ou não por executar determinados comandos. • Como os computadores não tomam decisões sozinhos, devemos instruí-lo a seguir um determinado caminho no programa. • Para isto é necessário o teste do resultado de uma expressão lógica. Comando SE •Estrutura de decisão básica em algoritmos •Sintaxe: se <expr_lógica> então <comandoV>; se <expr_lógica> então <comandoV> senão <comandoF>; ou Exemplo SE em Java int x = 5, y = 10; if (x >= y) { System.out.println(“X é maior ou igual a Y.”); } else { System.out.println(“X é menor que Y.”); } Comando SE •Exercício: •Faça um programa em Java que leia um número inteiro informado pelo usuário e diga se ele é par ou ímpar. •Sugestão: Use o % (resto da divisão inteira) para saber se o número é par ou ímpar. Solução: public static void main(String[] args) { // declaração de variáveis int numero=0; System.out.println("Forneça o número:"); Scanner s = new Scanner (System.in); numero=s.nextInt(); if (numero % 2 == 0) { System.out.println("O número é par. "); } else { System.out.println("O número é ímpar. "); } } Testes encadeados • Em determinadas situações é necessária a realização de testes dentro de outros testes. • Normalmente esta necessidade surge da combinação de decisões a serem tomadas. • Este tipo de estrutura é chamado de encadeamento. • Quando ocorre um encadeamento de testes, o programa possui um comando de decisão dentro de outro. • Este comando mais interno pode estar localizado junto aoENTÃO ou junto ao SENÃO. Testes encadeados • Exemplo: • Um quiosque de sorvetes vende casquinhas somente nos sabores Chocolate e Morango, não permitindo misturar os sabores num mesmo sorvete. Faça um programa que solicite ao usuário que sabor ele quer (digitando 1 para chocolate e 2 para morango), bem como a quantidade de bolas desejada desse sorvete. O programa deverá imprimir uma mensagem para o usuário de acordo com as seguintes regras: • Sorvete de chocolate com mais de três bolas: “desconto de 10%”; • Sorvete de chocolate com 3 ou menos bolas: “desconto de 5%”; • Sorvete de morango com qualquer quantidade de bolas: “sorvete sem desconto”. Testes encadeados •Para imprimir a mensagem correta, o programa precisa saber dois dados: o sabor do sorvete e a quantidade de bolas. • Imprimir a mensagem correta requer testar as variáveis de entrada. Solução: public static void main(String[] args) { // declaração de variáveis int sabor = 0, qtd_bolas = 0; System.out.println("Digite o sabor: (1 – chocolate e 2 – morango)"); Scanner s = new Scanner (System.in); sabor=s.nextInt(); System.out.println("Digite a quantidade:"); qtd_bolas=s.nextInt(); if (sabor == 1) { if (qtd_bolas > 3) System.out.println("Desconto 10%. "); else System.out.println("Desconto 5%. "); } else System.out.println("Sorvete sem desconto. "); } Comando CASO • O comando caso é útil em situações onde há necessidade de se testar uma mesma variável (ou expressão) que possa conter diversos valores • Cada valor exige a execução de comandos diferentes. • Uma expressão é comparada a diversos valores de acordo com a ordem definida. • Ao encontrar uma ocorrência do valor correto, o comando relativo é executado e o algoritmo segue para o fim do CASO. • Se nenhum dos valores for igual ao conteúdo da variável, poderá ser executado um outro comando através do complemento SENÃO. Comando CASO • Sintaxe: caso <var ou expr> seja <valor1> : <comando1>; <valor2> : <comando2>; <valor3> : <comando3>; . . . <valorN> : <comandoN>; senão <comandoF>; fimcaso; Comando CASO em Java A sintaxe do switch é: switch (expressão) { case constante1: expressões; break; case constante2: expressões; break; case constante3: expressões; break; default: expressões; } Comando CASO • Exemplo: • Dado o número de matrícula de um sócio de um clube, fornecido pelo usuário, faça um programa que imprima o mês de pagamento da anuidade, de acordo com as condições abaixo. • Final 0 – Pagamento em Janeiro; • Final 1 – Pagamento em Fevereiro; • Final 2 – Pagamento em Março; • Final 3 – Pagamento em Abril; • Outro final – Pagamento em Maio. Comando CASO •Solução: • Teremos que receber o número de matrícula do usuário e identificar o último dígito. Para isto podemos utilizar o resto da divisão do número de matrícula por 10. •Utilizar uma estrutura de decisão para imprimir corretamente o mês de pagamento da anuidade. • Podem ser utilizados o comando SE ou o comando CASO. Exemplo Caso em Java public static void main(String[] args) { // declaração de variáveis int matricula = 0, ultimo_digito =0; System.out.println(“Digite o número da matrícula:"); Scanner s = new Scanner (System.in); matricula=s.nextInt(); ultimo_digito = matricula % 10; switch (ultimo_digito) { case 0: System.out.println("Pagamento em Janeiro."); break; case 1: System.out.println("Pagamento em Fevereiro."); break; Exemplo Caso em Java case 2: System.out.println("Pagamento em Março."); break; case 3: System.out.println("Pagamento em Abril."); break; default: System.out.println("Pagamento em Maio."); break; } } Comando CASO • Uso do break em cada case do switch é opcional. Execução de um case, entretanto, só termina quando um break é encontrado; • Limitações do comando CASO • Só pode ser usado para comparação de valores diretos e que sejam inteiros. • Não é possível comparar com números fracionários. • É possível comparar com caracteres, que estarão entre aspas simples (ex.: ‘a’, ‘b’, etc.). • Permite apenas comparações de igualdade, não permitindo as demais comparações relacionais (maior que, menor que, etc.). • Compara apenas uma única variável ou expressão. DÚVIDAS ?