Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — Quadrix 2023

ProgramaçãoLinguagens de programação
Código
qg024527
Banca
Quadrix
Órgão
COFFITO
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
using System;using System.Collections.Generic;class Paciente{public string Nome { get; set; }public int Idade { get; set; }public string Telefone { get; set; }public Paciente(string nome, int idade, string telefone){Nome = nome;Idade = idade;Telefone = telefone;}}class Agendamento{public DateTime DataHora { get; set; }public Paciente Paciente { get; set; }public Agendamento(DateTime dataHora, Paciente paciente){DataHora = dataHora;Paciente = paciente;}}class Program{static void Main(){List<Agendamento> agendamentos = new List<Agendamento>();// Exemplo de agendamentoPaciente paciente1 = new Paciente(“João”, 30, “(11)99999-9999”);DateTime dataHora1 = new DateTime(2023, 07, 20, 14, 30, 0);Agendamento agendamento1 = new Agendamento(dataHora1, paciente1);agendamentos.Add(agendamento1);Console.WriteLine(“Agendamento realizado com sucesso!”);}}Com referência ao programa em C# acima, que permite realizar o agendamento de pacientes a sessões de fisioterapia, julgue o item.A validação dos dados do paciente, antes de realizar o agendamento, é realizada pelo método Paciente.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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”.

C#: validação de dados e o papel do método Paciente

Gabarito: E — ERRADO. A afirmação está incorreta porque a classe Paciente no código apresentado não possui nenhum método de validação; ela contém apenas propriedades (Nome, Idade, Telefone) e um construtor que simplesmente atribui os valores recebidos. A validação dos dados, se existisse, seria responsabilidade de um método específico (como Validar()) ou do próprio fluxo do programa, não do construtor da classe.

A questão explora um conceito fundamental de programação orientada a objetos: a distinção entre construtor e método de validação. O construtor é um método especial invocado no momento da criação do objeto, cuja função é inicializar o estado do objeto (atribuir valores às propriedades). Ele não realiza, por padrão, nenhuma verificação de consistência dos dados — a menos que o programador explicitamente escreva essa lógica dentro dele. No código fornecido, o construtor Paciente(string nome, int idade, string telefone) apenas faz Nome = nome; Idade = idade; Telefone = telefone;, sem qualquer if, throw ou outra estrutura de validação.

Para que houvesse validação, seria necessário, por exemplo, verificar se a idade é maior que zero, se o nome não é vazio, ou se o telefone tem um formato válido. Isso poderia ser feito dentro do construtor, mas também poderia ser feito em um método separado, como bool Validar(), ou até mesmo no Main antes de criar o objeto. A afirmação do enunciado atribui ao método Paciente (que na verdade é o construtor) uma responsabilidade que ele não tem no código apresentado.

A pegadinha da banca está em confundir o construtor com um método de validação. O construtor é um método especial que inicializa o objeto, mas não valida dados por padrão. A validação é uma lógica adicional que o programador deve implementar explicitamente, seja no construtor, em um método dedicado, ou no fluxo principal do programa. No código dado, não há nenhuma validação implementada — o construtor apenas atribui os valores recebidos às propriedades.

Guarde a distinção: construtor ≠ método de validação. O construtor inicializa; a validação verifica. É exatamente essa fronteira que a questão explora.

Item — ❌ Errado

A afirmação diz que "a validação dos dados do paciente, antes de realizar o agendamento, é realizada pelo método Paciente". Isso está errado por dois motivos: (1) Paciente não é um método, é uma classe; (2) a classe Paciente não possui nenhum método de validação — apenas propriedades e um construtor que atribui valores sem verificação. A validação, se existisse, seria feita por um método específico (como Validar()) ou no fluxo do programa, não pelo construtor.

Conclusão: O item está ERRADO, pois a classe Paciente não realiza validação de dados no código apresentado. O gabarito é a letra E.

Gabarito: letra E

Link permanente: /questoes/qg024527