program ler_e_imprimir_pares_indices; const min = 1; max = 200; type vetor = array [min..max] of longint; var v : vetor; n : longint; posicao : longint; procedure imprimir (var v : vetor; tam : longint); var i : longint; begin for i:= 1 to tam do write (v[i], ' '); writeln; end; procedure ler (var v : vetor; var tam: longint); (* leitura *) var i : longint; begin writeln ('Qual o tamanho do vetor? '); read (tam); for i := 1 to tam do read (v[i]); end; procedure insere (x: longint; var v: vetor; var n: longint); var i : integer; begin i := n; // inicia pelo último valor while x < v[i] do // enquanto o valor buscado é menor que o visitado begin v[i+1] := v[i]; // puxa os valores para a direita i := i - 1; end; v[i+1] := x; // insere na posicao correta e aumenta tamanho do vetor n := n + 1; end; begin (* programa principal *) ler (v, n); imprimir (v, n); writeln ('Qual o valor a ser inserido no vetor? '); read (posicao); insere (posicao, v, n); imprimir (v, n); end.