Programação Pascal
Ensaios: Programação Pascal. Pesquise 861.000+ trabalhos acadêmicosPor: Person • 23/8/2014 • 873 Palavras (4 Páginas) • 189 Visualizações
1a Questão (1,0 ponto): Escreva um programa que leia do teclado um inteiro n, maior ou igual a 1, e
que apresente no vídeo n linhas da forma abaixo. Por exemplo, as seguintes linhas devem ser
apresentadas se n = 5.
12
3
4 5 6
7 8 9 10
11 12 13 14 15
Se n < 1, uma mensagem de erro deve ser apresentada no vídeo.
Resposta:
program quest_01_AD1(input{teclado}, output{vídeo});
procedure ler_valor_n (var n{s}: integer);
begin
write(output, 'Informe valor de n: ');
readln(input, n);
if n < 1 then
writeln(output, 'O valor de n deve ser maior ou igual a 1.');
end;
procedure imprimir_linhas (n{e}: integer);
var
i,j,k: integer;
begin
k:=1;
for i:=1 to n do
begin
for j:=1 to i do
begin
write(output, k, ' ');
K:=K+1
end;
writeln(output)
end
end;
var
n: integer;
begin
ler_valor_n(n);
imprimir_linhas(n)
end.
2a Questão (2,0 pontos): Faça um programa para encontrar: (a) o valor médio dos N elementos
inteiros de um vetor V (Const N = 50) e (b) os m elementos mais próximos deste valor médio.
Considere que todos os N elementos de V são distintos e que m < N. O valor m e os N elementos
inteiros do vetor devem ser lidos do teclado. O valor médio e seus m elementos mais próximos devem
ser apresentados no vídeo.
Resposta:
program quest_02_AD1 (input{teclado}, output{vídeo}); { Esta resposta poderia ser mais eficiente se
o aluno já tivesse estudado algoritmos de ordenação,ou, pelo menos, inserção ordenada.}
const
N = 50;
type
T_Dominio = 1 .. N;
T_Vetor = array[T_Dominio] of integer;
T_Vetor2 = array[T_Dominio] of real;
procedure ler_vetor_e_m (var V{s}: T_Vetor; var m{s}: integer);
var
ind: integer;
begin
write(output, 'Informe valor de m: ');
readln(input, m);
for ind:= 1 to N do
begin
write(output, 'V[', ind, ']=');
readln(input, V[ind]);
end
end;
procedure localiza_maior_dif_de_R (R{e}: T_Vetor; var posicao_maior_dif_de_R: integer;
media{e}: real; m{e}: integer);
{ Esta rotina localiza a maior diferença no vetor R.}
var
i: integer;
maior_dif_de_R: real;
begin
maior_dif_de_R := abs(R[1]-media);
for i := 2 to m do
if abs(R[i]-media) > maior_dif_de_R then
maior_dif_de_R := abs(R[i]-media)
end;
procedure identificar_media_e_mais_proximos (V{e}: T_Vetor; m{e}: integer;
var R{s}: T_Vetor; var md{s}: real);
{ As m primeiras posições do vetor R deverão conter os m elementos mais próximos da média.}
var
i: integer;
soma: integer;
Dif: T_Vetor2;
maior_dif_de_R: real;
posicao_maior_dif_de_R: integer;
begin
soma:=0;
for i:=1 to N do
soma := soma + V[i];
md := soma / N;
{ Calcula as diferenças entre todos elementos e a média.}
for i:=1 to N do
Dif[i] := abs(V[i]-md);
{As m primeiras posições de R receberão os m primeiros valores de V.}
maior_dif_de_R := Dif[1];
posicao_maior_dif_de_R := 1;
for i:=1 to m do
begin
R[i] := V[i];
if Dif[i] > maior_dif_de_R then
begin
maior_dif_de_R := Dif[i];
posicao_maior_dif_de_R := i
end
end;
{Percorrer os demais valores de V procurando por aqueles com uma diferença menor do que o
...