TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Programação Pascal

Ensaios: Programação Pascal. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  23/8/2014  •  873 Palavras (4 Páginas)  •  175 Visualizações

Página 1 de 4

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

...

Baixar como (para membros premium)  txt (8 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com