class Carro {
private String modelo;
private double[] precos = new double[3];
public void setModelo(String modelo) {
this.modelo = modelo;
}
public void setPreco(int ano, double preco) {
if (ano >= 0 && ano < 3) precos[ano] = preco;
}
public double getMenorPreco() {
double menor = precos[0];
for (double p : precos) if (p < menor) menor = p;
return menor;
}
public double getMaiorPreco() {
double maior = precos[0];
for (double p : precos) if (p > maior) maior = p;
return maior;
}
public void exibirInfo() {
System.out.println("Modelo: " + modelo);
for (int i = 0; i < 3; i++) System.out.println("Ano " + (i + 1) + ": R$" + precos[i]);
System.out.println("Menor: R$" + getMenorPreco() + ", Maior: R$" + getMaiorPreco());
}
}
class ModeloCarro extends Carro {}
class Animal {
public void emitirSom() {
System.out.println("Animal fazendo som...");
}
}
class Cachorro extends Animal {
@Override
public void emitirSom() {
System.out.println("Au au!");
}
public void abanarRabo() {
System.out.println("Cachorro abanando o rabo.");
}
}
class Gato extends Animal {
@Override
public void emitirSom() {
System.out.println("Miau!");
}
public void arranharMoveis() {
System.out.println("Gato arranhando os móveis.");
}
}
class ContaBancaria {
protected double saldo;
public void depositar(double v) {
saldo += v;
}
public void sacar(double v) {
if (v <= saldo) saldo -= v;
else System.out.println("Saldo insuficiente!");
}
public void consultarSaldo() {
System.out.println("Saldo: R$" + saldo);
}
}
class ContaCorrente extends ContaBancaria {
private double tarifa = 10.0;
public void cobrarTarifaMensal() {
if (saldo >= tarifa) {
saldo -= tarifa;
System.out.println("Tarifa mensal cobrada: R$" + tarifa);
} else System.out.println("Saldo insuficiente para tarifa.");
}
}
class ContaBancaria {
protected double saldo;
public void depositar(double v) {
saldo += v;
}
public void sacar(double v) {
if (v <= saldo) saldo -= v;
else System.out.println("Saldo insuficiente!");
}
public void consultarSaldo() {
System.out.println("Saldo: R$" + saldo);
}
}
class ContaCorrente extends ContaBancaria {
private double tarifa = 10.0;
public void cobrarTarifaMensal() {
if (saldo >= tarifa) {
saldo -= tarifa;
System.out.println("Tarifa mensal cobrada: R$" + tarifa);
} else System.out.println("Saldo insuficiente para tarifa.");
}
}
class NumerosPrimos {
public boolean verificarPrimalidade(int n) {
if (n <= 1) return false;
for (int i = 2; i <= Math.sqrt(n); i++)
if (n % i == 0) return false;
return true;
}
public void listarPrimos(int limite) {
System.out.print("Primos até " + limite + ": ");
for (int i = 2; i <= limite; i++)
if (verificarPrimalidade(i)) System.out.print(i + " ");
System.out.println();
}
}
class VerificadorPrimo extends NumerosPrimos {
public void verificarSeEhPrimo(int n) {
System.out.println(n + (verificarPrimalidade(n) ? " é primo." : " não é primo."));
}
}
class GeradorPrimo extends NumerosPrimos {
private int ultimo = 1;
public int gerarProximoPrimo() {
int num = ultimo + 1;
while (!verificarPrimalidade(num)) num++;
ultimo = num;
return num;
}
}
public class Main {
public static void main(String[] args) {
ModeloCarro carro = new ModeloCarro();
carro.setModelo("Civic");
carro.setPreco(0, 85000); carro.setPreco(1, 87000); carro.setPreco(2, 83000);
carro.exibirInfo();
Animal a1 = new Cachorro();
a1.emitirSom(); ((Cachorro)a1).abanarRabo();
Animal a2 = new Gato();
a2.emitirSom(); ((Gato)a2).arranharMoveis();
ContaCorrente cc = new ContaCorrente();
cc.depositar(100); cc.consultarSaldo();
cc.cobrarTarifaMensal(); cc.consultarSaldo();
cc.sacar(50); cc.consultarSaldo();
VerificadorPrimo vp = new VerificadorPrimo();
vp.verificarSeEhPrimo(17); vp.verificarSeEhPrimo(20);
GeradorPrimo gp = new GeradorPrimo();
System.out.println("Próximos primos:");
for (int i = 0; i < 5; i++) System.out.println(gp.gerarProximoPrimo());
}
}