Descreva um algoritmo que considere como entrada uma lista de n números inteiros e produza como saída a maior diferença obtida pela subtração de um número inteiro da lista e seu subseqüente.

Passo 1

O enunciado pede, dado um vetor A de n números inteiros, encontrar
\max_{1 \le i \le n-1} \bigl(A_i - A_{i+1}\bigr).
O conteúdo aqui é varrer o vetor uma única vez e manter um registro da maior diferença vista até o momento.

Passo 2

Se n<2, não existem pares consecutivos e podemos, por exemplo, retornar 0 (ou sinalizar erro), pois não há diferença a calcular.

Passo 3

Inicializamos a variável que guarda a maior diferença usando o primeiro par:
\text{max\_diff} \;:=\; A_1 - A_2.

Passo 4

Para cada i de 2 até n-1, fazemos:
\text{diff} \;=\; A_i - A_{i+1},
e se \text{diff} > \text{max\_diff}, atualizamos
\text{max\_diff} := \text{diff}.
No fim do laço, \text{max\_diff} contém a maior diferença desejada.

Resposta

Entrada: lista A de n inteiros 
Saída: maior diferença A[i] - A[i\(+1\)] para i \(=1\),…,n−1

\(max_diff\) := A[1] - A[2]
para i de 2 até n-1 faça
 diff := A[i] - A[i\(+1\)]
 se diff > \(max_diff\) então
 \(max_diff\) := diff
 fim se
fim para
retorna \(max_diff\)

Exercícios de Livros Relacionados