Pular para o conteúdo
•Leitura

Exercícios do Capítulo 4: Praticando Math, Random e Strings

Exercícios do Capítulo 4: Praticando Math, Random e Strings

Capítulo 4 de Java Ensino Didático não é apenas teoria. Ele traz exercícios práticos que fazem você entender de verdade como usar Math.random(), Math.ceil(), charAt(), substring() e companhia.

Resolvi todos os 4 exercícios principais e quero compartilhar minha solução e o que aprendi com cada um.

Exercício 1: Simulador de Dados

Desafio: Simular uma jogada de dados de 6 lados.

A gente sabe que Math.random() gera um número entre 0 (incluído) e 1 (excluído). Para transformar isso em um dado de 6 lados:

public class SimuladorDados {
    public static void main(String[] args) {
        int dado = (int)(Math.random() * 6) + 1;
        System.out.println("Você tirou: " + dado);
    }
}

Por que funciona?

  • Math.random() retorna algo como 0.5234…
  • Multiplica por 6: 3.1404…
  • Converte pra int (trunca): 3
  • Soma 1: 4

Resultado: número entre 1 e 6. Perfeito.

O “clique”: Isso me fez entender que random() é uma ferramenta versátil. Não é só “número aleatório”, é um número que você transforma pra usar.

Exercício 2: Distância Percorrida por uma Roda

Desafio: Dado o diâmetro da roda e número de voltas, calcular quantos metros foram percorridos. Arredondar para o próximo valor inteiro.

A fórmula é simples: perímetro = π × diâmetro. Depois: distância = perímetro × voltas.

E para arredondar para cima, usamos Math.ceil():

import java.util.Scanner;

public class DistanciaRoda {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        
        System.out.print("Digite o diâmetro da roda (em metros): ");
        double diametro = entrada.nextDouble();
        
        System.out.print("Digite o número de voltas: ");
        int voltas = entrada.nextInt();
        
        double perimetro = Math.PI * diametro;
        double distancia = perimetro * voltas;
        double distanciaArredondada = Math.ceil(distancia);
        
        System.out.println("Distância percorrida: " + distanciaArredondada + " metros");
    }
}

Exemplo de execução:

Digite o diâmetro da roda (em metros): 0.5
Digite o número de voltas: 10
Distância percorrida: 16.0 metros

O “clique”: Entender que Math.PI é uma constante. Não é uma função — é um valor. E Math.ceil() é exatamente para quando você precisa “subir” pra o próximo inteiro. Simples, mas poderoso.

Exercício 3: Volume de Caixa d’Água

Desafio: Calcular o volume em metros cúbicos de uma caixa d’água. O usuário passa apenas um número chamado “lado”.

Deduz-se que é um cubo, então: volume = lado³

import java.util.Scanner;

public class CaixaDAgua {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        
        System.out.print("Digite o lado da caixa d'água (em metros): ");
        double lado = entrada.nextDouble();
        
        double volume = Math.pow(lado, 3);
        
        System.out.println("Volume da caixa d'água: " + volume + " metros cúbicos");
    }
}

Exemplo de execução:

Digite o lado da caixa d'água (em metros): 2
Volume da caixa d'água: 8.0 metros cúbicos

O “clique”: Math.pow() é subestimado. Você pode fazer isso com lado * lado * lado, mas Math.pow(lado, 3) é mais legível e escalável. Se precisasse da 4ª potência, seria trivial mudar.

Exercício 4: Inverter uma String

Desafio: Pegar uma string e invertê-la.

Existem várias formas. A mais didática (usando os métodos do Capítulo 4):

import java.util.Scanner;

public class InverterString {
    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        
        System.out.print("Digite uma palavra: ");
        String palavra = entrada.nextLine();
        
        String invertida = "";
        for (int i = palavra.length() - 1; i >= 0; i--) {
            invertida += palavra.charAt(i);
        }
        
        System.out.println("Palavra invertida: " + invertida);
    }
}

Exemplo de execução:

Digite uma palavra: Java
Palavra invertida: avaJ

Como funciona:

  • palavra.length() retorna o tamanho
  • Começamos do último índice (length - 1)
  • charAt(i) pega cada caractere, de trás pra frente
  • Junta tudo em invertida

O “clique”: Isso solidifica dois conceitos: loops e métodos de string. charAt() não é mágico — é só uma forma de acessar cada letra.

O que esses 4 exercícios têm em comum

Todos praticam os temas do Capítulo 4:

  • Math.random(): Dado (exercício 1)
  • Math.ceil(): Arredondar para cima (exercício 2)
  • Math.PI: Constante matemática (exercício 2)
  • Math.pow(): Potência (exercício 3)
  • charAt(): Acessar caracteres (exercício 4)
  • Estruturas de controle: Loops, condições

Mas o mais legal é que cada exercício é prático. Não é teórico. Você sai dali sabendo que:

  • Pode simular sorteios e dados
  • Pode calcular distâncias e perímetros
  • Pode trabalhar com volumes
  • Pode manipular texto

Minha experiência resolvendo

Confesso: o exercício 2 (distância da roda) foi o que mais me fez pensar. Não era óbvio que precisava usar Math.ceil(). Tive que pensar no problema real: “se a roda percorre 15.7 metros, quantos metros completos foram?”. E aí clicou — preciso arredondar para cima, porque você não percorre “15.7 metros inteiros”, você percorre 16.

Os outros foram mais diretos, mas todos solidificaram a ideia de que ferramentas matemáticas e de string são blocos de construção. Você não memoriza tudo — você sabe que existem, e quando precisa, usa.

Próximos passos

Terminado o Capítulo 4, estou indo pro Capítulo 5 — Criação de Métodos. Aposto que vou usar tudo isso que aprendi (random, ceil, pow, charAt) dentro de métodos reutilizáveis.