Buscar

Gab 2ºEE 2013.1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Observações gerais: 
1) Preencher os dados do cabeçalho no bloco de provas e na folha de questões o nome e a turma; 
2) Ao final da prova entregar ao professor ou fiscal a folha de questões e o caderno de prova; 
3) Cada quesito vale 5 pontos. 
 
1º quesito: Faça um programa em Pascal que leia do usuário um vetor de inteiros com n posições no 
intervalo [5, 200]. Ler repetitivamente o valor de n até que um valor válido seja digitado pelo usuário. 
Após a leitura dos n valores digitados pelo usuário algumas estatísticas devem ser extraídas deste vetor: 
a) Imprimir na tela a Média do vetor; 
b) Imprimir na tela a Mediana do vetor; 
c) Imprimir na tela a quantidade de números ímpares e pares do vetor. 
 
Obs.: Os números reais devem ser impressos na tela com precisão de duas casas decimais; 
 Assumir que o vetor já é digitado ordenado pelo usuário; 
A média aritmética simples corresponde a �̅� =
1
𝑛
∑ 𝑥𝑖
𝑛
𝑖=1 , onde x corresponde a cada elemento do 
vetor com n posições. 
O cálculo da mediana de dados ordenados de amostras de tamanho n pode ser realizado 
da seguinte forma: se n for ímpar, a mediana será o elemento central 
𝑛+1
2
. Se n for par, a 
mediana será o resultado da média simples entre os elementos 
𝑛
2
 e 
𝑛
2
+1; 
Program Quesito1; 
var 
 v : array[1..200] of integer; 
 i,n, imp,par,soma : integer; 
 media,mediana : real; 
 
begin 
 {Leitura de n} 
 repeat 
 write('n='); 
 readln(n); 
 until (n>=5) and (n<=200); 
 
 {Leitura do vetor} 
 for i := 1 to n do 
 begin 
 write('v[',i,']='); 
 readln(v[i]); 
 end; 
 
 {Inicializando os valores} 
 soma := 0; 
 imp := 0; 
 par := 0; 
 
 {calculo dos valores} 
 if n mod 2 = 1 then 
 begin 
 mediana := v[(n+1) div 2]; 
ÁREA II – CCEN / UFPE 
Disciplina: IF 165 – Computação Eletrônica – 2º Exercício Escolar 2013.1 Data: 08/08/ 2013 
Nome legível do aluno: ............................GABARITO........................................... Turma ......... 
 
 
 end 
 else 
 begin 
 mediana := (v[n div 2] + v[(n div 2) +1]) /2; 
 end; 
 for i:=1 to n do 
 begin 
 soma := soma + v[i]; 
 if v[i] mod 2 = 1 then 
 begin 
 imp := imp + 1; 
 end 
 else 
 begin 
 par := par + 1; 
 end; 
 end; 
 media := soma / n; 
 
 {Impressao dos valores} 
 writeln('Media=',media:5:2); 
 writeln('Mediana=',mediana:5:2); 
 writeln('Pares=',par:5); 
 writeln('Impares=',imp:5); 
end. 
 
2º quesito: A prefeitura de Recife fez uma pesquisa com uma amostra de 1.000 habitantes em 
diferentes bairros da cidade. Nesta pesquisa foram coletados dados sobre o salário dos entrevistados, 
a idade e o número de filhos. Estas informações serão armazenadas em uma matriz chamada MINF (3 x 
1.000) de números reais, na qual a primeira linha corresponde ao salário, a segunda linha corresponde 
a idade e a terceira linha ao número de filhos de cada um dos entrevistados. Faça um programa em 
Pascal para obter as seguintes informações a partir desta amostra: 
a) Coletar os dados dos entrevistados. Eles devem ser lidos a partir de um Procedimento LERDADOS, 
que recebe do programa principal a matriz MINF vazia e armazena nesta os dados dos entrevistados; 
b) Calcular a média salarial, a idade média e a quantidade média de filhos da amostra. Para isso, 
Implementar uma função CALCMEDIA que recebe a matriz de informações MINF preenchida, um 
parâmetro inteiro L (informando qual linha da matriz deve ser usada para o cálculo) e retorna a média 
dos valores da linha L; 
c) Verificar a maior e a menor idade da amostra. Estes valores devem ser calculados com um 
procedimento CALCMINMAX que recebe a matriz MINF preenchida, um parâmetro inteiro L 
(informando qual linha da matriz deve ser usada para o cálculo) e as variáveis Menor e Maior que 
serão usadas para retornar ao programa principal os valores calculados; 
d) No programa principal, fazer a leitura dos dados utilizando o procedimento LERDADOS. Em seguida, 
imprimir média salarial, idade média, e média de filhos usando a função CALCMEDIA. Depois, exibir 
a menor e maior quantidade de filhos utilizando o procedimento CALCMINMANX. Em todas as 
impressões na tela usar duas casas decimais de precisão para números reais. 
Obs.: Não devem ser utilizadas variáveis globais para troca de informações entre os 
subprogramas e o programa principal. 
 
Program quesito2; 
const 
 MMAX = 1000; 
 
type 
 TMatriz = array[1..3,1..MMAX] of real; 
 
procedure LerDados(var m : TMatriz); 
var 
 i : integer; 
begin 
 for i := 1 to MMAX do 
 begin 
 write('Salario[',i,']='); 
 readln(m[1,i]); 
 write('Idade[',i,']='); 
 readln(m[2,i]); 
 write('Filhos[',i,']='); 
 readln(m[3,i]); 
 end; 
end; { LerDados } 
 
function CalcMedia(m : TMatriz; l : integer) : real; 
var 
 i : integer; 
 soma : real; 
begin 
 soma := 0; 
 for i:=1 to MMAX do 
 begin 
 soma := soma + m[l,i]; 
 end; 
 CalcMedia := soma/MMAX; 
end; { CalcMedia } 
 
procedure CalcMinMax(m : TMatriz; l : integer; var min,max : real); 
var i : integer; 
begin 
 min := m[l,1]; 
 max := m[l,1]; 
 for i := 2 to MMAX do 
 begin 
 if m[l,i] < min then 
 begin 
 min := m[l,i]; 
 end; 
 if m[l,i] > max then 
 begin 
 max := m[l,i]; 
 end; 
 end; 
end; { MinMax } 
 
var 
 minf : TMatriz; 
 mSalario, mIdade, mFilhos : real; 
 minFilhos, maxFilhos : real; 
begin 
 {Chamada dos subprogramas} 
 LerDados(minf); 
 mSalario := CalcMedia(minf,1); 
 mIdade := CalcMedia(minf,2); 
 mFilhos := CalcMedia(minf,3); 
 CalcMinMax(minf, 3, minFilhos, maxFilhos); 
 
 {Impressao dos resultados} 
 writeln('Salario medio=',mSalario:5:2, 
 ' Idade media=',mIdade:5:2, 
 ' Filhos medio=',mFilhos:5:2, 
 ' Filhos minimo=',minFilhos:5:2, 
 ' Filhos maximo=',maxFilhos:5:2); 
end.

Outros materiais