Determine quais características de um algoritmo há nos procedimentos a seguir e quais características estão faltando.
procedure dobro(n: inteiro)
while
procedure dobro(n: inteiro)
while
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.
– 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 , pois a cada iteração
dobra e permanece positivo. Assim, o procedimento não termina em um número finito de passos: a característica Finitude está ausente.
while n>0
nunca se torna falso se
Resposta
Apresentes: Entrada, Definição e Eficácia
Faltantes: Saída e Finitude
Faltantes: Saída e Finitude