java -indonésia -tempo usado

Propaganda
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Fluxo de Execução de Programa
Prof. Rodrigo Hausen
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Fluxo de Execução de Programa
Prof. Rodrigo Hausen
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Constante
 valor definido pelo programador que não pode
ser alterado durante a execução do programa.
• Exs.:
– Inteiras (int): 1, 3, 9, 10000
– com parte fracionária (float, double): 4.01,
7.5, 6.022E23
– caracteres (char): 'a', 'A', 'ô', '3', '\''
– Cadeia de caracteres (String): “Bom dia”,
“12345”, “Seu saldo é de R$ 100,00.”)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variável


(aquilo que varia) valor que pode ser alterado
durante a execução do programa
Em Java, cada variável pode ser pensada como
uma “gaveta” imaginária, onde cabe um único
tipo de dado:
número inteiro (int)
núm. com parte fracionária (float ou double)
valor lógico (boolean)
Atenção! S maiúsculo
caractere (char)
cadeia de caracteres (String)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variável


Para usarmos uma variável, precisamos
primeiramente declará-la.
Em Java, a declaração de uma variável deve ser
sempre com o tipo seguido do nome. O nome deve
começar por uma letra (geralmente minúscula)
seguida apenas por zero ou mais letras, números
ou caractere de sublinhado (_). Exs.:
int n;
double media;
char blink182;
String nomeDoAluno;
boolean pode_prosseguir;
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Expressão
 Combinação de constantes/variáveis por meio
de operações
 Operadores aritméticos: atuam sobre números
+ soma
* multiplicação % resto de divisão
- subtração / divisão
(op. Módulo)
obs.: em Java, não existe operador para
exponenciação xy
 Parênteses agrupam as operações, mudando a
ordem com que são realizadas
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Expressão
 O operador + também tem outro papel: o de
concatenar cadeias de caracteres.
 Qual é o resultado das expressões abaixo?
Verifique no NetBeans
– “Bom” + “dia”
– “Bom” + “ ” + “dia”
– “4” + “2”
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Expressão
 Operadores de comparação: comparam dois
números. O resultado da comparação é
verdadeiro ou falso.

> maior que >= maior ou igual
> menor que >= menor ou igual
== igual a
!= diferente de (≠)
Atenção! O operador de igualdade é == (dois
sinais de igualdade, sem espaço entre eles)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Expressão

Operadores lógicos ou booleanos: comparam
dois valores lógicos. O resultado da comparação
é verdadeiro ou falso.
== igual a
!= diferente de (≠)
&& E lógico (conjunção)
|| OU lógico (disjunção)
! negação (colocado antes do valor)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões

Após definirmos uma variável, podemos atribuir
um valor a ela.
String nome;
nome = "Joaquim José";
ATENÇÃO: cuidado com os operadores!!!!
• atribuição é sempre
=
• comparação é sempre ==
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões

Após definirmos uma variável, podemos atribuir
um valor a ela.
String nome;
nome = "Joaquim José";
OBSERVAÇÃO IMPORTANTE:
Em Java, a atribuição sempre é feita da
direita para a esquerda! Portanto, do lado
esquerdo de uma atribuição, sempre deve
haver uma variável!
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões


Após definirmos uma variável, podemos atribuir
um valor a ela.
String nome;
nome = "Joaquim José";
Podemos também declarar uma variável e
imediatamente atribuir um valor a ela:
String nome = "Joaquim José";
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões



Após definirmos uma variável, podemos atribuir
um valor a ela.
String nome;
nome = "Joaquim José";
Podemos também declarar uma variável e
imediatamente atribuir um valor a ela:
String nome = "Joaquim José";
Podemos atribuir a uma variável o valor de uma
expressão
double x = 3.0;
double y = 4.1*x – 9.5;
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões

Atividade 1:
1) Crie o projeto CalculaMedia
2) Declare duas variáveis, prova e trabalho, para
armazenar, respectivamente, a nota da prova e
do trabalho de um aluno de PI (qual o tipo mais
adequado para estas variáveis?). Atribua a elas
os valores 7.5 e 6.5, respectivamente.
3) Declare a variável media e atribua a ela o valor
de uma expressão que calcule a média do aluno
em PI usando as variáveis prova e trabalho.
4) Imprima es valores na tela como no exemplo
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões


Exemplo de execução (o que deve aparecer na
tela):
Nota da prova: 7.5
Nota do trabalho: 6.5
Média da parte prática: 7.1
Altere os valores das variáveis prova e trabalho,
execute novamente o programa e veja se a média
é alterada conforme esperado.
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Variáveis e expressões

Atividade 2:
1) Crie o projeto TrocandoVariaveis
2) Declare duas variáveis a e b do tipo inteiro e
atribua valores diferentes a elas
3) Após a declaração e atribuição, faça um
código que troque os valores entre as duas
variáveis. Use uma variável auxiliar para fazer
essa troca.
4) Troque novamente os valores, agora sem usar
uma variável auxiliar. Por que você pode
garantir que este código funciona?
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
// com var. aux.
int temp;
temp = b;
b = a;
a = temp;
System.out.println("a: " +a+ ", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
// com var. aux.
int temp;
temp = b;
b = a;
a = temp;
System.out.println("a: " +a+ ", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
temp = b;
b = a;
a = temp;
System.out.println("a: " +a+ ", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
b = a;
a = temp;
System.out.println("a: " +a+ ", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
5
ñ decl.
5
?
5
5
3
// com var. aux.2
int temp;
5
3
temp = b;
6
3
b = a;
a = temp;
System.out.println("a: " +a+
", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
5
ñ decl.
5
?
5
5
3
// com var. aux.2
int temp;
5
3
temp = b;
6
3
b = a;
7
3
a = temp;
System.out.println("a: " +a+
3
5
", b: " +b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
9
5
3
5
// sem var. aux.
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
9
5
3
5
// sem var. aux.
12
2
3
5
a = a – b;
b = b + a;
a = b - a;
System.out.println("a: " +a+ ", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
9
5
// sem var. aux.
12
2
a = a – b;
b = b + a;
13
2
a = b - a;
System.out.println("a: " +a+
3
5
3
5
5
5
", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
9
5
// sem var. aux.
12
2
a = a – b;
b = b + a;
13
2
a = b - a;
14
3
System.out.println("a: " +a+
3
5
3
5
5
5
5
5
", b: " +b);
Bacharelado em Ciência e Tecnologia
Processamento da Informação
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int a = 3;
int b = 5;
linha
a
b
temp
1
3
ñ decl.
ñ decl.
3
5
ñ decl.
// com var. aux.2
int temp;
5
3
5
?
temp = b;
6
3
5
5
b = a;
7
3
3
5
a = temp;
System.out.println("a:
8
5" +a+ ",
3 b: " 5+b);
9
5
3
5
// sem var. aux.
12
2
3
5
a = a – b;
b = b + a;
13
2
5
5
a = b - a;
14
3
5
5
System.out.println("a: " +a+ ", b: " +b);
15
3
5
5
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa



Estratégia
linha
a
b
temp
importantíssima
1
3
ñ decl. ñ decl.
para entender
2
3
5
ñ decl.
o funcionamento
5
3
5
?
do programa e
3
5
5
detectar erros de 6
programação (bugs)
Tabele todas as variáveis importantes (uma por
coluna) e execute o programa, linha por linha.
Se você não souber explicar como seu programa
funciona, considere-o como se estivesse errado!
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa


1
2
3
Com algumas adaptações, pode até mesmo ser
usado para demonstrar formalmente que o seu
programa está correto.
Ex.: demonstre que o trecho de código abaixo
troca corretamente os valores de a e b.
a = a – b;
b = b + a;
a = b – a;
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa


1
2
3
Com algumas adaptações, pode até mesmo ser
usado para demonstrar formalmente que o seu
programa está correto.
Ex.: demonstre que o trecho de código abaixo
troca corretamente os valores de a e b.
a = a – b;
b = b + a;
a = b – a;
linha
Antes 1
1
2
3
a
X
X-Y
X-Y
Y
b
Y
Y
X
X
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa


1
2
3
Com algumas adaptações, pode até mesmo ser
usado para demonstrar formalmente que o seu
programa está correto.
Ex.: demonstre que o trecho de código abaixo
troca corretamente os valores de a e b.
a = a – b;
b = b + a;
a = b – a;
linha
Antes 1
1
2
3
a
X
X-Y
X-Y
Y
b
Y
Y
X
X
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa


1
2
3
Com algumas adaptações, pode até mesmo ser
usado para demonstrar formalmente que o seu
programa está correto.
Ex.: demonstre que o trecho de código abaixo
troca corretamente os valores de a e b.
a = a – b;
b = b + a;
a = b – a;
linha
Antes 1
1
2
3
a
X
X-Y
X-Y
Y
b
Y
Y
X
X
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Teste de mesa


1
2
3
Com algumas adaptações, pode até mesmo ser
usado para demonstrar formalmente que o seu
programa está correto.
Ex.: demonstre que o trecho de código abaixo
troca corretamente os valores de a e b.
a = a – b;
b = b + a;
a = b – a;
linha
Antes 1
1
2
3
a
X
X-Y
X-Y
Y
b
Y
Y
X
X
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Mais expressões

Atividade 3:
1) Crie o projeto CalculaSeno
2) Faça um programa que tome uma variável
angulo, do tipo double, e calcule uma
aproximação apx para o seno do ângulo dado
em radianos a partir do polinômio de Taylor
3) Calcule as aproximações para os seguintes
valores de x e compare com o valor dado pela
calculadora do Windows:
-3.1415 , -1.5706, -0.5, 0, 0.5, 1.5706, 3.1415
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos



Na atividade anterior, note que a cada vez que
queríamos usar a expressão
precisávamos copiá-la para usá-la.
Será que podemos defini-la em apenas um lugar e
usá-la sem precisar copiar?
Função ou método: trecho de código que é
definido em apenas um lugar e pode ser
reutilizado em outros lugares.
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos

Definindo um método para reutilizar a expressão
public static double calculaSeno(double x) {
double apx = x – x*x*x/6 + x*x*x*x*x/120
– x*x*x*x*x*x*x/5040;
return apx;
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
// código do método
return valorDeRetorno;
}
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
Onde colocar:
Entre class Programa { e
public static void main
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
// código do método
return valorDeRetorno;
}
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
O que colocar:
As palavras public static
vêm antes da definição.
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
// código do método
return valorDeRetorno;
}
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
O que colocar:
// código do método
Depois de public static
return valorDeRetorno; vem o tipo de retorno
}
int, double, char, String...
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
O que colocar:
// código do método
Depois do tipo de retorno
return valorDeRetorno; vem o nome do método.
}
As regras para o nome são as mesmas
que para nome de variável.
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
// código do método
O que colocar:
return valorDeRetorno; Depois do nome, coloque
}
os argumentos (variáveis)
entre parênteses e separados por vírgula.
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
O que colocar:
// código do método
Após os argumentos,
return valorDeRetorno;
um bloco de código,
}
delimitado por { e }
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• Definindo um método em Java:
class Programa {
public static tipo nomeDoMetodo(tipo1 arg1,
tipo2 arg2, …, tipoN argN)
{
O que colocar:
// código do método
Se o tipo do seu métoreturn valorDeRetorno;
do não for void, ele
}
deve sempre retornar algo (resultado da execução).
public static void main(String[] args) {
// código do programa
}
}
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Funções ou métodos
• No final do curso, veremos métodos em mais
detalhes.
• Por enquanto, saiba que Java já possui vários
métodos prontos que você pode utilizar:
– System.out.println – imprime na tela e pula linha
– System.out.printf – imprime dados formatados
– Math.pow(x,y) – calcula xy
– Math.sin, Math.cos, Math.tan, … - funções
trigonométricas
– sc.nextInt(), sc.nextDouble(), … - entrada de
dados (precisa “configurar” sc primeiro)
Bacharelado em Ciência e Tecnologia
Processamento da Informação
Atividades
• Vamos refazer o roteiro da aula 02
• Atividade desta semana para entregar no Tidia:
mesma da semana passada (quem já fez, verifique
e melhore o seu código e entregue novamente;
quem não fez, faça e entregue)
Download