Para nós, pode ser 5 ou 6. Pro Java é sempre 5.
Se fizer a soma primeiro, é 6: 1+2 x 2 = 3 x 2 = 6
Se fizer o produto primeiro, é 5: 1 + 2x2 = 1 + 4 = 5
E o computador? Como faz? E se ele se confundir também?
E 5 dividido por 2 ?
2.5 ? Pro Java pode ser 2.5 ou 2.
Operações Matemáticas em Computação
Primeiro, esqueça o 'x' como sinal de multiplicação, de agora em diante é '*'.Segundo, divisão se representa com o '/'. Por exemplo, 4/2 = 2
Terceiro, tudo em computação é matemática.
Aliás, computação vem de computar, ou seja, contar.
Até quando você escreve em Java, a JVM(Java Virtual Machine) troca informações com sua máquina na forma de matemática (em bits).
Até as imagens, são divididas em pequenos blocos, são numerados e cada bloquinho é pintado com uma cor devidamente identificada.
Adivinhe como é essa identificação? Claro, por meio de números.
Ou achou que a máquina ia dividir em 'rosa emo', 'azul bebê' ou 'azul piscina'?
Adição, Subtração e Multiplicação
Essas três não tem muitas dificuldade. São 'zona'. Você pode somar, subtrair e multiplicar o que quiser.Á rigor, tudo é uma soma.
Subtração é uma uma soma com números negativos: a - b = a + (-b)
Multiplicação é uma soma repetida várias vezes: a * b = a + a + a + a ... + a (o 'a' se repete 'b' vezes).
O seguinte código pede dois números inteiros (se não for inteiro, terá erros) e mostra o resultado da soma, subtração e multiplicação, sem segredo:
import java.util.Scanner;
public class Operacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1;
int num2;
System.out.print("Digite o primeiro número: ");
num1 = entrada.nextInt();
System.out.print("Digite o segundo número: ");
num2 = entrada.nextInt();
System.out.println();
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2) );
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2) );
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2) );
}
}
Caso não for usar inteiros (ou for) aconselho a usar 'printf', pois você pode formar a saída.
Formatação com printf
Uma forma diferente de exibir números é:System.out.printf("número: %d", num1);
O exemplo passado ficaria:
import java.util.Scanner;
public class Operacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1;
int num2;
System.out.print("Digite o primeiro número: ");
num1 = entrada.nextInt();
System.out.print("Digite o segundo número: ");
num2 = entrada.nextInt();
System.out.printf("\n%d + %d = %d\n", num1, num2, num1 + num2);
System.out.printf("%d - %d = %d\n", num1, num2, num1 - num2);
System.out.printf("%d * %d = %d\n", num1, num2, num1 * num2);
}
}
Ou seja, o '%d' será substituído pelo valor de %d.
Para substituir valores de variáveis float, use %f
Com multiplicação e divisão de números decimais, a coisa pode ficar bagunçada por conta das vírgulas. Por isso, vamos adicionar esse '.2' entre o '%' e o 'f', ficando %.2f.
Isso quer dizer que, após o ponto decimal, imprimir somente duas casas decimais.
Veja:
import java.util.Scanner;
public class Operacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float num1;
float num2;
System.out.print("Digite o primeiro número: ");
num1 = entrada.nextFloat();
System.out.print("Digite o segundo número: ");
num2 = entrada.nextFloat();
System.out.printf("\n%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
System.out.printf("%.2f - %.2f = %.2f\n", num1, num2, num1 - num2);
System.out.printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2);
System.out.printf("%.2f / %.2f = %.2f\n", num1, num2, num1 / num2);
}
}
Experimente tirar o '.2' e veja a bagunça que fica na hora de multiplicar e dividir.
Divisão
Não divida nada por zero. Isso não existe.Não é infinito (ou -infinito). É uma indefinição matemática.
Outra detalhe que você deve atentar é a divisão de inteiros. Quanto é 5/2?
Vamos ver o que o Java nos dizer com o seguinte programa:
import java.util.Scanner;
public class Operacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1=5;
int num2=2;
System.out.println(num1/num2);
}
}
run:
2
BUILD SUCCESSFUL (total time: 0 seconds)
2 ?
"Putz, como meu computador é burro!"
Calma, agora teste:
import java.util.Scanner;
public class Operacoes {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float num1=5;
float num2=2;
System.out.println(num1/num2);
}
}
run:
2.5
BUILD SUCCESSFUL (total time: 0 seconds)
Ou seja, divisões de inteiros retornam resultados inteiros. Mesmo se o resultado 'de verdade' fosse 2.999999, o Java retornaria somente a parte inteira, que é 2, e não 3.
Em termos técnicos, o Java trunca a parte decimal. Simplesmente descarta ela.
Resto da divisão
Voltando ao 5 / 2: caso a operação seja feita com inteiro, você sabe que o resultado é 2. Porém, terá um resto, que será 1.Pois: 5 = 2 * 2 + 1
O símbolo de resto da divisão é %.
Assim, 8 % 3 = 2. Pois: 8 = 3*2 + 2
Em matemática chamamos de 'mod', de módulo: 8 mod 3 = 2
No Brasil, é aquele 'resto' que deixávamos lá embaixo nas continhas do colégio:
Teste:
public class Operacoes {
public static void main(String[] args) {
System.out.println(2009%19);
}
}
Veremos e usaremos bastante o resto da divisão em várias questões/algoritmos.
Por exemplo, todo número par deixa resto da divisão por 2 igual à 0. Isso é uma informação valiosíssima.
Precedência dos operadores e uso dos parênteses
Para não existir confusão e mais de um resultado possível, o Java adota uma precedência de seus operadores:1o: Multiplicação (*), Divisão (/) e resto da divisão (%) são calculados primeiro. Caso existam mais de um na mesma expressão, o Java impõe a precedência como sendo da esquerda pra direita na expressão.
2o: Adição (+) e Subtração(-) depois dos operadores acima serem calculados, esses são calculados. Caso existam mais de um na mesma expressão, o Java impõe a precedência como sendo da esquerda pra direita na expressão.
Para não existir confusão e para deixar seu código sempre mais claro, separe as expressões com parênteses. Por exemplo, como se calcula média dos números a e b?
a + b / 2 -> errado
(a + b)/2 -> certo
Os parentêses formam um bloco. É como se o que estivesse ali dentro fosse calculado separadamente.
No exemplo de inicio deste capítulo: 1 + 2 * 2
Dependendo do que você quer, divida em em parantêses que ficará implícito.
Veja:
1 + 2 * 2 = 5 (precedência do * perante ao +, em Java)
(1 + 2) * 2 = 6
1 + (2 * 2) = 5
É fácil ver que fica mais claro e organizado com o uso dos parênteses.
Exercícios:
1. Crie um programa que recebe suas três notas (colégio, faculdade) e calcule a média final.
2. Crie um programa que receba a altura e o peso do usuário, e diga seu IMC (Índice de Massa Corporal), dado pela fórmula:
7 comentários:
Fiz dessa forma:
package exerciciooperacoes;
import java.util.Scanner;
public class ExercicioOperacoes {
//1. Crie um programa que recebe suas três notas (colégio, faculdade) e calcule a média final.
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num1;
int num2;
int num3;
System.out.println("Digite o primeiro numero");
num1 = entrada.nextInt();
System.out.println("Digite o segundo numero");
num2 = entrada.nextInt();
System.out.println("Digite o terceiro numero");
num3 = entrada.nextInt();
System.out.println((num1 + num2 + num3)/3);
//2. Crie um programa que receba a altura e o peso do usuário, e diga seu IMC (Índice de Massa Corporal), dado pela fórmula:
//IMC = Peso/altura2
int num4;
float num5;
System.out.println("Digite seu peso");
num4 = entrada.nextInt();
System.out.println("Digite sua altura");
num5 = entrada.nextFloat();
System.out.println(num4/(num5*num5));
}
}
Fiz uma simulação e ficou assim :
//Primeiramente quero agradecer ao Blog pelo excelente conhecimento fornecido.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication7;
import java.io.PrintStream;
import java.util.Scanner;
/**
*
* @author xsamu
*/
public class JavaApplication7 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float num1;
float num2;
float num3;
System.out.println("Vamos calcular sua media de 3 notas");
System.out.print("Digite a primeira nota:");
num1 = entrada.nextFloat();
System.out.print("digite a segunda nota:");
num2 = entrada.nextFloat();
System.out.print("Digete a terceira nota:");
num3 = entrada.nextFloat();
System.out.printf("\nAqui está a sua media:\n"+"("+"%.2f+%.2f+%.2f"+")"+"/3"+" = %.2f",num1 ,num2 ,num3 ,(num1+num2+num3)/3);
float num4;
float num5;
System.out.println("Vamos Calcular sua ICM");
System.out.println("Coloque aquisua altura:");
num4 = entrada.nextFloat();
System.out.println("Agora indique o seu peso:");
num5 = entrada.nextFloat();
System.out.printf("Aqui está o seu ICM:\n"+"%.2f/%.2f*%.2f = %.2f",num4,num5,num5, (num5*num5)/num4);
System.out.println(" Obrigado.");
}
}
Eu acabei fazendo uma simulação:
//Primeiramente quero agradecer ao Blog pelo o excelente estudo fornecido.
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication7;
import java.io.PrintStream;
import java.util.Scanner;
/**
*
* @author xsamu
*/
public class JavaApplication7 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float num1;
float num2;
float num3;
System.out.println("Vamos calcular sua media de 3 notas");
System.out.print("Digite a primeira nota:");
num1 = entrada.nextFloat();
System.out.print("digite a segunda nota:");
num2 = entrada.nextFloat();
System.out.print("Digete a terceira nota:");
num3 = entrada.nextFloat();
System.out.printf("\nAqui está a sua media:\n"+"("+"%.2f+%.2f+%.2f"+")"+"/3"+" = %.2f",num1 ,num2 ,num3 ,(num1+num2+num3)/3);
float num4;
float num5;
System.out.println("Vamos Calcular sua ICM");
System.out.println("Coloque aquisua altura:");
num4 = entrada.nextFloat();
System.out.println("Agora indique o seu peso:");
num5 = entrada.nextFloat();
System.out.printf("Aqui está o seu ICM:\n"+"%.2f/%.2f*%.2f = %.2f",num4,num5,num5, (num5*num5)/num4);
System.out.println(" Obrigado.");
}
}
Exercício 1:
package com.mycompany.olamundo;
import java.util.Scanner;
public class OlaMundo {
public static void main(String[] args){
float nota1;
float nota2;
float nota3;
float media;
Scanner entrada = new Scanner(System.in);
System.out.println("Digite a primeira nota: ");
nota1 = entrada.nextFloat();
System.out.println("Digite a segunda nota: ");
nota2 = entrada.nextFloat();
System.out.println("Digite a terceira nota: ");
nota3 = entrada.nextFloat();
media = (nota1 + nota2 + nota3) / 3;
System.out.printf("As suas notas são: %.1f, %.1f e %.1f e a sua média é %.1f", nota1, nota2, nota3, media);
}
}
Exercício 2:
package com.mycompany.olamundo;
import java.util.Scanner;
public class OlaMundo{
public static void main(String[] args){
float altura;
float peso;
float imc;
Scanner scan = new Scanner(System.in);
System.out.println("Qual sua altura? ");
altura = scan.nextFloat();
System.out.println("Qual seu peso? ");
peso = scan.nextFloat();
imc = peso / (altura * altura);
System.out.printf("Seu peso é %.1f e sua altura é %.1f e seu IMC é %.1f", peso, altura, imc);
}
}
public class Imc {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float altura;
float peso;
float imc;
System.out.println("Entre com a sua altura: ");
altura = entrada.nextFloat();
System.out.println("Entre com a seu peso: ");
peso = entrada.nextFloat();
imc = peso /(altura*altura);
System.out.println("seu indice de massa corporea é: " + imc);
}
}
// MEDIA DE NOTAS
import java.util.Scanner;
public class ProgMateEXERCICIOSMediaNotas {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float nota1;
float nota2;
float nota3;
System.out.println("Digite sua primeira nota: ");
nota1 = entrada.nextFloat();
System.out.println("Digite sua segunda nota: ");
nota2 = entrada.nextFloat();
System.out.println("Digite sua terceira nota: ");
nota3 = entrada.nextFloat();
System.out.printf("Sua média é: ");
System.out.println((nota1 + nota2 + nota3)/3);
}
}
// RESULTADO
//Digite sua primeira nota:
8
Digite sua segunda nota:
5
Digite sua terceira nota:
4
Sua média é: 5.6666665
// IMC - Deu certo, porém nãos sei se foi formatado do jeito correto!
import java.util.Scanner;
public class ProgMatematicaIMC {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float peso;
float altura;
System.out.println("Calcule seu IMC");
System.out.println("Coloque sua altura: ");
altura = entrada.nextFloat();
System.out.println("Coloque seu peso: ");
peso = entrada.nextFloat();
System.out.printf("\nAqui esta o seu IMC: " + peso / (altura*altura));
}
}
// RESULTADO
//Calcule seu IMC
Coloque sua altura:
170
Coloque seu peso:
73
Aqui esta o seu IMC: 0.0025259515
import java.util.Scanner;
public class ProgMateEXERCICIOSMediaNotas {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
float nota1;
float nota2;
float nota3;
System.out.println("Digite sua primeira nota: ");
nota1 = entrada.nextFloat();
System.out.println("Digite sua segunda nota: ");
nota2 = entrada.nextFloat();
System.out.println("Digite sua terceira nota: ");
nota3 = entrada.nextFloat();
System.out.printf("Sua média é: ");
System.out.println((nota1 + nota2 + nota3)/3);
}
}
// RESULTADO
//Digite sua primeira nota:
8
Digite sua segunda nota:
5
Digite sua terceira nota:
4
Sua média é: 5.6666665
Postar um comentário