Upload
wesley-r-bezerra
View
313
Download
0
Embed Size (px)
DESCRIPTION
Material do curso de Java Básico da WBezerra Uma introdução ao Java e suas estruturas de controle de fluxo, tipos e etc.
Citation preview
Java BásicoIntrodução
Prof. Wesley R. Bezerra
Roteiro
• O que é Java?
• Tipos.
• Declaração de variáveis.
• Fluxo condicional.
• Estrutura de repetição
Objetivo
• Ter uma revisão geral dos fundamentos da programação em Java como estruturas de controles e tipos.
O que é Java?
• Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 por uma equipe de programadores chefiada por James Gosling, na empresa Sun Microsystems.
• Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um "bytecode" que é executado por uma máquina virtual. (Wikipedia 2008)
Tipos
• Em java os tipos podem ser primitivos ou classes, sendo que para cada tipo primitivo existe uma classe que o encapsula, de forma a permitir a criação de objetos do tipo primitivo.
Tipos
• Tipos básicos: int – inteiro; float – ponto flutuante; double – ponto flutuante maior; short – inteiro pequeno; byte – representa um byte; char – representa um caracter;
Inteiros
• São os tipos de dados que representam números do conjunto dos números naturais.
• Exemplo: Pedro possui 5 laranjas; João tem 3 pêssegos;
• Exemplo errado: Franciele tem 1 e ½ melancia;
Representação
• Em java o tipo inteiro é int e seu wrapper é o Integer por default;
• Existe outros dois tipos para representação de inteiros em java, short para inteiros curtos, seu wrapper é Short; e long para inteiros maiores, sendo seu wrapper a classe Long;
Convertendo para
inteiro
• A função Integer.parseInt(String str) converte de String para inteiro.
• A conversão entre números pode causar perda de precisão.
• O mesmo se aplica para os outros tipos de interios:
• long -> Long.parseLong();
Ponto flutuante
• São os números que representam os números do conjunto dos números reais.
• Exemplos: João tem o salario de 3,34 reais por hora; O preço do kilo do pão é 4,12 reais; Tomei 1 e ½ refrigerantes;
• Exemplos errados; X = i +1 (número irracional) Temos 1 gato (obs: apesar dos números naturais estarem incluidos nos números reais, para java é necessário explicitar que um número é real, sendo assim o certo seria falarmos 1.0 gato)
Representação
• O tipo default para java para representarmos é o tipo float e seu wrapper é Float.
• Para tipo maiores de pontos flutuantes devemos utilizar o tipo double, com o seu wrapper Double.
Convertendo para
ponto flutuante
• Para convertermos de string para ponto flutuante devemos utilizar a função Float.parseFloat(String str).
• O mesmo se aplica para o tipo double, a função Double.parseDouble(String str) é que deve ser utilizada.
Booleano
• São variáveis que podem guardar valores de dois tipos: Falso e Verdadeiro;
• Exemplo: É verdadeiro que as mulheres tem filhos; É falso que as mulheres tenham paciência;
• Exemplo errado: A esposa teve 3 filhos;
Representação
• O tipo java para representação de valores booleanos em java é o boolean e seu wrapper é Boolean.
Convertendo para
booleano
• Para convertermos de string para booleano devemos utilizar o função Boolean.parseBoolean(String string)
String
• String representa uma cadeia de caracteres, esta pode ser um nome, uma frase ou ainda um texto completo.
• Exemplo: “João”; “Pedro é pai de João”;
• Exemplo errado: 5.2
Representação
• O tipo string é representado em java pelo tipo String (em maiúsculo). Em java as strings deve ser representadas circundadas por aspas duplas (“exemplo”).
Tipos – cont.
• Tipo Classe e Wrappers: String – representa uma cadeia de caracteres; Float – wrapper de float; Integer – wrapper de int; Double – wrapper de double; Etc.
Declaração de variáveis
• Sintaxe: <tipo> <variavel>;
• Exemplo: int idade;
Operações
matemáticas
• São operações envolvendo números, são elas: Adição : + Subtração: - Multiplicação: * Divisão: / Resto da divisão: %
Operações relacionais
• As operações relacionais envolvem as relações entre dois termos (variáveis, constantes ou funções). São elas:
Maior que : > Menor que: < Maior igual que: >= Menor igual que: <= Igual: == Diferente: !=
Exercício
• Implemente uma classe que represente uma calculadora, esta classe deve implementar os métodos:
Adicionar Subtrair Multiplicar Dividir
• Para os tipos numéricos: int long float double
Exercício
• Implemente um algoritmo que calcule o fatorial de um número. Observação: este numero é uma constante, não precisando então ser lido através do teclado.
Exercício
• Faça um algoritmo que faça conversão de graus. Observação:C= 5*( (F-32)/9 )
• 1.construa um algoritmo que calcule a média aritmética entre quatro notas bimestrais quaisquer fornecidas por um aluno (usuário).
dados de entrada: n1,n2,n3,n4 dados de saída: media
• Construa um algoritmo que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, em que são fornecidos a altura e o raio desse cilindro.
• Sabendo que: a lata de inta custa 50 reais cada lata contém 5 litros cada litro de tinta pinta 3 metros quadrados
• dados entrada: altura e raio da lata
• dados saida: custo e quantidade de latas
• Construa um algoritmo para calcular as raízes de uma equação do 2.0 grau (Ax2 + Bx + C), sendo que os valores A, B e C sõ fornecidos pelo usuário (considere que a equação possui duas raízes reais).
• Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer do plano, p(x1,y1) e Q(x2,y2), imprima a distância entre eles.
raiz_quadrada(quad(x2-x1)+quad(y2-y1))
• Faça um algoritmo que calcule o volume de uma esfera de raio R, em que R é um dado fornecido pelo usuário.
O volume de uma esfera é dado por v=4/3.pi.cubo(R);
Estrutura condicional
• É a estrutura em algoritmos que permite ao programa ocasionar desvios em sua execução, sendo estes desvios associados a uma condição específica.
• Por exemplo: Em um questionário, somente convêm perguntarmos dos nomes dos filhos se o usuário respondeu positivamente a pergunta: Tem filhos?
• Em alguns casos este desvio pode estar associado a um valor, como se fossem opções. Um exemplo é o atendimento por voz que acontece ao telefone:
Digite 1 para telefonia fixa Digite 2 para telefonia móvel Etc.
• Isto faz com que os programas atendam aos problemas dos seus usuários de maneira mais assertiva, sem a necessidade de um processamento não necessário.
Fluxo condicional
• if / else if / else Compara condições;
• switch / case Compara a um painel de opções;
If...else
• Estrutura condicional a ser utilizada quando existe a necessidade de uma operação relacional.
• Por exemplo: se idade maior que 16 então pode votar
• Sintaxe: if (<condicao>){
• //bloco de código }else if (condicao2){
• //bloco de código }else{
• //bloco de código }
Exemplo if
if(i==0){
System.out.println("i é igual a zero!");
}else if(i==1){
System.out.println("i é igual a um!");
}else{
System.out.println("i é diferente de zero e um!");
}
Switch..case
• Para esta estrutura é a mais indicada para os casos onde se tem opções que causarão desvios no código.
• Neste caso específico o desvio se dará baseado no valor da variável e não em uma operação lógica como no caso do if..else
• Sintaxe: switch (<var1>){
• case <val1>: //bloco código
• break;
• case <var2>: //bloco código
• break;
• otherwise : //bloco código }
Exemplo switch
switch (i){case 0:
System.out.println("i é igual a zero!");break;
case 1:System.out.println("i é igual a um!");break;
case 2:System.out.println("i é igual a dois!");break;
default:System.out.println("i é diferente!");break;
}
Exercício
• Implemente um algoritmo que através de uma variável numérica escreva o nome do mês. Observação: caso o mês esteja fora do intervalo de 1 a 12, o algoritmo deve escrever a mensagem – “valor inválido”
Estrutura de repetição
• É a estrutura em algoritmos que permite executar mais de uma vez um conjunto de comandos, ou, bloco de comandos, de acordo com uma condição ou com um contador.
Estrutura de repetição
• for Melhor aplicado quando necessitamos de um contador;
• for (tipo foreach) Melhor aplicado para iterações em lista, muito parecido com o o PHP;
Estrutura de repetição
– cont.
• while Laço atrelado a uma condição, se não atender a condição nem entra no laço;
• do...while Laço atrelado a uma condição, executa pelo menos uma vez o laço, pois a condição esta somente no fim;
for
• Este laço de repetição esta associado a um contador. Seu uso é mais indicado para situações onde o numero de iterações de um laço é bem definido. Por exemplo, escrever os números de 0 a 10
Exemplo de for
for(int i=0;i<10;i++){
System.out.println("o valor de i é :"+i);
}
Exemplo de for (each)
List<String> lista = new ArrayList();
for(String str: lista){System.out.println("a string atual é :"+str);
}
while
• Efetua laço de repetição associado a uma condição, este tipo de laço de repetição sempre faz o teste no inicio sendo que a primeira repetição só ocorrerá se a condição for atendida.
Exemplo de while
i=0;
while(i<10){
System.out.println("o valor de i é :"+i);i++;
}
Do..while
• Efetua o laço de repetição enquanto uma condição não seja atendida. Este tipo de laço de repetição faz com que o teste seja feito somente ao final da iteração, ou seja, o bloco de código será executado no mínimo uma vez.
Exemplo de do..while
i=0;
do{System.out.println("o valor de i é :"+i);i++;
}while(i<10);
Exercício
• Implemente um algoritmo que escreva os números primos de 2 a 100.
• Implemente um algoritmo que escreva os primeiros 50 números da serie de Fibonacci.
• Construa um algoritmo que calcule a média ponderada entre 5 números quaisquer, sendo que os pesos a serem aplicados são respectivamente 1,2,3,4 e 5.
• Elabore um algoritmo que calcula a área de um círculo qualquer de raio fornecido.
• Prepare um algoritmo capaz de inverter um número, de 3 dígitos, fornecido, ou seja, apresentar primeiro a unidade e, depois, a dezena e a centena
• Ao completar o tanque de combustível de um automóvel, faça um algoritmo que calcule o consumo efetuado, assim como a autonomia que o carro ainda teria antes do abastecimento.
• Considere que o veículo sempre seja abastecido até encher o tanque e que são fornecidas apenas a capacidade do tanque, a quantidade de litros abastecidos e a quilometragem percorrida desde o último abastecimento.
• Dada uma determinada data de aniversário (dia, mês, ano separadamente), elabora um algoritmo que solicite a data atual (dia, mês, ano separadamente) e calcule a idade em ano, em meses e em dias
• Um dado comerciante maluco cobra 10% de acréscimo para cada prestação em atraso e depois da um desconto de 10% sobre esse valor. Faça um algoritmo que solicite o valor da prestação em atraso e apresente o valor final a pagar, assim como o prejuízo do comerciante na operação
• Escreva o signo do zodíaco correspondente ao dia e mês informado.
• A partir da idade informada de uma pessoa, elabore um algoritmo que informe a sua classe eleitoral, sabendo que menores de 16 não votam (não votante), que o voto é obrigatório para adultos entre 18 e 65 anos (eleitor obrigatório) e que o voto é opcional para eleitores entre 16 e 18 anos, ou maiores de 65 anos (eleitor facultativo)
Conclusão
• Através do conhecimento dos fundamentos de uma linguagem podemos construir um solido alicerce para nossa aprendizagem, por isso, é sempre válido retomarmos os conceito mais básicos de cada linguagem e aprende-los em seus detalhes, solidificando este conhecimento através de exercícios.