Exemplo: Imprimir 3 números na ordem inversa em que foram lidos:
program inverte;
var x, y, z: integer;
begin
read(x, y, z);
write(z, y, x);
end.
x w[1]
y w[2]
z w[3]
Índice (subscrito) Æ constante, variável, expressão
program exemplo;
var i: integer;
w: array [1 .. 3] of integer;
begin
w[1] := 5;
w[2] := 1;
w[3] := 3;
i := 2;
write(w[i]);
write(w[i+1]);
write(w[w[i]]);
end.
Resultado: 1 3 5
program inverte100;
var i: integer;
w: array [1..100] of integer;
begin
for i := 1 to 100 do
readln(w[i]);
for i := 100 downto 1 do
writeln(w[i]);
end.
program acima_media;
var num, n, soma, media, acima: integer;
nota: array [1..50] of integer;
begin
n := 0; soma := 0;
while not eof do begin
n := n + 1;
read(numero, nota[n]);
soma := soma + nota[n];
end;
media := soma / n;
acima := 0;
for i := 1 to n do
if nota[i] > media then
acima := acima + 1;
writeln(`Media: `, media,
` Acima da media: `, acima);
end.
Sim: leitura repetida do arquivo. Contudo:
program maior_nota;
var i, n, max: integer;
num, nota: array [1..50] of integer;
begin
n := 0; soma := 0;
while not eof do begin
n := n + 1;
readln(numero[n], nota[n]);
if nota[n] > max then max := nota[n];
end;
writeln(`Maior nota: `, max);
for i := 1 to n do
if nota[i] = max then
writeln(`Aluno: `, numero[i]);
end.
program maior_nota_2;
var numero, nota, max, n, i: integer;
aluno: array [1..50] of integer;
begin
max := -1; n := 0;
while not eof do begin
readln(numero, nota);
if nota > max then begin
max := nota;
n := 1;
aluno[1] := numero;
end
else if nota = max then begin
n := n + 1;
aluno[n] := numero;
end;
end;
writeln(`Maior nota: `, max);
for i := 1 to n do
writeln(`Aluno: `, numero);
end.
soma := 0;
for j:=1 to 3 do soma:=soma + nota[i,j];
soma := 0;
for i := 1 to 30 do
soma := soma + nota[i,2];
media := soma / 30;
m := 0;
for i := 1 to 4 do
for e := 0 to 3 do
m := m + func[1, i, e];
m := 0;
for i := 1 to 2 do
m := m + func[i, 1, 3];