Suponha que você precise representar os valores indicados nos itens abaixo em um programa escrito na Linguagem C. Indique o tipo de dado mais adequado para cada caso, explicando o porquê da escolha.
Respostas de uma questão do tipo teste, que pode ser a letra a, b, c, d ou e
Respostas de uma questão do tipo teste, que pode ser a letra a, b, c, d ou e
Passo 1
O enunciado pede que eu indique, para os “itens abaixo”, o tipo de dado mais adequado em um programa em C e explique o porquê de cada escolha. Também diz que a resposta esperada é uma alternativa de teste (uma letra:
,
,
,
ou
).
Informações dadas:
- Só foi informado o pedido geral (escolher tipos adequados e justificar).
- Não foram enviados os “itens abaixo” que preciso classificar (ou seja, os valores ou descrições que eu teria de mapear para tipos C estão ausentes).
Consequência imediata: sem os itens concretos não há como decidir corretamente qual alternativa (uma das letras
–
) corresponde à resposta do teste, porque não sei que valores ou descrições preciso representar.
Passo 2
Vou fazer duas coisas úteis para você que está estudando: (1) explicar, passo a passo e de forma prática, quais informações são necessárias para escolher um tipo em C; e (2) dar regras e exemplos diretos que você pode usar na prova para decidir rapidamente quando os itens forem apresentados. Assim, mesmo que eu não possa marcar a letra correta agora, você ficará bem equipado para escolher a letra certa no teste.
- Que informações eu preciso ver num item para escolher o tipo?
- Se o valor é inteiro ou real (tem casas decimais)?
- Qual o intervalo máximo/minimo possível (por exemplo, até
, ou pode exceder )? - Precisa ser negativo/também pode ser negativo (signed) ou sempre não negativo (unsigned)?
- Precisa de precisão decimal alta (por exemplo, coordenadas científicas, dinheiro)?
- É texto (uma palavra, um identificador) em vez de número?
- É uma bandeira verdadeira/falsa (booleano)?
- É uma coleção de campos diferentes (precisa de struct)?
- Há restrição de memória/performance (usar menor tipo possível)?
- Resumo dos tipos básicos de C que você deve conhecer (o que são e quando usar)
-
: ocupa geralmente byte. Use para um único caractere (por exemplo, letra ‘A’) ou para pequenos códigos numéricos entre e (se for ) ou a (se ). Para strings, usa-se array de (ex.: ). -
(ou ): geralmente bytes; serve para inteiros com magnitude pequena. -
: tipo inteiro mais usado; em muitas plataformas é bytes com intervalo aproximado de a . Use quando valores cabem nesse intervalo. -
/ : quando precisa de inteiros maiores. normalmente tem bytes com intervalo aproximado de a . Use para contadores muito grandes. - Tipos unsigned:
, — use quando o valor nunca é negativo e quer ampliar o teto positivo (por exemplo, número de itens, índices, contagens). -
: ponto flutuante de precisão simples ( – dígitos decimais precisos). Use quando precisa de casas decimais mas não muita precisão (por exemplo, medidas aproximadas). -
: ponto flutuante de precisão dupla ( – dígitos). Use quando precisa de mais precisão (cálculos científicos, coordenadas). -
: para ainda mais precisão em plataformas que o suportam. -
ou (com ): para verdadeiro/falso. -
ou : para cadeias de caracteres (nomes, CPFs quando não se quer tratar como número). -
: agrupa campos heterogêneos (por exemplo, endereço com rua, número, cidade). - Para dinheiro: evite ponto flutuante por causa de erros de arredondamento; prefira inteiro que represente centavos (ex.: usar
para armazenar centavos) ou tipos de ponto fixo/decimal se disponíveis.
- Como decidir rapidamente (procedimento prático que serve na prova)
- Passo A: identificar se é inteiro ou real.
- Passo B: estimar o maior valor possível (ordem de grandeza). Se for até cerca de
, provavelmente basta. Se só positivo, . Se maior que isso, vá para . - Passo C: se tiver casas decimais, pergunte: quantos dígitos de precisão são necessários? Se pouca,
; se média/alta, . Para dinheiro, prefira inteiro em centavos. - Passo D: se for texto (nome, código que não sofre cálculo), escolha
. - Passo E: se for verdadeiro/falso, escolha
. - Passo F: se o enunciado diz “identificador com zeros à esquerda” (ex.: matrícula “000123”), trate como string (
), não como número.
- Exemplos práticos (muito usados em provas) e a escolha recomendada com justificativa curta
- “Idade em anos” →
: idade nunca negativa; cabe em e é eficiente. - “Temperatura com casas decimais” →
ou : se enunciado pede precisão alta (ex.: ciência), use ; para leituras simples, basta. - “Código de cliente composto por letras e números (não usado para cálculo)” →
: porque precisa preservar caracteres e possivelmente zeros à esquerda. - “Saldo em reais” → armazenar em centavos com
(inteiro) ou usar com cuidado; a opção inteira evita erros de arredondamento. - “Flag que indica se usuário está ativo” →
: semântica clara e ocupa pouco espaço. - “Número binário de 8 bits” →
: armazena a e corresponde bem ao tamanho. - “Contador que pode ultrapassar
bilhões” → : precisa de 64 bits para acomodar valores além de .
- Observação sobre portabilidade
- Em C, tamanhos dependem da plataforma; em provas, se o enunciado não fala o modelo, costuma-se assumir o modelo comum em exercício:
com bytes e com bytes. Se a prova exige precisão absoluta, o próprio enunciado normalmente dá o intervalo numérico — use esse intervalo para escolher o menor tipo que cabe.
- Como usar isso para marcar a letra correta no teste
- Leia cada alternativa
– e cheque se os tipos sugeridos por essa alternativa satisfazem TODOS os itens do enunciado (cada opção de múltipla escolha geralmente dá uma associação completa). A alternativa correta é a que usa tipos adequados para cada item segundo o procedimento prático acima (inteiro vs real, intervalo, signedness, texto vs número, precisão). - Se uma alternativa usa ponto flutuante para representar dinheiro sem justificativa, desconfie — normalmente provas preferem inteiro em centavos.
- Se uma alternativa escolhe
para armazenar um número que pode exceder , e não menciona , desconfie.
Passo 3
Conclusão prática imediata: sem os itens concretos eu não posso escolher a alternativa
,
,
,
ou
. O que eu fiz acima é o roteiro que você deve aplicar em exame: identifique se é inteiro/real/texto/boolean; estime máximo/precisão; escolha o menor tipo que acomode requisitos; prefira inteiros para dinheiro (centavos); prefira
para identificadores que não serão calculados.
Se você colar aqui os “itens abaixo” (mesmo listando curto, ex.: “idade = 0–120”, “saldo em reais com centavos”, “nome do cliente”), eu aplico o procedimento e já te retorno passo a passo qual letra (
–
) corresponde à resposta correta, com justificativa detalhada.
Resposta
Impossível responder: os itens a serem classificados não foram fornecidos.