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 ?