Determine quais características de um algoritmo há nos procedimentos a seguir e quais características estão faltando.
procedure dobro(n: inteiro)
while n>0
n:=2 n

Passo 1

O enunciado pede para identificar, no procedimento abaixo, quais das cinco características clássicas de um algoritmo estão presentes e quais estão ausentes. As cinco características são:
Entrada: dados que o algoritmo recebe.
Saída: resultados que o algoritmo produz.
Definição (ou determinismo): cada instrução é precisa e não ambígua.
Eficácia: cada passo é executável em tempo finito usando operações elementares.
Finitude: o algoritmo sempre termina após um número finito de passos.
O procedimento dado é:
procedure dobro(n: inteiro)
 while n>0 do
 n :\(=2\cdot\)n

Passo 2

Verificamos a entrada: o procedimento recebe um parâmetro n do tipo inteiro. Logo, a característica Entrada está presente.

Passo 3

Analisamos a definição: o laço while n>0 e a atribuição n := 2·n estão bem especificados e não deixam margem a interpretações diferentes. Assim, a característica Definição (determinismo) está presente.

Passo 4

Vejamos a eficácia: a operação de multiplicar um inteiro por 2 e o teste n>0 são operações elementares que podem ser realizadas em tempo finito. Portanto, a característica Eficácia está presente.

Passo 5

Para haver saída, o algoritmo deve produzir algum valor final ou imprimi-lo. Aqui não há nenhum comando de retorno (return) nem de impressão. Logo, a característica Saída está ausente.

Passo 6

Quanto à finitude, o laço while n>0 nunca se torna falso se n>0, pois a cada iteração n dobra e permanece positivo. Assim, o procedimento não termina em um número finito de passos: a característica Finitude está ausente.

Resposta

Apresentes: Entrada, Definição e Eficácia
Faltantes: Saída e Finitude

Exercícios de Livros Relacionados