Alternativa C - Estrutura (struct)
O problema descreve a necessidade de agrupar informações de tipos variados (texto e números) sob uma única entidade lógica chamada "livro". Em C, a maneira padrão e mais eficiente de modelar esse tipo de dado composto é utilizando uma estrutura.
Análise da Questão
Para entender por que a Estrutura (struct) é a resposta correta, precisamos analisar as características solicitadas pelo enunciado:
- Dados Heterogêneos: O livro possui campos com tipos diferentes:
- Título e Autor: Textos (cadeias de caracteres,
char[]). - Ano de Publicação: Número inteiro (
int). - Status de Empréstimo: Geralmente lógico ou caractere (
int ou char). - Modelagem de Entidades: Precisamos de uma forma de tratar todos esses dados juntos como se fosse um único objeto.
Por que as outras alternativas estão incorretas?
| Alternativa | Motivo da Incorreção |
|---|
| A) Array de inteiros | Só aceita números inteiros. Não consegue armazenar títulos ou autores (texto). |
| B) Lista ligada de caracteres | Armazena apenas letras individuais, não organizando os dados como um registro completo de livro. |
| D) Ponteiro para void | É um ponteiro genérico. Ele aponta para memória, mas não define a estrutura interna dos dados do livro. |
| E) Matriz bidimensional de floats | Só aceita números de ponto flutuante. Não serve para texto nem para inteiros puros. |
Exemplo Prático em C
A implementação correta seria declarada assim:
\begin{aligned}
& \texttt{struct Livro \{} \\
& \quad \texttt{char titulo[100];} \\
& \quad \texttt{char autor[50];} \\
& \quad \texttt{int ano;} \\
& \quad \texttt{int emprestado;} \\
& \texttt{\};}
\end{aligned}
Isso cria um novo tipo de dado que encapsula todas as informações necessárias em um bloco contíguo de memória, facilitando o gerenciamento do projeto de biblioteca.
Conclusão: A estrutura de dados adequada para modelar entidades compostas por dados de tipos diferentes em C é a Estrutura (struct).