Carregando...
Carregando...
Ajude a melhorar a plataforma
Em uma discussão sobre a confiabilidade de software, um grupo de estudantes de ciência da computação analisa os conceitos de correção de programas e verificação de programas. Eles exploram a diferença entre testes de programa e demonstração de correção, bem como a importância das asserções e triplas de Hoare na verificação formal de programas.
Com base nessa discussão e no contexto de verificação de programa, analise as seguintes afirmativas:
I. Um programa está correto se ele se comporta de acordo com suas especificações, independentemente de resolver o problema pretendido.
II. Testes de programa podem revelar a presença de erros, mas nunca podem garantir a ausência deles.
III. As asserções são utilizadas para afirmar propriedades que devem ser verdadeiras em pontos específicos da execução de um programa.
IV. Tripla de Hoare {Q}P{R} é válida sempre que, se a pré-condição Q for falsa antes da execução do programa P, a pós-condição R será verdadeira após a execução.
Assinale a alternativa que contém as afirmativas verdadeiras:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
🎓 Gabarito Comentado (AVA):
A afirmativa I "Um programa está correto se ele se comporta de acordo com suas especificações, independentemente de resolver o problema pretendido" é correta, pois reflete a definição de correção de um programa na ciência da computação, que se preocupa com o comportamento do programa em relação às suas especificações, não necessariamente com a resolução do problema original do cliente.
A afirmativa II "Testes de programa podem revelar a presença de erros, mas nunca podem garantir a ausência deles" é correta, pois destaca a limitação dos testes de programa em garantir a ausência de erros, apesar de sua capacidade de revelar a presença de erros.
A afirmativa III "As asserções são utilizadas para afirmar propriedades que devem ser verdadeiras em pontos específicos da execução de um programa" é correta, visto que as asserções são utilizadas para especificar propriedades lógicas que as variáveis do programa devem satisfazer em determinados pontos do código, auxiliando na verificação da correção do programa.
A afirmativa IV "Tripla de Hoare {Q}P{R} é válida sempre que, se a pré-condição Q for falsa antes da execução do programa P, a pós-condição R será verdadeira após a execução" é incorreta, pois uma tripla de Hoare {Q}P{R} é considerada válida se, sempre que a pré-condição Q for verdadeira antes da execução do programa P, a pós-condição R será verdadeira após a execução.