Ybadoo - Soluções em Software Livre
Turmas
1º Semestre de 2026

Com base nos conceitos sobre conversão de tipos, coerção e casts apresentados, analise as assertivas a seguir:

  1. Uma conversão particularizante ocorre quando um objeto é convertido para um tipo que não pode incluir todos os valores do tipo original, como exemplo, a conversão de double para int.
  2. A coerção é definida como uma conversão de tipo explícita, frequentemente chamada de cast, em que o programador deve obrigatoriamente indicar a conversão, como em (int) speed.
  3. Uma das desvantagens das coerções é que elas diminuem a habilidade do compilador na detecção de erros de tipagem, uma vez que as conversões são realizadas automaticamente.
  4. Conversões generalizantes são consideradas inseguras e ocorrem quando um objeto é convertido para um tipo que não inclui sequer aproximações para todos os valores do tipo original, como de double para float.

A análise permite concluir que:

A apenas as assertivas I e II.

B apenas as assertivas I e III.

C apenas as assertivas II e III.

D apenas as assertivas II e IV.

E apenas as assertivas III e IV.

I Uma conversão particularizante ocorre quando um objeto é convertido para um tipo que não pode incluir todos os valores do tipo original, como exemplo, a conversão de double para int.

Uma conversão particularizante ocorre quando um valor é convertido para um tipo com menor capacidade de representação que o original. A conversão de double (ponto flutuante de precisão dupla) para int (inteiro) é o exemplo clássico, pois há perda da parte fracionária e possível perda de magnitude.

II A coerção é definida como uma conversão de tipo explícita, frequentemente chamada de cast, em que o programador deve obrigatoriamente indicar a conversão, como em (int) speed.

A assertiva confunde dois conceitos distintos:

Portanto, a definição apresentada descreve um cast, não uma coerção.

III Uma das desvantagens das coerções é que elas diminuem a habilidade do compilador na detecção de erros de tipagem, uma vez que as conversões são realizadas automaticamente.

Uma das principais críticas às coerções implícitas é que elas reduzem a segurança de tipos. Como o compilador realiza conversões automaticamente para compatibilizar operandos, erros de tipagem que poderiam ser detectados em tempo de compilação (como passar um valor de tipo incompatível) são "mascarados" pela conversão automática, podendo gerar comportamentos inesperados ou perda silenciosa de dados.

IV Conversões generalizantes são consideradas inseguras e ocorrem quando um objeto é convertido para um tipo que não inclui sequer aproximações para todos os valores do tipo original, como de double para float.

A assertiva inverte os conceitos, pois conversões generalizantes convertem um tipo para outro de maior capacidade, como, por exemplo, int para double ou float para double. São consideradas seguras, pois o tipo destino consegue representar todos os valores do tipo origem (muitas vezes com exatidão). Contudo, o exemplo dado (double para float) é, na verdade, uma conversão particularizante, e não generalizante.

Conforme exposto, a resposta correta é:

B apenas as assertivas I e III.