Determine quais características de um algoritmo há nos procedimentos a seguir e quais características estão faltando.
procedure escolha(a, b: inteiro)
ou
procedure escolha(a, b: inteiro)
Passo 1
O enunciado nos dá o procedimento
procedure escolha(a, b: inteiro)
x := a ou b
e pede para verificar, entre as cinco características clássicas de um algoritmo (entrada, saída, definitude, eficácia e finitude), quais estão presentes e quais faltam. Vamos, primeiro, lembrar o que significa cada característica.
Passo 2
Entrada: é o dado que o algoritmo recebe para iniciar a execução.
Saída: é o resultado produzido pelo algoritmo.
Definitude: cada passo deve ser formulado de maneira precisa, sem ambiguidade.
Eficácia: cada operação básica deve ser executável em tempo finito e sem dúvidas sobre sua realização.
Finitude: o algoritmo deve terminar após um número finito de passos.
Saída: é o resultado produzido pelo algoritmo.
Definitude: cada passo deve ser formulado de maneira precisa, sem ambiguidade.
Eficácia: cada operação básica deve ser executável em tempo finito e sem dúvidas sobre sua realização.
Finitude: o algoritmo deve terminar após um número finito de passos.
Passo 3
Verificando entrada:
O procedimento recebe dois parâmetros e
, ambos do tipo inteiro. Portanto, a característica entrada está satisfeita.
O procedimento recebe dois parâmetros
Passo 4
Verificando saída:
O procedimento atribui um valor à variável . Como
é o resultado da escolha entre
e
, temos uma saída bem definida. Logo, saída está presente.
O procedimento atribui um valor à variável
Passo 5
Verificando finitude:
Há apenas uma instrução de atribuição, portanto a execução termina imediatamente após esse passo. Assim, o procedimento é finito e a característica finitude também está presente.
Há apenas uma instrução de atribuição, portanto a execução termina imediatamente após esse passo. Assim, o procedimento é finito e a característica finitude também está presente.
Passo 6
Verificando definitude:
A instrução
A instrução
não diz como escolher entre
e
. Falta precisão: não está claro se a escolha é arbitrária, aleatória, baseada em alguma condição, etc. Logo, a característica definitude está ausente.
Passo 7
Verificando eficácia:
Para ser eficaz, cada operação deve ser elementar e executável em tempo finito. Como não há regra clara para implementar o “ou” na atribuição, não podemos garantir que exista uma operação básica bem definida para esse passo. Portanto, eficácia também está ausente.
Para ser eficaz, cada operação deve ser elementar e executável em tempo finito. Como não há regra clara para implementar o “ou” na atribuição, não podemos garantir que exista uma operação básica bem definida para esse passo. Portanto, eficácia também está ausente.
Resposta
Presentes: entrada, saída e finitude.
Faltando: definitude e eficácia.
Faltando: definitude e eficácia.