Mini E-book
Liguagem de
Programação Java
DESENVOLVEDORES
FULL STACK
By Ricardo Ribeiro
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
Curso Completo de Algoritmos e Lógica de Programação
Capítulo: Linguagem Java
Instalação do Java JDK e Eclipse
Java JDK Zulu (Como Instalar a Versão LTS 17 no Windows?):
https://youtu.be/SzEymvj1WdM
Eclipse IDE - Como Baixar e Instalar no Windows:
https://youtu.be/KWGIaWh71q4
Primeiro programa em Java
VisualG Java
Algoritmo "primeiro" public class Main {
Var public static void main(String[] args) {
Inicio
System.out.println("Ola mundo!");
escreval("Ola mundo!") }
}
Fimalgoritmo
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
TIPOS DE DADOS E VARIÁVEIS
Tipo
Significado Tipo VisualG Valor padrão Observação
Java
int: -2147483648 a 2147483647
número inteiro inteiro int não atribuído
long −9223372036854775807 a 9223372036854775807
número de float: precisão simples
real double não atribuído
ponto flutuante double: precisão dupla
um único
caractere char não atribuído Valores literais devem ter aspas simples. Exemplo: 'F'
caractere
texto caractere String não atribuído Valores literais devem ter aspas duplas. Exemplo: "Maria"
valor lógico logico boolean não atribuído Valores possíveis: false / true
Referência:
https://docs.oracle.com/javase/specs/jls/html
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
Exemplo: declaração e atribuição de variáveis
VisualG Java
Algoritmo "teste" import java.util.Locale;
Var public class Main {
idade : inteiro public static void main(String[] args) {
salario, altura : real
genero : caractere Locale.setDefault(Locale.US);
nome : caractere
int idade;
Inicio double salario, altura;
char genero;
idade <- 20 String nome;
salario <- 5800.5
altura <- 1.63 idade = 20;
genero <- "F" salario = 5800.5;
nome <- "Maria Silva" altura = 1.63;
genero = 'F';
escreval("IDADE = ", idade) nome = "Maria Silva";
escreval("SALARIO = ", salario:4:2)
escreval("ALTURA = ", altura:4:2) System.out.println("IDADE = " + idade);
escreval("GENERO = ", genero) System.out.println("SALARIO = " + String.format("%.2f", salario));
escreval("NOME = ", nome) System.out.println("ALTURA = " + String.format("%.2f", altura));
System.out.println("GENERO = " + genero);
Fimalgoritmo System.out.println("NOME = " + nome);
}
}
NOTA: A linguagem Java aceita atribuição diretamente na declaração da variável, inclusive para texto. Por exemplo:
int idade = 20;
String nome = "Maria Silva";
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
OPERADORES EM Java
Operadores aritméticos
Operador Significado
+ adição
- subtração
* multiplicação
/ divisão
% resto da divisão ("mod")
Operadores comparativos
Operador Significado
< menor
> maior
<= menor ou igual
>= maior ou igual
== igual
!= diferente
Operadores lógicos
Operador Significado
&& e
|| ou
! não
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
SAÍDA DE DADOS EM Java
Comando no VisualG Comando em Java Biblioteca
escreva / escreval System.out.print / System.out.println -
Observação Biblioteca
Nota: para imprimir "." ao invés de "," como import java.util.Locale;
separador de decimais:
Locale.setDefault(Locale.US);
Para formatar número de ponto flutuante, use -
a função:
String.format(placeholder, expressão)
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
SAÍDA DE DADOS EM Java
Exemplo VisualG Exemplo Java Resultado na tela
escreva("Bom dia") System.out.print("Bom dia"); Bom diaBoa noite
escreva("Boa noite") System.out.print("Boa noite");
escreval("Bom dia") System.out.println("Bom dia"); Bom dia
escreval("Boa noite") System.out.println("Boa noite"); Boa noite
x, y : inteiro int x, y; 10
x <- 10 x = 10; 20
y <- 20 y = 20;
escreval(x) System.out.println(x);
escreval(y) System.out.println(y);
x : real double x; 2.35
x <- 2.3456 x = 2.3456;
escreval(x:4:2) System.out.println(String.format("%.2f", x));
idade : inteiro int idade; A funcionaria Maria Silva, sexo
salario : real double salario; F, ganha 4560.90 e tem 32 anos
nome : caractere String nome;
sexo : caractere char sexo;
idade <- 32 idade = 32;
salario <- 4560.9 salario = 4560.9;
nome <- "Maria Silva" nome = "Maria Silva";
sexo <- "F" sexo = 'F';
escreval("A funcionaria ", nome, ", sexo ", System.out.println("A funcionaria " + nome +
sexo, ", ganha ", salario:8:2, " e tem ", ", sexo " + sexo + ", ganha " +
idade, " anos.") String.format("%.2f", salario) + " e tem " +
idade + " anos");
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
PROCESSAMENTO DE DADOS / CASTING EM Java
Exemplo VisualG Exemplo Java Resultado na tela
x, y : inteiro int x, y; 5
x <- 5 x = 5; 10
y <- 2 * x y = 2 * x;
escreval(x) System.out.println(x);
escreval(y) System.out.println(y);
x : inteiro int x; 5
y : real double y; 10.0
x <- 5 x = 5;
y <- 2 * x y = 2 * x;
escreval(x) System.out.println(x);
escreval(y) System.out.println(String.format("%.1f", y));
b1, b2, h, area : real double b1, b2, h, area; 35.0
b1 <- 6.0 b1 = 6.0;
b2 <- 8.0 b2 = 8.0;
h <- 5.0 h = 5.0;
area <- (b1 + b2) / 2.0 * h; area = (b1 + b2) / 2.0 * h;
escreval(area) System.out.println(area);
a, b, resultado : inteiro int a, b, resultado; 2
a <- 5 a = 5;
b <- 2 b = 2;
resultado <- a \ b resultado = a / b;
escreval(resultado) System.out.println(resultado);
a : real double a; 5
b : inteiro int b;
a <- 5.0 a = 5.0;
b <- Int(a) b = (int) a;
escreval(b) System.out.println(b);
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ENTRADA DE DADOS EM Java
Comando no VisualG Comando em Java Biblioteca
leia Scanner sc = new Scanner(System.in); import java.util.Scanner;
int x = sc.nextInt();
double y = sc.nextDouble();
char z = sc.next().charAt(0);
String s = sc.nextLine();
sc.close();
Comando para limpeza de buffer
sc.nextLine();
QUANDO USAR: quando você for ler um texto até a quebra de linha (nextLine), mas antes o seu programa já leu algum outro dado e
deixou uma quebra de linha pendente. Por exemplo:
System.out.print("Digite sua idade: ");
idade = sc.nextInt();
System.out.print("Digite seu nome completo: ");
sc.nextLine(); // ------------- limpeza de buffer
nome = sc.nextLine();
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ENTRADA DE DADOS EM Java
Exemplo VisualG Exemplo Java
Algoritmo "teste_entrada" import java.util.Locale;
import java.util.Scanner;
Var public class Main {
salario1, salario2 : real public static void main(String[] args) {
nome1, nome2 : caractere Locale.setDefault(Locale.US);
idade : inteiro Scanner sc = new Scanner(System.in);
sexo : caractere
double salario1, salario2;
Inicio String nome1, nome2;
int idade;
escreva("Nome da primeira pessoa: ") char sexo;
leia(nome1) System.out.print("Nome da primeira pessoa: ");
escreva("Salario da primeira pessoa: ") nome1 = sc.nextLine();
leia(salario1) System.out.print("Salario da primeira pessoa: ");
salario1 = sc.nextDouble();
escreva("Nome da segunda pessoa: ")
System.out.print("Nome da segunda pessoa: ");
leia(nome2)
sc.nextLine(); // ------------- limpeza de buffer
escreva("Salario da segunda pessoa: ")
nome2 = sc.nextLine();
leia(salario2)
System.out.print("Salario da segunda pessoa: ");
salario2 = sc.nextDouble();
escreva("Digite uma idade: ")
leia(idade) System.out.print("Digite uma idade: ");
escreva("Digite um sexo (F/M): ") idade = sc.nextInt();
leia(sexo) System.out.print("Digite um sexo (F/M): ");
sexo = sc.next().charAt(0);
escreval("Nome 1: ", nome1) System.out.println("Nome 1: " + nome1);
escreval("Salario 1: ", salario1:4:2) System.out.println("Salario 1: " + String.format("%.2f", salario1));
escreval("Nome 2: ", nome2) System.out.println("Nome 2: " + nome2);
escreval("Salario 2: ", salario2:4:2) System.out.println("Salario 2: " + String.format("%.2f", salario2));
escreval("Idade: ", idade) System.out.println("Idade: " + idade);
escreval("Sexo: ", sexo) System.out.println("Sexo: " + sexo);
Fimalgoritmo sc.close();
}
}
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
COMO EXECUTAR O DEBUGGER NO ECLIPSE
COMANDOS DO DEBUGGER:
• Habilitar/desabilitar breakpoint: CTRL + SHIFT + B
• Iniciar o debug: Botão direito no programa -> Debug As -> Java Application
• Rodar um passo: F6
• Parar o debug: CTRL + F2
• Mostrar variáveis: (veja aba "Variables")
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ESTRUTURA CONDICIONAL EM Java
Simples Composta Encadeamento
if (condição) { if (condição) { if (condição1) {
comando1 comando1 comando1
comando2 comando2 comando2
} } }
else { else if (condição2) {
comando3 comando3
comando4 comando4
} }
else {
comando5
comando6
}
Exemplo VisualG Exemplo Java
Algoritmo "teste_condicional" import java.util.Scanner;
public class Main {
Var
hora : inteiro public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Inicio
escreva("Digite uma hora do dia: ") int hora;
leia(hora) System.out.print("Digite uma hora do dia: ");
hora = sc.nextInt();
se hora < 12 entao
escreval("Bom dia!") if (hora < 12) {
senao System.out.println("Bom dia!");
escreval("Boa tarde!") }
fimse else {
System.out.println("Boa tarde!");
Fimalgoritmo }
sc.close();
}
}
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ESTRUTURA ENQUANTO EM Java
Sintaxe Regra
while (condição) { V: executa e volta
comando1 F: pula fora
comando2
}
Exemplo VisualG Exemplo Java
Algoritmo "teste_enquanto" import java.util.Scanner;
public class Main {
Var
public static void main(String[] args) {
x, soma : inteiro
Scanner sc = new Scanner(System.in);
Inicio int x, soma;
soma = 0;
soma <- 0
System.out.print("Digite o primeiro numero: ");
escreva("Digite o primeiro numero: ")
x = sc.nextInt();
leia(x)
while (x != 0) {
enquanto x <> 0 faca soma = soma + x;
soma <- soma + x System.out.print("Digite outro numero: ");
escreva("Digite outro numero: ") x = sc.nextInt();
leia(x) }
fimenquanto
System.out.println("SOMA = " + soma);
escreval("SOMA = ", soma) sc.close();
}
Fimalgoritmo }
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ESTRUTURA PARA EM Java
Sintaxe / regra
Exemplo VisualG Exemplo Java
Algoritmo "teste_para" import java.util.Scanner;
Var public class Main {
N, i, x, soma : inteiro public static void main(String[] args) {
Inicio Scanner sc = new Scanner(System.in);
int N, i, x, soma;
escreva("Quantos numeros serao digitados? ")
leia(N) System.out.print("Quantos numeros serao digitados? ");
N = sc.nextInt();
soma <- 0
soma = 0;
para i de 1 ate N faca
for (i = 1; i <= N; i++) {
escreva("Digite um numero: ")
System.out.print("Digite um numero: ");
leia(x)
x = sc.nextInt();
soma <- soma + x
soma = soma + x;
fimpara
}
escreval("SOMA = ", soma) System.out.println("SOMA = " + soma);
sc.close();
Fimalgoritmo
}
}
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
ESTRUTURA DO-WHILE EM Java (variante da estrutura REPITA-ATÉ)
Sintaxe Regra
do { V: volta
comando 1 F: pula fora
comando 2
} while (condição);
Exemplo VisualG Exemplo Java
Algoritmo "exemplo_repita_ate" import java.util.Locale;
import java.util.Scanner;
Var
C, F : real public class Main {
resp : caractere
public static void main(String[] args) {
Inicio
Locale.setDefault(Locale.US);
repita Scanner sc = new Scanner(System.in);
escreva("Digite a temperatura em Celsius: ")
leia(C) double C, F;
F <- 9.0 * C / 5.0 + 32.0 char resp;
escreval("Equivalente em Fahrenheit: ", F:6:1)
escreva("Deseja repetir (s/n)? ") do {
leia(resp) System.out.print("Digite a temperatura em Celsius: ");
ate resp <> "s" C = sc.nextDouble();
F = 9.0 * C / 5.0 + 32.0;
Fimalgoritmo System.out.printf("Equivalente em Fahrenheit: %.1f%n", F);
System.out.print("Deseja repetir (s/n)? ");
resp = sc.next().charAt(0);
} while (resp == 's');
sc.close();
}
}
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
VETORES EM Java
Exemplo VisualG Exemplo Java
Algoritmo "teste_vetor" import java.util.Locale;
import java.util.Scanner;
Var
public class Main {
vet: vetor [0..9] de real
N, i : inteiro public static void main(String[] args) {
Inicio Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
escreva("Quantos numeros voce vai digitar? ")
leia(N) int N, i;
para i de 0 ate N-1 faca System.out.print("Quantos numeros voce vai digitar? ");
escreva("Digite um numero: ") N = sc.nextInt();
leia(vet[i])
fimpara double[] vet = new double[N];
escreval for (i = 0; i < N; i++) {
escreval("NUMEROS DIGITADOS:") System.out.print("Digite um numero: ");
para i de 0 ate N-1 faca vet[i] = sc.nextDouble();
escreval(vet[i]:8:1) }
fimpara
System.out.println("\nNUMEROS DIGITADOS:");
Fimalgoritmo for (i = 0; i < N; i++) {
System.out.println(String.format("%.1f", vet[i]));
}
sc.close();
}
}
Curso de Algoritmos e Lógica de Programação (Básico e Avançado) – Prof: Ricardo Ribeiro
MATRIZES EM Java
Exemplo VisualG Exemplo Java
Algoritmo "teste_matriz" import java.util.Scanner;
Var public class Main {
mat: vetor [0..4, 0..4] de inteiro
M, N, i, j : inteiro public static void main(String[] args) {
Inicio Scanner sc = new Scanner(System.in);
escreva("Quantas linhas vai ter a matriz? ")
leia(M) int M, N, i, j;
escreva("Quantas colunas vai ter a matriz? ")
leia(N) System.out.print("Quantas linhas vai ter a matriz? ");
M = sc.nextInt();
para i de 0 ate M-1 faca System.out.print("Quantas colunas vai ter a matriz? ");
para j de 0 ate N-1 faca N = sc.nextInt();
escreva("Elemento [", i, ",", j, "]: ")
leia(mat[i, j]) int[][] mat = new int[M][N];
fimpara
fimpara for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
escreval System.out.print("Elemento [" + i + "," + j + "]: ");
escreval("MATRIZ DIGITADA:") mat[i][j] = sc.nextInt();
para i de 0 ate M-1 faca }
para j de 0 ate N-1 faca }
escreva(mat[i, j])
fimpara System.out.println("\nMATRIZ DIGITADA:");
escreval for (i = 0; i < M; i++) {
fimpara for (j = 0; j < N; j++) {
Fimalgoritmo System.out.println(mat[i][j] + " ");
}
System.out.println();
}
sc.close();
}
}