SlideShare uma empresa Scribd logo
Aula 04 – Um Primeiro Programa
(Cont.)
Norton Trevisan Roman
19 de mar¸co de 2020
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 1 / 35
Sa´ıda B´asica
Seria interessante darmos tamb´em uma mensagem
situando o usu´ario:
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
Sa´ıda B´asica
Seria interessante darmos tamb´em uma mensagem
situando o usu´ario:
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
}
}
E o que isso faz ao rodarmos javac CasaRet.java e
java CasaRet?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
Sa´ıda B´asica
Seria interessante darmos tamb´em uma mensagem
situando o usu´ario:
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
}
}
E o que isso faz ao rodarmos javac CasaRet.java e
java CasaRet?
Escreve: “Programa para c´alculo da ´area da casa”
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
Sa´ıda B´asica
E se quis´essemos escrever
Programa para c´alculo
da ´area da casa
Como far´ıamos?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 3 / 35
Sa´ıda B´asica
E se quis´essemos escrever
Programa para c´alculo
da ´area da casa
Como far´ıamos?
Alternativa 1: separando em dois comandos
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo");
System.out.println("da ´area da casa");
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 3 / 35
Sa´ıda B´asica
Alternativa 2: usando o caractere especial n
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculonda ´area da casa");
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 4 / 35
Opera¸c˜oes Aritm´eticas
J´a alertamos o usu´ario
de que o programa
come¸cou
Falta ainda executar a
tarefa
Para isso precisaremos
saber como fazer
c´alculos:
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 5 / 35
Opera¸c˜oes Aritm´eticas
J´a alertamos o usu´ario
de que o programa
come¸cou
Falta ainda executar a
tarefa
Para isso precisaremos
saber como fazer
c´alculos:
Matem´atica Java
2 + 3 2 + 3
2 − 3 2 − 3
2 × 3 2 ∗ 3
2 ÷ 3 2/3
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 5 / 35
Relembrando o problema e o algoritmo
Calcular a ´area da sala
Multiplicar a largura
pelo comprimento da
sala
Dizer ao usu´ario
Calcular a ´area do quarto
Multiplicar a largura
pelo comprimento do
quarto
Dizer ao usu´ario
Calcular a ´area do banheiro
Ser´a igual `a do quarto
Dizer ao usu´ario
Sala
Quarto
Banheiro
10m
5m
10m
7m
Calcular a ´area total
Somar as ´areas do
quarto, banheiro e sala
Dizer ao usu´ario
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 6 / 35
Opera¸c˜oes Aritm´eticas
Como incluir no c´odigo os c´alculos necess´arios?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
Opera¸c˜oes Aritm´eticas
Como incluir no c´odigo os c´alculos necess´arios?
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo da ´area
da casa");
10*10;
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
Opera¸c˜oes Aritm´eticas
Como incluir no c´odigo os c´alculos necess´arios?
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo da ´area
da casa");
10*10;
}
}
Funciona?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
Opera¸c˜oes Aritm´eticas
Como incluir no c´odigo os c´alculos necess´arios?
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo da ´area
da casa");
10*10;
}
}
Funciona?
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
Opera¸c˜oes Aritm´eticas
O que faltou?
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
Opera¸c˜oes Aritm´eticas
O que faltou?
Onde guardamos o
resultado? N˜ao
guardamos em lugar
nenhum
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
Opera¸c˜oes Aritm´eticas
O que faltou?
Onde guardamos o
resultado? N˜ao
guardamos em lugar
nenhum
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Uma solu¸c˜ao seria usarmos o println para calcular o
resultado
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
Opera¸c˜oes Aritm´eticas
O que faltou?
Onde guardamos o
resultado? N˜ao
guardamos em lugar
nenhum
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Uma solu¸c˜ao seria usarmos o println para calcular o
resultado
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
System.out.println(10*10);
} }
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
Opera¸c˜oes Aritm´eticas
O que faltou?
Onde guardamos o
resultado? N˜ao
guardamos em lugar
nenhum
$ javac CasaRet.java
CasaRet.java:10: not a statement
10*10;
^
1 error
Uma solu¸c˜ao seria usarmos o println para calcular o
resultado
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
System.out.println(10*10);
} }
Nesse caso, o resultado seria trabalhado internamente (mais
adiante veremos)
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
Opera¸c˜oes Aritm´eticas
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
System.out.println(10*10);
} }
E...
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
Opera¸c˜oes Aritm´eticas
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
System.out.println(10*10);
} }
E...
$ javac CasaRet.java
$ java CasaRet
Programa para c´alculo da ´area da casa
100
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
Opera¸c˜oes Aritm´eticas
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo
da ´area da casa");
System.out.println(10*10);
} }
E...
$ javac CasaRet.java
$ java CasaRet
Programa para c´alculo da ´area da casa
100
Funcionou. Meio feio, mas funcional
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
Opera¸c˜oes Aritm´eticas
Ent˜ao...
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para c´alculo da ´area
da casa");
System.out.println("A ´area da sala ´e " + 10*10);
System.out.println("A ´area do quarto ´e " + 5*7);
System.out.println("A ´area do banheiro ´e " + 5*7);
System.out.println("A ´area total ´e " + 10*10 + 5*7
+ 5*7);
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 10 / 35
Opera¸c˜oes Aritm´eticas
Vai funcionar?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
Opera¸c˜oes Aritm´eticas
Vai funcionar?
$ javac CasaRet.java
$ java CasaRet
Programa para c´alculo da ´area da casa
A ´area da sala ´e 100
A ´area do quarto ´e 35
A ´area do banheiro ´e 35
A ´area total ´e 1003535
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
Opera¸c˜oes Aritm´eticas
Vai funcionar?
$ javac CasaRet.java
$ java CasaRet
Programa para c´alculo da ´area da casa
A ´area da sala ´e 100
A ´area do quarto ´e 35
A ´area do banheiro ´e 35
A ´area total ´e 1003535
1003535????
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
Opera¸c˜oes Aritm´eticas
O que houve?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
Opera¸c˜oes Aritm´eticas
O que houve?
Ao fazermos
System.out.println("A ´area total ´e " + 10*10
+ 5*7 + 5*7);
dissemos ao sistema: “escreva o resultado de 10 × 10 e
ent˜ao de 5 × 7 e ent˜ao de 5 × 7”
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
Opera¸c˜oes Aritm´eticas
O que houve?
Ao fazermos
System.out.println("A ´area total ´e " + 10*10
+ 5*7 + 5*7);
dissemos ao sistema: “escreva o resultado de 10 × 10 e
ent˜ao de 5 × 7 e ent˜ao de 5 × 7”
Que fazer?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
Opera¸c˜oes Aritm´eticas
O que houve?
Ao fazermos
System.out.println("A ´area total ´e " + 10*10
+ 5*7 + 5*7);
dissemos ao sistema: “escreva o resultado de 10 × 10 e
ent˜ao de 5 × 7 e ent˜ao de 5 × 7”
Que fazer?
System.out.println("A ´area total ´e "+ (10*10 + 5*7
+ 5*7));
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
Opera¸c˜oes Aritm´eticas
O que houve?
Ao fazermos
System.out.println("A ´area total ´e " + 10*10
+ 5*7 + 5*7);
dissemos ao sistema: “escreva o resultado de 10 × 10 e
ent˜ao de 5 × 7 e ent˜ao de 5 × 7”
Que fazer?
System.out.println("A ´area total ´e "+ (10*10 + 5*7
+ 5*7));
Agora dissemos: “calcule o resultado de 10 × 10 + 5 × 7+
5 × 7 e escreva”
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
Opera¸c˜oes Aritm´eticas
E...
$ javac CasaRet.java
$ java CasaRet
Programa para c´alculo da ´area da casa
A ´area da sala ´e 100
A ´area do quarto ´e 35
A ´area do banheiro ´e 35
A ´area total ´e 170
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 13 / 35
Opera¸c˜oes Aritm´eticas
E como o compilador sabe em que ordem deve
executar as opera¸c˜oes?
Ex: 10*10 + 5*7 + 5*7
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
Opera¸c˜oes Aritm´eticas
E como o compilador sabe em que ordem deve
executar as opera¸c˜oes?
Ex: 10*10 + 5*7 + 5*7
Precedˆencia de operadores:
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
Opera¸c˜oes Aritm´eticas
E como o compilador sabe em que ordem deve
executar as opera¸c˜oes?
Ex: 10*10 + 5*7 + 5*7
Precedˆencia de operadores:
Multiplica¸c˜ao e divis˜ao tˆem precedˆencia sobre soma e
subtra¸c˜ao
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
A express˜ao ´e analisada da esquerda para a direita
(resultando em 27)
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
A express˜ao ´e analisada da esquerda para a direita
(resultando em 27)
E como mudar isso?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
A express˜ao ´e analisada da esquerda para a direita
(resultando em 27)
E como mudar isso?
27 / (3 * 3)
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
A express˜ao ´e analisada da esquerda para a direita
(resultando em 27)
E como mudar isso?
27 / (3 * 3)
Os parˆenteses mudam a precedˆencia
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Opera¸c˜oes Aritm´eticas
E quando temos express˜oes com operadores de igual
precedˆencia?
Ex: 27 / 3 * 3
A express˜ao ´e analisada da esquerda para a direita
(resultando em 27)
E como mudar isso?
27 / (3 * 3)
Os parˆenteses mudam a precedˆencia
O compilador calcula primeiro o que est´a dentro deles
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
Vari´aveis
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculo da ´area da casa");
System.out.println("A ´area da sala ´e "+
10*10);
System.out.println("A ´area do quarto ´e "+
5*7);
System.out.println("A ´area do banheiro ´e "+
5*7);
System.out.println("A ´area total ´e " +
(10*10 + 5*7 + 5*7));
}
}
Algo de
estranho
nesse
programa?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
Vari´aveis
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculo da ´area da casa");
System.out.println("A ´area da sala ´e "+
10*10);
System.out.println("A ´area do quarto ´e "+
5*7);
System.out.println("A ´area do banheiro ´e "+
5*7);
System.out.println("A ´area total ´e " +
(10*10 + 5*7 + 5*7));
}
}
Algo de
estranho
nesse
programa?
“5*7” ´e
repetido 4
vezes no
c´odigo
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
Vari´aveis
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculo da ´area da casa");
System.out.println("A ´area da sala ´e "+
10*10);
System.out.println("A ´area do quarto ´e "+
5*7);
System.out.println("A ´area do banheiro ´e "+
5*7);
System.out.println("A ´area total ´e " +
(10*10 + 5*7 + 5*7));
}
}
Algo de
estranho
nesse
programa?
“5*7” ´e
repetido 4
vezes no
c´odigo
“10*10”
repete 2
vezes
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
Vari´aveis
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculo da ´area da casa");
System.out.println("A ´area da sala ´e "+
10*10);
System.out.println("A ´area do quarto ´e "+
5*7);
System.out.println("A ´area do banheiro ´e "+
5*7);
System.out.println("A ´area total ´e " +
(10*10 + 5*7 + 5*7));
}
}
E se
precisarmos
trocar
algum dos
valores?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 17 / 35
Vari´aveis
class CasaRet {
public static void main(String[] args) {
System.out.println("Programa para
c´alculo da ´area da casa");
System.out.println("A ´area da sala ´e "+
10*10);
System.out.println("A ´area do quarto ´e "+
5*7);
System.out.println("A ´area do banheiro ´e "+
5*7);
System.out.println("A ´area total ´e " +
(10*10 + 5*7 + 5*7));
}
}
E se
precisarmos
trocar
algum dos
valores?
Teremos que
trocar em
v´arios
lugares no
c´odigo
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 17 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Calculamos a ´area da sala e guardamos na mem´oria
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Calculamos a ´area da sala e guardamos na mem´oria
Calculamos a ´area do quarto e guardamos na mem´oria
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Calculamos a ´area da sala e guardamos na mem´oria
Calculamos a ´area do quarto e guardamos na mem´oria
Para a do banheiro, usamos a do quarto, que est´a na
mem´oria
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Calculamos a ´area da sala e guardamos na mem´oria
Calculamos a ´area do quarto e guardamos na mem´oria
Para a do banheiro, usamos a do quarto, que est´a na
mem´oria
Para a ´area total, somamos a da sala com 2 vezes a do
banheiro
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Que fazer ent˜ao para evitar as repeti¸c˜oes?
Seria interessante ter algo assim:
Calculamos a ´area da sala e guardamos na mem´oria
Calculamos a ´area do quarto e guardamos na mem´oria
Para a do banheiro, usamos a do quarto, que est´a na
mem´oria
Para a ´area total, somamos a da sala com 2 vezes a do
banheiro
Todas em mem´oria
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
Vari´aveis
Como guardar algo na mem´oria?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
Vari´aveis
Como guardar algo na mem´oria?
Primeiro, temos que reservar um espa¸co (aloca¸c˜ao)
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
Vari´aveis
Como guardar algo na mem´oria?
Primeiro, temos que reservar um espa¸co (aloca¸c˜ao)
De que tamanho?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
Vari´aveis
Como guardar algo na mem´oria?
Primeiro, temos que reservar um espa¸co (aloca¸c˜ao)
De que tamanho?
O suficiente para guardar o valor que queremos → um inteiro
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
Vari´aveis
Como guardar algo na mem´oria?
Primeiro, temos que reservar um espa¸co (aloca¸c˜ao)
De que tamanho?
O suficiente para guardar o valor que queremos → um inteiro
Como?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args) {
// ´area do quarto
int areaq;
// ´area da sala
int areas;
// ´area total
int areat;
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args) {
// ´area do quarto
int areaq;
// ´area da sala
int areas;
// ´area total
int areat;
}
}
Isso diz ao compilador
para reservar (alocar)
espa¸co na mem´oria
suficiente para 3
inteiros, dando a eles o
nome de “areaq”,
“areas” e “areat”
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args) {
// ´area do quarto
int areaq;
// ´area da sala
int areas;
// ´area total
int areat;
}
}
Isso diz ao compilador
para reservar (alocar)
espa¸co na mem´oria
suficiente para 3
inteiros, dando a eles o
nome de “areaq”,
“areas” e “areat”
areaq, areas e areat s˜ao vari´aveis
int ´e seu tipo
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args) {
// ´area do quarto
int areaq;
// ´area da sala
int areas;
// ´area total
int areat;
}
}
Esquema da mem´oria:
areaq 0 areas 0
areat 0
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 21 / 35
Vari´aveis
Alocado o espa¸co, podemos por algo l´a → atribui¸c˜ao
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 22 / 35
Vari´aveis
Alocado o espa¸co, podemos por algo l´a → atribui¸c˜ao
class CasaRet {
public static void main(String[] args) {
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
System.out.println("Programa para c´alculo da ´area da casa");
areas = 10*10;
System.out.println("A ´area da sala ´e "+areas);
areaq = 7*5;
System.out.println("A ´area do quarto ´e "+areaq);
System.out.println("A ´area do banheiro ´e "+areaq);
areat = areas + 2*areaq;
System.out.println("A ´area total ´e " + areat);
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 22 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq areas
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq areas
areat
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq areas 100
areat
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq 35 areas 100
areat
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq 35 areas 100
areat 170
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq 35 areas 100
areat 170
N˜ao ´e um igual
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Vari´aveis
class CasaRet {
public static void main
(String[] args)
{
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
areas = 10*10;
...
areaq = 7*5;
...
areat = areas + 2*areaq;
...
}
}
Ao fazermos
nome_var = valor;
estamos armazenando
valor na regi˜ao da mem´oria
correspondente a nome var
areaq 35 areas 100
areat 170
N˜ao ´e um igual
A vari´avel que recebe
sempre est´a `a esquerda
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
Divis˜ao Inteira
Que outros detalhes podemos notar da cabana?
Sala
Quarto
Banheiro
10m
5m
10m
7m
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
Divis˜ao Inteira
Que outros detalhes podemos notar da cabana?
A sala ´e quadrada → basta sabermos o lado
Sala
Quarto
Banheiro
10m
5m
10m
7m
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
Divis˜ao Inteira
Que outros detalhes podemos notar da cabana?
A sala ´e quadrada → basta sabermos o lado
Tanto o quarto quanto
o banheiro possuem
metade do lado da sala Sala
Quarto
Banheiro
10m
5m
10m
7m
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
Divis˜ao Inteira
Que outros detalhes podemos notar da cabana?
A sala ´e quadrada → basta sabermos o lado
Tanto o quarto quanto
o banheiro possuem
metade do lado da sala
Vamos reescrever o
programa...
Sala
Quarto
Banheiro
10m
5m
10m
7m
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
Divis˜ao Inteira
class CasaRet {
public static void main(String[] args) {
int lateral = 10; // comprimento da lateral da cabana
int cquarto = 7; // comprimento da lateral maior do quarto
int areaq; // ´area do quarto
int areas; // ´area da sala
int areat; // ´area total
System.out.println("Programa para c´alculo da ´area da casa");
areas = lateral*lateral;
System.out.println("A ´area da sala ´e "+areas);
areaq = cquarto*(lateral/2);
System.out.println("A ´area do quarto ´e "+areaq);
System.out.println("A ´area do banheiro ´e "+areaq);
areat = areas + 2*areaq;
System.out.println("A ´area total ´e "+areat);
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 25 / 35
Divis˜ao Inteira
E qual a vantagem disso?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
Divis˜ao Inteira
E qual a vantagem disso?
Reduz nossa dependˆencia a valores externos: antes eram 3
(10, 7 e 5), agora s˜ao 2 (10 e 7)
Reduz a chance de erros na substitui¸c˜ao
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
Divis˜ao Inteira
E qual a vantagem disso?
Reduz nossa dependˆencia a valores externos: antes eram 3
(10, 7 e 5), agora s˜ao 2 (10 e 7)
Reduz a chance de erros na substitui¸c˜ao
E a desvantagem?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
Divis˜ao Inteira
E qual a vantagem disso?
Reduz nossa dependˆencia a valores externos: antes eram 3
(10, 7 e 5), agora s˜ao 2 (10 e 7)
Reduz a chance de erros na substitui¸c˜ao
E a desvantagem?
Gasta mais mem´oria, com as vari´aveis lateral e cquarto
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
Divis˜ao Inteira
class CasaRet {
public static void main(
String[] args) {
int lateral = 11;
int cquarto = 7;
...
System.out.println(...);
areas = lateral*lateral;
System.out.println(...);
areaq = cquarto*(lateral/2);
System.out.println(...);
System.out.println(...);
System.out.println("A ´area
total ´e " + areat);
}
}
E se a lateral for 11?
Qual a sa´ıda?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
Divis˜ao Inteira
class CasaRet {
public static void main(
String[] args) {
int lateral = 11;
int cquarto = 7;
...
System.out.println(...);
areas = lateral*lateral;
System.out.println(...);
areaq = cquarto*(lateral/2);
System.out.println(...);
System.out.println(...);
System.out.println("A ´area
total ´e " + areat);
}
}
E se a lateral for 11?
Qual a sa´ıda?
Programa para c´alculo da
´area da casa
A ´area da sala ´e 121
A ´area do banheiro ´e 35
A ´area do quarto ´e 35
A ´area total ´e 191
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
Divis˜ao Inteira
class CasaRet {
public static void main(
String[] args) {
int lateral = 11;
int cquarto = 7;
...
System.out.println(...);
areas = lateral*lateral;
System.out.println(...);
areaq = cquarto*(lateral/2);
System.out.println(...);
System.out.println(...);
System.out.println("A ´area
total ´e " + areat);
}
}
E se a lateral for 11?
Qual a sa´ıda?
Programa para c´alculo da
´area da casa
A ´area da sala ´e 121
A ´area do banheiro ´e 35
A ´area do quarto ´e 35
A ´area total ´e 191
Fez 11 ÷ 2 = 5 ... Por
quˆe?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
Divis˜ao Inteira
O problema est´a na linha
areaq = cquarto*(lateral/2);
Como tanto lateral quanto 2 s˜ao inteiros, o
compilador acha que essa ´e uma divis˜ao inteira,
dando somente o quociente da divis˜ao:
11 2
1 5
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 28 / 35
Divis˜ao Inteira
E como obtemos o resto da divis˜ao?
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
Divis˜ao Inteira
E como obtemos o resto da divis˜ao?
Usando % em vez de /. Ex:
public static void main(String[] args) {
System.out.println("Parte inteira: " + 11/2);
System.out.println("Resto: " + 11%2);
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
Divis˜ao Inteira
E como obtemos o resto da divis˜ao?
Usando % em vez de /. Ex:
public static void main(String[] args) {
System.out.println("Parte inteira: " + 11/2);
System.out.println("Resto: " + 11%2);
}
E a sa´ıda ser´a:
Parte inteira: 5
Resto: 1
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
Divis˜ao Inteira
Mas isso n˜ao resolve nosso problema
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
Divis˜ao Inteira
Mas isso n˜ao resolve nosso problema
Queremos ver 38.5 na tela
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
Divis˜ao Inteira
Mas isso n˜ao resolve nosso problema
Queremos ver 38.5 na tela
Problema:
38.5 ´e um n´umero real, e nossas vari´aveis s˜ao inteiras
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
Divis˜ao Inteira
Mas isso n˜ao resolve nosso problema
Queremos ver 38.5 na tela
Problema:
38.5 ´e um n´umero real, e nossas vari´aveis s˜ao inteiras
Solu¸c˜ao:
Troque o tipo das vari´aveis
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
Divis˜ao Inteira
class CasaRet {
public static void main(String[] args) {
float lateral = 11;
float cquarto = 7;
float areaq;
float areas;
float areat;
System.out.println("Programa para c´alculo da ´area da casa");
areas = lateral*lateral;
System.out.println("A ´area da sala ´e "+areas);
areaq = cquarto*(lateral/2);
System.out.println("A ´area do quarto ´e "+areaq);
System.out.println("A ´area do banheiro ´e "+areaq);
areat = areas + 2*areaq;
System.out.println("A ´area total ´e " + areat);
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 31 / 35
Tipos Num´ericos
Tipo Conjunto Valor m´ınimo Valor m´aximo Bits
byte inteiro -128 127 8
short inteiro -32.768 32.767 16
int inteiro -2.147.483.648 2.147.483.647 32
long inteiro -9.223.372.036.854.775.808 9.223.372.036.854.775.807 64
float real – – 32
double real – – 64
float e double obedecem ao IEEE Standard for
Binary Floating-Point Arithmetic, ANSI/IEEE
Standard 754-1985
Tem representa¸c˜oes para infinito (positivo e negativo) e para
valores n˜ao num´ericos (NaN), usado, por exemplo, em casos
de divis˜ao por zero, raiz de n´umero negativo etc
https://docs.oracle.com/javase/specs/#4.2.3
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 32 / 35
Tipos Num´ericos
O seguinte c´odigo ir´a dar problema:
class CasaRet {
public static void main(String[] args) {
float x = 1.8;
}
}
N˜ao h´a nada errado com ele – o java, quando vˆe um
n´umero assim, pressup˜oe ser double
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 33 / 35
Tipos Num´ericos
O seguinte c´odigo ir´a dar problema:
class CasaRet {
public static void main(String[] args) {
float x = 1.8F;
}
}
N˜ao h´a nada errado com ele – o java, quando vˆe um
n´umero assim, pressup˜oe ser double
Devemos ent˜ao dizer a ele que ´e um float
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 33 / 35
Tipos Num´ericos
Curiosidade: gerando o NaN...
class CasaRet {
public static void main(String[] args) {
double x = 0;
double y = 0;
System.out.println(x/y);
}
}
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 34 / 35
Videoaula
https://www.youtube.com/watch?v=31K-3O1NA7k
(parcial)
https://www.youtube.com/watch?v=XR1dPQ_SKH0
e
https://www.youtube.com/watch?v=tZXF4Ar_w58
(parcial)
Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 35 / 35

Mais conteúdo relacionado

Semelhante a (ACH2001) Introdução à Programação - Aula 04

Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
Guilherme André Turci
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programação
aldoirjava
 
Curso de Java #08 - Operadores Lógicos e Relacionais
Curso de Java #08 - Operadores Lógicos e RelacionaisCurso de Java #08 - Operadores Lógicos e Relacionais
Curso de Java #08 - Operadores Lógicos e Relacionais
Curso em Vídeo - Cursos Grátis com Certificado
 
(ACH2001) Introdução à Programação - Aula 14
(ACH2001) Introdução à Programação - Aula 14(ACH2001) Introdução à Programação - Aula 14
(ACH2001) Introdução à Programação - Aula 14
Norton Trevisan Roman
 
Workshop de Certificação Java - Onixlab
Workshop de Certificação Java - OnixlabWorkshop de Certificação Java - Onixlab
Workshop de Certificação Java - Onixlab
Thiago Teixeira
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
Norton Trevisan Roman
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core Java
Elaine Cecília Gatto
 
Tutorial java swing
Tutorial java swingTutorial java swing
Tutorial java swing
izalem nascimento
 

Semelhante a (ACH2001) Introdução à Programação - Aula 04 (8)

Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programação
 
Curso de Java #08 - Operadores Lógicos e Relacionais
Curso de Java #08 - Operadores Lógicos e RelacionaisCurso de Java #08 - Operadores Lógicos e Relacionais
Curso de Java #08 - Operadores Lógicos e Relacionais
 
(ACH2001) Introdução à Programação - Aula 14
(ACH2001) Introdução à Programação - Aula 14(ACH2001) Introdução à Programação - Aula 14
(ACH2001) Introdução à Programação - Aula 14
 
Workshop de Certificação Java - Onixlab
Workshop de Certificação Java - OnixlabWorkshop de Certificação Java - Onixlab
Workshop de Certificação Java - Onixlab
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core Java
 
Tutorial java swing
Tutorial java swingTutorial java swing
Tutorial java swing
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
Mary Alvarenga
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
edivirgesribeiro1
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
Suzy De Abreu Santana
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
1000a
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
MessiasMarianoG
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
fernandacosta37763
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
joseanesouza36
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Centro Jacques Delors
 

Último (20)

Sinais de pontuação
Sinais de pontuaçãoSinais de pontuação
Sinais de pontuação
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptxAula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
Aula história , caracteristicas e esteriótipos em relação a DANÇA DE SALAO.pptx
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdfPowerPoint Newton gostava de Ler - Saber em Gel.pdf
PowerPoint Newton gostava de Ler - Saber em Gel.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
759-fortaleza-resultado-definitivo-prova-objetiva-2024-05-28.pdf
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
 
Educação trabalho HQ em sala de aula uma excelente ideia
Educação  trabalho HQ em sala de aula uma excelente  ideiaEducação  trabalho HQ em sala de aula uma excelente  ideia
Educação trabalho HQ em sala de aula uma excelente ideia
 
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
Folheto | Centro de Informação Europeia Jacques Delors (junho/2024)
 

(ACH2001) Introdução à Programação - Aula 04

  • 1. Aula 04 – Um Primeiro Programa (Cont.) Norton Trevisan Roman 19 de mar¸co de 2020 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 1 / 35
  • 2. Sa´ıda B´asica Seria interessante darmos tamb´em uma mensagem situando o usu´ario: class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
  • 3. Sa´ıda B´asica Seria interessante darmos tamb´em uma mensagem situando o usu´ario: class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); } } E o que isso faz ao rodarmos javac CasaRet.java e java CasaRet? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
  • 4. Sa´ıda B´asica Seria interessante darmos tamb´em uma mensagem situando o usu´ario: class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); } } E o que isso faz ao rodarmos javac CasaRet.java e java CasaRet? Escreve: “Programa para c´alculo da ´area da casa” Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 2 / 35
  • 5. Sa´ıda B´asica E se quis´essemos escrever Programa para c´alculo da ´area da casa Como far´ıamos? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 3 / 35
  • 6. Sa´ıda B´asica E se quis´essemos escrever Programa para c´alculo da ´area da casa Como far´ıamos? Alternativa 1: separando em dois comandos class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo"); System.out.println("da ´area da casa"); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 3 / 35
  • 7. Sa´ıda B´asica Alternativa 2: usando o caractere especial n class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculonda ´area da casa"); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 4 / 35
  • 8. Opera¸c˜oes Aritm´eticas J´a alertamos o usu´ario de que o programa come¸cou Falta ainda executar a tarefa Para isso precisaremos saber como fazer c´alculos: Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 5 / 35
  • 9. Opera¸c˜oes Aritm´eticas J´a alertamos o usu´ario de que o programa come¸cou Falta ainda executar a tarefa Para isso precisaremos saber como fazer c´alculos: Matem´atica Java 2 + 3 2 + 3 2 − 3 2 − 3 2 × 3 2 ∗ 3 2 ÷ 3 2/3 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 5 / 35
  • 10. Relembrando o problema e o algoritmo Calcular a ´area da sala Multiplicar a largura pelo comprimento da sala Dizer ao usu´ario Calcular a ´area do quarto Multiplicar a largura pelo comprimento do quarto Dizer ao usu´ario Calcular a ´area do banheiro Ser´a igual `a do quarto Dizer ao usu´ario Sala Quarto Banheiro 10m 5m 10m 7m Calcular a ´area total Somar as ´areas do quarto, banheiro e sala Dizer ao usu´ario Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 6 / 35
  • 11. Opera¸c˜oes Aritm´eticas Como incluir no c´odigo os c´alculos necess´arios? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
  • 12. Opera¸c˜oes Aritm´eticas Como incluir no c´odigo os c´alculos necess´arios? class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); 10*10; } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
  • 13. Opera¸c˜oes Aritm´eticas Como incluir no c´odigo os c´alculos necess´arios? class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); 10*10; } } Funciona? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
  • 14. Opera¸c˜oes Aritm´eticas Como incluir no c´odigo os c´alculos necess´arios? class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); 10*10; } } Funciona? $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 7 / 35
  • 15. Opera¸c˜oes Aritm´eticas O que faltou? $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
  • 16. Opera¸c˜oes Aritm´eticas O que faltou? Onde guardamos o resultado? N˜ao guardamos em lugar nenhum $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
  • 17. Opera¸c˜oes Aritm´eticas O que faltou? Onde guardamos o resultado? N˜ao guardamos em lugar nenhum $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Uma solu¸c˜ao seria usarmos o println para calcular o resultado Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
  • 18. Opera¸c˜oes Aritm´eticas O que faltou? Onde guardamos o resultado? N˜ao guardamos em lugar nenhum $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Uma solu¸c˜ao seria usarmos o println para calcular o resultado class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println(10*10); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
  • 19. Opera¸c˜oes Aritm´eticas O que faltou? Onde guardamos o resultado? N˜ao guardamos em lugar nenhum $ javac CasaRet.java CasaRet.java:10: not a statement 10*10; ^ 1 error Uma solu¸c˜ao seria usarmos o println para calcular o resultado class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println(10*10); } } Nesse caso, o resultado seria trabalhado internamente (mais adiante veremos) Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 8 / 35
  • 20. Opera¸c˜oes Aritm´eticas class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println(10*10); } } E... Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
  • 21. Opera¸c˜oes Aritm´eticas class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println(10*10); } } E... $ javac CasaRet.java $ java CasaRet Programa para c´alculo da ´area da casa 100 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
  • 22. Opera¸c˜oes Aritm´eticas class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println(10*10); } } E... $ javac CasaRet.java $ java CasaRet Programa para c´alculo da ´area da casa 100 Funcionou. Meio feio, mas funcional Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 9 / 35
  • 23. Opera¸c˜oes Aritm´eticas Ent˜ao... class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e " + 10*10); System.out.println("A ´area do quarto ´e " + 5*7); System.out.println("A ´area do banheiro ´e " + 5*7); System.out.println("A ´area total ´e " + 10*10 + 5*7 + 5*7); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 10 / 35
  • 24. Opera¸c˜oes Aritm´eticas Vai funcionar? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
  • 25. Opera¸c˜oes Aritm´eticas Vai funcionar? $ javac CasaRet.java $ java CasaRet Programa para c´alculo da ´area da casa A ´area da sala ´e 100 A ´area do quarto ´e 35 A ´area do banheiro ´e 35 A ´area total ´e 1003535 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
  • 26. Opera¸c˜oes Aritm´eticas Vai funcionar? $ javac CasaRet.java $ java CasaRet Programa para c´alculo da ´area da casa A ´area da sala ´e 100 A ´area do quarto ´e 35 A ´area do banheiro ´e 35 A ´area total ´e 1003535 1003535???? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 11 / 35
  • 27. Opera¸c˜oes Aritm´eticas O que houve? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
  • 28. Opera¸c˜oes Aritm´eticas O que houve? Ao fazermos System.out.println("A ´area total ´e " + 10*10 + 5*7 + 5*7); dissemos ao sistema: “escreva o resultado de 10 × 10 e ent˜ao de 5 × 7 e ent˜ao de 5 × 7” Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
  • 29. Opera¸c˜oes Aritm´eticas O que houve? Ao fazermos System.out.println("A ´area total ´e " + 10*10 + 5*7 + 5*7); dissemos ao sistema: “escreva o resultado de 10 × 10 e ent˜ao de 5 × 7 e ent˜ao de 5 × 7” Que fazer? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
  • 30. Opera¸c˜oes Aritm´eticas O que houve? Ao fazermos System.out.println("A ´area total ´e " + 10*10 + 5*7 + 5*7); dissemos ao sistema: “escreva o resultado de 10 × 10 e ent˜ao de 5 × 7 e ent˜ao de 5 × 7” Que fazer? System.out.println("A ´area total ´e "+ (10*10 + 5*7 + 5*7)); Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
  • 31. Opera¸c˜oes Aritm´eticas O que houve? Ao fazermos System.out.println("A ´area total ´e " + 10*10 + 5*7 + 5*7); dissemos ao sistema: “escreva o resultado de 10 × 10 e ent˜ao de 5 × 7 e ent˜ao de 5 × 7” Que fazer? System.out.println("A ´area total ´e "+ (10*10 + 5*7 + 5*7)); Agora dissemos: “calcule o resultado de 10 × 10 + 5 × 7+ 5 × 7 e escreva” Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 12 / 35
  • 32. Opera¸c˜oes Aritm´eticas E... $ javac CasaRet.java $ java CasaRet Programa para c´alculo da ´area da casa A ´area da sala ´e 100 A ´area do quarto ´e 35 A ´area do banheiro ´e 35 A ´area total ´e 170 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 13 / 35
  • 33. Opera¸c˜oes Aritm´eticas E como o compilador sabe em que ordem deve executar as opera¸c˜oes? Ex: 10*10 + 5*7 + 5*7 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
  • 34. Opera¸c˜oes Aritm´eticas E como o compilador sabe em que ordem deve executar as opera¸c˜oes? Ex: 10*10 + 5*7 + 5*7 Precedˆencia de operadores: Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
  • 35. Opera¸c˜oes Aritm´eticas E como o compilador sabe em que ordem deve executar as opera¸c˜oes? Ex: 10*10 + 5*7 + 5*7 Precedˆencia de operadores: Multiplica¸c˜ao e divis˜ao tˆem precedˆencia sobre soma e subtra¸c˜ao Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 14 / 35
  • 36. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 37. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 38. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 A express˜ao ´e analisada da esquerda para a direita (resultando em 27) Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 39. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 A express˜ao ´e analisada da esquerda para a direita (resultando em 27) E como mudar isso? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 40. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 A express˜ao ´e analisada da esquerda para a direita (resultando em 27) E como mudar isso? 27 / (3 * 3) Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 41. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 A express˜ao ´e analisada da esquerda para a direita (resultando em 27) E como mudar isso? 27 / (3 * 3) Os parˆenteses mudam a precedˆencia Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 42. Opera¸c˜oes Aritm´eticas E quando temos express˜oes com operadores de igual precedˆencia? Ex: 27 / 3 * 3 A express˜ao ´e analisada da esquerda para a direita (resultando em 27) E como mudar isso? 27 / (3 * 3) Os parˆenteses mudam a precedˆencia O compilador calcula primeiro o que est´a dentro deles Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 15 / 35
  • 43. Vari´aveis class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e "+ 10*10); System.out.println("A ´area do quarto ´e "+ 5*7); System.out.println("A ´area do banheiro ´e "+ 5*7); System.out.println("A ´area total ´e " + (10*10 + 5*7 + 5*7)); } } Algo de estranho nesse programa? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
  • 44. Vari´aveis class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e "+ 10*10); System.out.println("A ´area do quarto ´e "+ 5*7); System.out.println("A ´area do banheiro ´e "+ 5*7); System.out.println("A ´area total ´e " + (10*10 + 5*7 + 5*7)); } } Algo de estranho nesse programa? “5*7” ´e repetido 4 vezes no c´odigo Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
  • 45. Vari´aveis class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e "+ 10*10); System.out.println("A ´area do quarto ´e "+ 5*7); System.out.println("A ´area do banheiro ´e "+ 5*7); System.out.println("A ´area total ´e " + (10*10 + 5*7 + 5*7)); } } Algo de estranho nesse programa? “5*7” ´e repetido 4 vezes no c´odigo “10*10” repete 2 vezes Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 16 / 35
  • 46. Vari´aveis class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e "+ 10*10); System.out.println("A ´area do quarto ´e "+ 5*7); System.out.println("A ´area do banheiro ´e "+ 5*7); System.out.println("A ´area total ´e " + (10*10 + 5*7 + 5*7)); } } E se precisarmos trocar algum dos valores? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 17 / 35
  • 47. Vari´aveis class CasaRet { public static void main(String[] args) { System.out.println("Programa para c´alculo da ´area da casa"); System.out.println("A ´area da sala ´e "+ 10*10); System.out.println("A ´area do quarto ´e "+ 5*7); System.out.println("A ´area do banheiro ´e "+ 5*7); System.out.println("A ´area total ´e " + (10*10 + 5*7 + 5*7)); } } E se precisarmos trocar algum dos valores? Teremos que trocar em v´arios lugares no c´odigo Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 17 / 35
  • 48. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 49. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 50. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Calculamos a ´area da sala e guardamos na mem´oria Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 51. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Calculamos a ´area da sala e guardamos na mem´oria Calculamos a ´area do quarto e guardamos na mem´oria Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 52. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Calculamos a ´area da sala e guardamos na mem´oria Calculamos a ´area do quarto e guardamos na mem´oria Para a do banheiro, usamos a do quarto, que est´a na mem´oria Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 53. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Calculamos a ´area da sala e guardamos na mem´oria Calculamos a ´area do quarto e guardamos na mem´oria Para a do banheiro, usamos a do quarto, que est´a na mem´oria Para a ´area total, somamos a da sala com 2 vezes a do banheiro Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 54. Vari´aveis Que fazer ent˜ao para evitar as repeti¸c˜oes? Seria interessante ter algo assim: Calculamos a ´area da sala e guardamos na mem´oria Calculamos a ´area do quarto e guardamos na mem´oria Para a do banheiro, usamos a do quarto, que est´a na mem´oria Para a ´area total, somamos a da sala com 2 vezes a do banheiro Todas em mem´oria Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 18 / 35
  • 55. Vari´aveis Como guardar algo na mem´oria? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
  • 56. Vari´aveis Como guardar algo na mem´oria? Primeiro, temos que reservar um espa¸co (aloca¸c˜ao) Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
  • 57. Vari´aveis Como guardar algo na mem´oria? Primeiro, temos que reservar um espa¸co (aloca¸c˜ao) De que tamanho? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
  • 58. Vari´aveis Como guardar algo na mem´oria? Primeiro, temos que reservar um espa¸co (aloca¸c˜ao) De que tamanho? O suficiente para guardar o valor que queremos → um inteiro Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
  • 59. Vari´aveis Como guardar algo na mem´oria? Primeiro, temos que reservar um espa¸co (aloca¸c˜ao) De que tamanho? O suficiente para guardar o valor que queremos → um inteiro Como? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 19 / 35
  • 60. Vari´aveis class CasaRet { public static void main (String[] args) { // ´area do quarto int areaq; // ´area da sala int areas; // ´area total int areat; } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
  • 61. Vari´aveis class CasaRet { public static void main (String[] args) { // ´area do quarto int areaq; // ´area da sala int areas; // ´area total int areat; } } Isso diz ao compilador para reservar (alocar) espa¸co na mem´oria suficiente para 3 inteiros, dando a eles o nome de “areaq”, “areas” e “areat” Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
  • 62. Vari´aveis class CasaRet { public static void main (String[] args) { // ´area do quarto int areaq; // ´area da sala int areas; // ´area total int areat; } } Isso diz ao compilador para reservar (alocar) espa¸co na mem´oria suficiente para 3 inteiros, dando a eles o nome de “areaq”, “areas” e “areat” areaq, areas e areat s˜ao vari´aveis int ´e seu tipo Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 20 / 35
  • 63. Vari´aveis class CasaRet { public static void main (String[] args) { // ´area do quarto int areaq; // ´area da sala int areas; // ´area total int areat; } } Esquema da mem´oria: areaq 0 areas 0 areat 0 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 21 / 35
  • 64. Vari´aveis Alocado o espa¸co, podemos por algo l´a → atribui¸c˜ao Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 22 / 35
  • 65. Vari´aveis Alocado o espa¸co, podemos por algo l´a → atribui¸c˜ao class CasaRet { public static void main(String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total System.out.println("Programa para c´alculo da ´area da casa"); areas = 10*10; System.out.println("A ´area da sala ´e "+areas); areaq = 7*5; System.out.println("A ´area do quarto ´e "+areaq); System.out.println("A ´area do banheiro ´e "+areaq); areat = areas + 2*areaq; System.out.println("A ´area total ´e " + areat); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 22 / 35
  • 66. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 67. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 68. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq areas Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 69. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq areas areat Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 70. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq areas 100 areat Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 71. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq 35 areas 100 areat Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 72. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq 35 areas 100 areat 170 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 73. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq 35 areas 100 areat 170 N˜ao ´e um igual Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 74. Vari´aveis class CasaRet { public static void main (String[] args) { int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total areas = 10*10; ... areaq = 7*5; ... areat = areas + 2*areaq; ... } } Ao fazermos nome_var = valor; estamos armazenando valor na regi˜ao da mem´oria correspondente a nome var areaq 35 areas 100 areat 170 N˜ao ´e um igual A vari´avel que recebe sempre est´a `a esquerda Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 23 / 35
  • 75. Divis˜ao Inteira Que outros detalhes podemos notar da cabana? Sala Quarto Banheiro 10m 5m 10m 7m Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
  • 76. Divis˜ao Inteira Que outros detalhes podemos notar da cabana? A sala ´e quadrada → basta sabermos o lado Sala Quarto Banheiro 10m 5m 10m 7m Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
  • 77. Divis˜ao Inteira Que outros detalhes podemos notar da cabana? A sala ´e quadrada → basta sabermos o lado Tanto o quarto quanto o banheiro possuem metade do lado da sala Sala Quarto Banheiro 10m 5m 10m 7m Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
  • 78. Divis˜ao Inteira Que outros detalhes podemos notar da cabana? A sala ´e quadrada → basta sabermos o lado Tanto o quarto quanto o banheiro possuem metade do lado da sala Vamos reescrever o programa... Sala Quarto Banheiro 10m 5m 10m 7m Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 24 / 35
  • 79. Divis˜ao Inteira class CasaRet { public static void main(String[] args) { int lateral = 10; // comprimento da lateral da cabana int cquarto = 7; // comprimento da lateral maior do quarto int areaq; // ´area do quarto int areas; // ´area da sala int areat; // ´area total System.out.println("Programa para c´alculo da ´area da casa"); areas = lateral*lateral; System.out.println("A ´area da sala ´e "+areas); areaq = cquarto*(lateral/2); System.out.println("A ´area do quarto ´e "+areaq); System.out.println("A ´area do banheiro ´e "+areaq); areat = areas + 2*areaq; System.out.println("A ´area total ´e "+areat); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 25 / 35
  • 80. Divis˜ao Inteira E qual a vantagem disso? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
  • 81. Divis˜ao Inteira E qual a vantagem disso? Reduz nossa dependˆencia a valores externos: antes eram 3 (10, 7 e 5), agora s˜ao 2 (10 e 7) Reduz a chance de erros na substitui¸c˜ao Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
  • 82. Divis˜ao Inteira E qual a vantagem disso? Reduz nossa dependˆencia a valores externos: antes eram 3 (10, 7 e 5), agora s˜ao 2 (10 e 7) Reduz a chance de erros na substitui¸c˜ao E a desvantagem? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
  • 83. Divis˜ao Inteira E qual a vantagem disso? Reduz nossa dependˆencia a valores externos: antes eram 3 (10, 7 e 5), agora s˜ao 2 (10 e 7) Reduz a chance de erros na substitui¸c˜ao E a desvantagem? Gasta mais mem´oria, com as vari´aveis lateral e cquarto Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 26 / 35
  • 84. Divis˜ao Inteira class CasaRet { public static void main( String[] args) { int lateral = 11; int cquarto = 7; ... System.out.println(...); areas = lateral*lateral; System.out.println(...); areaq = cquarto*(lateral/2); System.out.println(...); System.out.println(...); System.out.println("A ´area total ´e " + areat); } } E se a lateral for 11? Qual a sa´ıda? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
  • 85. Divis˜ao Inteira class CasaRet { public static void main( String[] args) { int lateral = 11; int cquarto = 7; ... System.out.println(...); areas = lateral*lateral; System.out.println(...); areaq = cquarto*(lateral/2); System.out.println(...); System.out.println(...); System.out.println("A ´area total ´e " + areat); } } E se a lateral for 11? Qual a sa´ıda? Programa para c´alculo da ´area da casa A ´area da sala ´e 121 A ´area do banheiro ´e 35 A ´area do quarto ´e 35 A ´area total ´e 191 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
  • 86. Divis˜ao Inteira class CasaRet { public static void main( String[] args) { int lateral = 11; int cquarto = 7; ... System.out.println(...); areas = lateral*lateral; System.out.println(...); areaq = cquarto*(lateral/2); System.out.println(...); System.out.println(...); System.out.println("A ´area total ´e " + areat); } } E se a lateral for 11? Qual a sa´ıda? Programa para c´alculo da ´area da casa A ´area da sala ´e 121 A ´area do banheiro ´e 35 A ´area do quarto ´e 35 A ´area total ´e 191 Fez 11 ÷ 2 = 5 ... Por quˆe? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 27 / 35
  • 87. Divis˜ao Inteira O problema est´a na linha areaq = cquarto*(lateral/2); Como tanto lateral quanto 2 s˜ao inteiros, o compilador acha que essa ´e uma divis˜ao inteira, dando somente o quociente da divis˜ao: 11 2 1 5 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 28 / 35
  • 88. Divis˜ao Inteira E como obtemos o resto da divis˜ao? Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
  • 89. Divis˜ao Inteira E como obtemos o resto da divis˜ao? Usando % em vez de /. Ex: public static void main(String[] args) { System.out.println("Parte inteira: " + 11/2); System.out.println("Resto: " + 11%2); } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
  • 90. Divis˜ao Inteira E como obtemos o resto da divis˜ao? Usando % em vez de /. Ex: public static void main(String[] args) { System.out.println("Parte inteira: " + 11/2); System.out.println("Resto: " + 11%2); } E a sa´ıda ser´a: Parte inteira: 5 Resto: 1 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 29 / 35
  • 91. Divis˜ao Inteira Mas isso n˜ao resolve nosso problema Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
  • 92. Divis˜ao Inteira Mas isso n˜ao resolve nosso problema Queremos ver 38.5 na tela Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
  • 93. Divis˜ao Inteira Mas isso n˜ao resolve nosso problema Queremos ver 38.5 na tela Problema: 38.5 ´e um n´umero real, e nossas vari´aveis s˜ao inteiras Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
  • 94. Divis˜ao Inteira Mas isso n˜ao resolve nosso problema Queremos ver 38.5 na tela Problema: 38.5 ´e um n´umero real, e nossas vari´aveis s˜ao inteiras Solu¸c˜ao: Troque o tipo das vari´aveis Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 30 / 35
  • 95. Divis˜ao Inteira class CasaRet { public static void main(String[] args) { float lateral = 11; float cquarto = 7; float areaq; float areas; float areat; System.out.println("Programa para c´alculo da ´area da casa"); areas = lateral*lateral; System.out.println("A ´area da sala ´e "+areas); areaq = cquarto*(lateral/2); System.out.println("A ´area do quarto ´e "+areaq); System.out.println("A ´area do banheiro ´e "+areaq); areat = areas + 2*areaq; System.out.println("A ´area total ´e " + areat); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 31 / 35
  • 96. Tipos Num´ericos Tipo Conjunto Valor m´ınimo Valor m´aximo Bits byte inteiro -128 127 8 short inteiro -32.768 32.767 16 int inteiro -2.147.483.648 2.147.483.647 32 long inteiro -9.223.372.036.854.775.808 9.223.372.036.854.775.807 64 float real – – 32 double real – – 64 float e double obedecem ao IEEE Standard for Binary Floating-Point Arithmetic, ANSI/IEEE Standard 754-1985 Tem representa¸c˜oes para infinito (positivo e negativo) e para valores n˜ao num´ericos (NaN), usado, por exemplo, em casos de divis˜ao por zero, raiz de n´umero negativo etc https://docs.oracle.com/javase/specs/#4.2.3 Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 32 / 35
  • 97. Tipos Num´ericos O seguinte c´odigo ir´a dar problema: class CasaRet { public static void main(String[] args) { float x = 1.8; } } N˜ao h´a nada errado com ele – o java, quando vˆe um n´umero assim, pressup˜oe ser double Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 33 / 35
  • 98. Tipos Num´ericos O seguinte c´odigo ir´a dar problema: class CasaRet { public static void main(String[] args) { float x = 1.8F; } } N˜ao h´a nada errado com ele – o java, quando vˆe um n´umero assim, pressup˜oe ser double Devemos ent˜ao dizer a ele que ´e um float Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 33 / 35
  • 99. Tipos Num´ericos Curiosidade: gerando o NaN... class CasaRet { public static void main(String[] args) { double x = 0; double y = 0; System.out.println(x/y); } } Norton Trevisan Roman Aula 04 – Um Primeiro Programa (Cont.) 19 de mar¸co de 2020 34 / 35