Dúvidas de Java - Nível Totalmente Iniciante

Problema: Calcular o prêmio (valor a ser pago pelo segurado) de um seguro de automóvel. No caso de carro de procedência nacional, o prêmio é de 10% do valor do veículo, enquanto que no caso de carros importados este percentual sobe para 15%. Sobre este valor é oferecido um desconto que depende da classe de desconto do segurado, a qual te a haver com o tempo de relacionamento do cliente com a seguradora (ver tabela abaixo). Sobre o mesmo valor anterior há ainda outro desconto de 10% caso o segurado tenha mais de 24 anos de idade.

Classe de Desconto Desconto
A 30%
B 20%
C 10%
D 5%
Implemente, então, um procedimento que leia:

o valor do veículo (um número real);
a classe de desconto (uma letra);
indicação se o carro é de procedência nacional (true) ou estrangeira (false);
indicação se o condutor tem mais de 24 anos (true ou false)
e imprima o valor do prêmio de seguro, arredondando o resultado na segunda casa decimal.

Algoritmo:

_import java.util.Scanner;

public class PremioDoSeguro {

public static void main (String args []) {
System.out.println ("Programa para Calcular o Valor do Seguro do Carro: ");

	System.out.println ("Calcule o Preço do Veículo: ");
	Scanner sc = new Scanner (System.in);
           double valorDoVeiculo = sc.nextDouble();
    
      System.out.println ("Digite a Procedência do Veículo: true para Nacional; false para Importado.");
     boolean procedencia =  sc.nextBoolean();
    
    System.out.println ("Digite o Tipo de Cliente. Cliente A,B,C ou D");
    char tipoDeCliente = sc.nextLine().charAt(0);
    
    System.out.println("Digite a Idade do Condutor: ");
   int idadeDoCondutor = sc.nextInt();
	
	double valorPremioSeguroInicial = calcularValorPremioSeguroInicial(valorDoVeiculo, procedencia);        
    System.out.println(valorPremioSeguroInicial);
	
	double valorPremioSeguroMeio = calcularvalorPremioSeguroMeio (valorPremioSeguroInicial, tipoDeCliente);		
	System.out.println(valorPremioSeguroMeio);
	
	double valorPremioSeguroFinal = calcularvalorPremioSeguroFinal(valorPremioSeguroMeio, idadeDoCondutor);		_
	System.out.println(valorPremioSeguroMeio);
}

public static boolean calcularValorPremioSeguroInicial (double valorDoVeiculo, char procedencia) {
double valordoseguroinicial = 0.0;
if (procedencia == true) {
valordoseguroinicial = valorDoVeiculo * 0.10;
} else {

    valordoseguroinicial = valorDoVeiculo * 0.15;      
  }

}
public static double calcularvalorPremioSeguroMeio (double valorPremioSeguroInicial, char tipoDeCliente) {

	double valorPremioSeguroMeio = 0.0;

	switch(tipoDeCliente) {

		case 'A':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.70;
			break;
			
		case 'B':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.80;
			break;
			
		case 'C':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.90;
			break;
			
		case 'D':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.95;
			break;
			
		default:
			System.out.println("Código Inválido! Escreva A, B, C ou D");
			break;			
	}

    return valorPremioSeguroMeio;			

}

public static double calcularvalorPremioSeguroFinal (double valorPremioSeguroMeio, int idadeDoCondutor) {

	if (idadeDoCondutor > 24) {_
       valordosegurofinal = valorPremioSeguroMeio * 0.9;  
	} else {
	   valordosegurofinal = valorPremioSeguroMeio;
	    }   
	return valordosegurofinal;_
	}

}

Por gentileza, alguém pode me ajudar a corrigir todo este Algoritmo?

Sobre ajudar a corrigir todo o algoritmo, o que você já corrigiu? qual erro que está dando? não espere que alguém faça seu trabalho por você.

Desculpa, eu esqueci de colocar onde está dando de errado:

PremioDoSeguro.java:138 error: incompatible types: boolean cannot be converted to char
double valorPremioSeguroInicial = calcularValorPremioSeguroInicial(valorDoVeiculo, procedencia);
^
PremioDoSeguro.java:151 error: incomparable types: char and boolean
if (procedencia == true) {
^
PremioDoSeguro.java:193 error: cannot find symbol
valordosegurofinal = valorPremioSeguroMeio * 0.9;
^
symbol: variable valordosegurofinal
location: class PremioDoSeguro
PremioDoSeguro.java:195 error: cannot find symbol
valordosegurofinal = valorPremioSeguroMeio;
^
symbol: variable valordosegurofinal
location: class PremioDoSeguro
PremioDoSeguro.java:197 error: cannot find symbol
return valordosegurofinal;
^
symbol: variable valordosegurofinal
location: class PremioDoSeguro

Ta aqui o seu problema e o erro é bem explicativo, você está tentando comparar variáveis de tipos diferentes, procedencia é um char (‘a’, ‘b’, ‘m’, ‘-’, etc) e true é um valor booleano.

Certo, e como se corrige:
public static boolean calcularValorPremioSeguroInicial (double valorDoVeiculo, char procedencia) {
double valordoseguroinicial = 0.0;

	if (procedencia == true) {
	valordoseguroinicial = valorDoVeiculo * 0.10;

Como você já percebeu: Eu sou totalmente Iniciante em Java, tudo bem?

Altere o tipo da variável procedencia para boolean, e passe ao invés de um char indicado se o carro é estrangeiro ou nacional, um valor true q irá representar q o carro é nacional ou false indicando que é estrangeiro.

if (procedencia == true) // redudante if (procedencia) // faz a mesma coisa

Certo. Muito obrigado. Corrigi e simplifiquei um pouco o código. Só tem mais uma linha que não estou conseguindo descobrir como consertar o erro. Ficou assim:

import java.util.Scanner;

public class PremioDoSeguro {

public static void main (String args []) {
	
	System.out.println ("Programa para Calcular o Valor do Seguro do Carro: ");
	
	System.out.println ("Calcule o Preço do Veículo: ");
	Scanner sc = new Scanner (System.in);
    double valorDoVeiculo = sc.nextDouble();
    
    System.out.println ("Digite a Procedência do Veículo: true para Nacional; false para Importado.");
    boolean procedencia =  sc.nextBoolean();
    
    System.out.println ("Digite o Tipo de Cliente. Cliente A,B,C ou D");
    char tipoDeCliente = sc.nextLine().charAt(0);
    
    System.out.println("Digite a Idade do Condutor: ");
    int idadeDoCondutor = sc.nextInt();

    **System.out.println(valordosegurofinal);** (Tá acontecendo um erro aqui, que não estou conseguindo descobrir qual é: não pode achar símbolo variável valordosegurofinal)
}

public static boolean calcularValorPremioSeguroInicial (double valorDoVeiculo, boolean procedencia) {
    double valordoseguroinicial = 0.0;
    
	if (procedencia == true) {
	valordoseguroinicial = valorDoVeiculo * 0.10;

} else {
	
    valordoseguroinicial = valorDoVeiculo * 0.15;      
    }
}
    
public static double calcularvalorPremioSeguroMeio (double valorPremioSeguroInicial, char tipoDeCliente) {
	
	double valorPremioSeguroMeio = 0.0;
	
	switch(tipoDeCliente) {
		
		case 'A':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.70;
			break;
			
		case 'B':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.80;
			break;
			
		case 'C':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.90;
			break;
			
		case 'D':
			valorPremioSeguroMeio = valorPremioSeguroInicial * 0.95;
			break;
			
		default:
			System.out.println("Código Inválido! Escreva A, B, C ou D");
			break;			
	}
	
    return valorPremioSeguroMeio;			
}
    
public static double calcularvalorPremioSeguroFinal (double valorPremioSeguroMeio, int idadeDoCondutor) {
    double valordosegurofinal = 0.0;
    
	if (idadeDoCondutor > 24) {
       valordosegurofinal = valorPremioSeguroMeio * 0.9;  
	} else {
	   valordosegurofinal = valorPremioSeguroMeio;
	    }   
	return valordosegurofinal;
	}
}

Tenta alterar no seu método calcularvalorPremioSeguroFinal alterar as suas condicionais, para 1ª if, 2ª else if e por último else e o return dentro do else