Determine quais características de um algoritmo há nos procedimentos a seguir e quais características estão faltando.
procedure operatorname{divisão(n:~inteiro)~}
while n \geq 0
begin
m:=1 / n
n:=n-1
end

Passo 1

O enunciado apresenta o procedimento
\text{divisão}(n:\text{inteiro})\quad \text{while }n\ge 0\text{ do} \begin{cases} m := 1/n\\\ n := n - 1 \end{cases}ã
e pede para identificar quais das principais características de um algoritmo estão presentes ou faltando. As características que vamos analisar são:
  1. Entrada
  2. Saída
  3. Finitude
  4. Definição (precisão)
  5. Efetividade
  6. Generalidade

Passo 2

Entrada
O algoritmo recebe um parâmetro inicial, o inteiro n.
Portanto, a característica Entrada está presente.

Passo 3

Saída
O procedimento nunca retorna nem imprime nenhum valor; apenas altera internamente m sem expô-la.
Logo, está faltando a característica Saída.

Passo 4

Finitude
A cada iteração decremente-se n em 1, de modo que, partindo de um n finito, o laço terminará quando n<0.
Logo, a característica Finitude está presente (o processo não é infinito, salvo erro em tempo de execução).

Passo 5

Definição (precisão)
Cada passo está descrito sem ambiguidade: há condição de laço clara e comandos de atribuição bem definidos.
Portanto, a característica Definição está presente.

Passo 6

Efetividade
Para n=0, o comando m := 1/n implica divisão por zero, operação que não é computável de forma efetiva.
Logo, falta a característica Efetividade, pois nem toda operação é garantidamente executável.

Passo 7

Generalidade
O procedimento não trata todos os inteiros possíveis (falha em n=0) e não retorna um resultado genérico.
Portanto, está faltando a característica Generalidade.

Resposta

Presentes:
  • Entrada
  • Finitude
  • Definição
Faltando:
  • Saída
  • Efetividade
  • Generalidade

Exercícios de Livros Relacionados