Pular para o conteúdo principal

Questão de Programação — Plataforma Java — Quadrix 2025

ProgramaçãoPlataforma Java
Código
qg603657
Banca
Quadrix
Órgão
SEDF
Ano
2025
Nível
Superior
Cargo
Professor de Educação Básica: Informática
O professor André ministra uma disciplina de Desenvolvimento Web em Java EE para alunos de nível superior. Ele solicita que os estudantes implementem um sistema simplificado de cadastro de produtos, utilizando J2EE, que inclui tipos de dados elementares e estruturados, métodos (funções e procedimentos) e estruturas de controle de fluxo. Parte do código desenvolvido é apresentada a seguir.


public class Produto {
    private String nome;
    private int quantidade;
    private double preco;
 
public Produto(String nome, int quantidade, double preco) {
    this.nome = nome;
    this.quantidade = quantidade;
    this.preco = preco;
 }

public double calcularValorTotal() {
 return quantidade * preco;
 }

  public void aplicarDesconto(double percentual) {
      if(percentual > 0 & percentual < 100) {
        preco ‑= preco * percentual / 100;
     } else {
         System.out.println(“Percentual inválido”);
   }
 }

  public static void main(String[] args) {
       Produto p = new Produto(“Notebook”, 5, 4500.00);
       p.aplicarDesconto(10);
       System.out.println(“Valor total: “ + p.calcularValorTotal());
    }
}
A respeito do código Java apresentado, julgue o item seguinte. O método calcularValorTotal() é um exemplo de função que retorna um valor, enquanto aplicarDesconto(double percentual) é um procedimento, pois não retorna valor.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Funções e procedimentos em Java

Gabarito: letra C — CERTO. A afirmativa está correta: calcularValorTotal() é uma função porque declara um tipo de retorno (double) e devolve um valor com return, enquanto aplicarDesconto(double percentual) é um procedimento porque usa void e não retorna valor — distinção clássica da programação estruturada, aplicada aqui ao Java.

Na programação, a distinção entre função e procedimento é um dos conceitos mais fundamentais e, ao mesmo tempo, um dos mais cobrados em provas. A diferença essencial está no retorno de valor: uma função é um bloco de código que executa uma tarefa e retorna um resultado ao ponto de chamada, enquanto um procedimento (também chamado de método void em Java) executa uma tarefa sem devolver nenhum valor. Essa distinção vem da programação estruturada, herdada por linguagens como Pascal, C e Java.

No código apresentado, calcularValorTotal() é declarado com o tipo de retorno double e, em seu corpo, utiliza a instrução return quantidade * preco;. Isso significa que, ao ser chamado, ele calcula o produto e devolve esse valor para quem o invocou — exatamente o comportamento de uma função. Já aplicarDesconto(double percentual) é declarado com void, que em Java é a palavra-chave que indica ausência de retorno. Ele modifica o estado interno do objeto (o atributo preco) e imprime uma mensagem, mas não devolve nada ao chamador — é um procedimento.

Para fixar, veja a comparação direta:

Critério

calcularValorTotal()

aplicarDesconto(double percentual)

Tipo de retorno

double

void

Retorna valor?

Sim, com return

Não

Classificação

Função

Procedimento

Efeito

Calcula e devolve resultado

Modifica estado e imprime

A pegadinha que a banca explora aqui é justamente a confusão entre os termos. Muitos candidatos, ao verem um método que executa uma ação (como aplicar desconto), podem classificá-lo erroneamente como função por ele "fazer algo". Mas o que define a classificação não é a ação em si, e sim a presença ou ausência de retorno. Em Java, todo método que não seja void é uma função; todo método void é um procedimento. Guarde essa fronteira: é exatamente nela que esta questão se decide.

Item — ✅ CERTO ⟵ GABARITO

A afirmativa está correta por dois motivos técnicos precisos:

  1. calcularValorTotal() é uma função: declarada com tipo de retorno double e contendo a instrução return quantidade * preco;. A presença do return com um valor é a marca registrada da função — ela calcula o valor total (5 × R$ 4.500,00 = R$ 22.500,00, antes do desconto) e o devolve ao chamador.

  1. aplicarDesconto(double percentual) é um procedimento: declarada com void, que em Java significa literalmente "vazio" — o método executa suas instruções (aplica o desconto ao atributo preco e imprime mensagem de erro se o percentual for inválido) mas não retorna nenhum valor. A palavra-chave void é o que caracteriza o procedimento em Java.

A distinção é exatamente a que a afirmativa descreve: função retorna valor, procedimento não retorna. Não há nenhum erro conceitual ou técnico na assertiva.

NÃO CAIA NESSA!

Na prova, para identificar se um método Java é função ou procedimento, olhe apenas para a declaração do método: se houver um tipo de retorno (int, double, String, etc.) ou return com valor, é função; se houver void, é procedimento. Não se deixe enganar pelo que o método "faz" — o que importa é o que ele devolve. Essa é a pegadinha clássica da banca: trocar o critério de classificação (ação × retorno).

Gabarito: letra C — CERTO.

Link permanente: /questoes/qg603657