Escolar Documentos
Profissional Documentos
Cultura Documentos
PASCAL
• Problema:
Dada uma sequência de 3 valores numéricos, lidos
do teclado, calcular a sua média e escrever o
resultado no écran.
• Variáveis de entrada: seq. de valores {ai: 1≤ i< 3}
• Variável de saída: media
1
Cálculo da média de uma
sequência de valores
• Solução trivial:
Utilização de 3 variáveis diferentes e
independentes (a1, a2 e a3)
1
media = ⋅ (a1 + a2 + a3)
3
• Solução trivial:
Utilização de 3 variáveis diferentes e
independentes (a1, a2 e a3)
1
media = ⋅ (a1 + a2 + a3)
3
2
Cálculo da média de uma
sequência de valores
1
media = ⋅ (a1 + a2 + ... + aN )
N
3
Cálculo da média de uma
sequência de valores
Solução 2:
E se formos somando à medida que vamos lendo,
repetindo N vezes a soma parcial:
somai = somai-1 + ai
4
Cálculo da média de uma
sequência de valores
5
Cálculo da média de uma
sequência de valores
Solução:
Podemos usar o mesmo método mas, para além de
construirmos a soma teremos de contar o número
de elementos da sequência
• Como?
Da mesma forma
num i = num i-1 + 1 (por cada elemento lido)
E o valor inicial num0 ?
0 (claro!)
Luís Almeida - Programação I, 01/02
6
Acumuladores e Contadores
• Acumulador
soma := 0;
(* repetir para cada ai *)
soma := soma + ai ;
• Contador
num := 0;
(* repetir para cada ai *)
num := num + 1 ;
7
Cálculo da média de uma
sequência de valores
• array
var
sequencia: array[1..100] of integer;
sequencia 3 9 1 6 ... 1
1 2 3 4 ... 100
índice
8
Cálculo da média de uma
sequência de valores
• array (utilização)
begin
soma := soma + sequencia[1];
sequencia[2] := 9;
for i := 1 to 100 do
writeln(sequencia[i]);
...
end
Luís Almeida - Programação I, 01/02