Computação Eletrônica

Computação Eletrônica

Observações gerais: 1) Preencher os dados do cabeçalho do bloco de provas; 2) Preencher o cabeçalho da folha de questões com o nome e a turma; 3) Não utilizar a folha de questões como rascunho. O rascunho, se necessário, deverá ser feito nas folhas do caderno de prova; 4) Ao final da prova entregar ao professor ou fiscal a folha de questões e o caderno de prova; 5) Cada quesito vale 5 pontos.

1º quesito: Na primeira fase de um concurso público foram realizadas provas escritas de português, matemática e conhecimentos gerais. Fazer um programa PASCAL para: a) Ler um inteiro N no intervalo 10 < N ≤ 1000; b) Em processo repetitivo:

• Ler nome e notas das provas de português, matemática e conhecimentos gerais dos N candidatos, colocando seus valores nos vetores NOME, NOTAP, NOTAM e NOTACG, respectivamente;

• Considerando os pesos 2, 3 e 1 para as provas de português, matemática e conhecimentos gerais, respectivamente, calcular a média ponderada pelos pesos para todos os N candidatos, armazenando nos vetores CLAS e MEDIA, os nomes e média ponderada dos candidatos classificados, ou seja, que conseguiram média ≥ 7,0; c) Calcular a media geral dos candidatos classificados (média aritmética das médias dos candidatos classificados); d) Imprimir a relação de todos os candidatos classificados e que conseguiram média maior ou igual a média geral (calculada no item c).

Obs.: i) o cálculo da média ponderada pode ser realizado utilizando a seguinte fórmula:

n p pxpxpx m

++ = onde x corresponde a nota e p ao peso associado;

i) Fazer a validação do valor de N até que seja digitado um valor válido; i) Se não houver nenhum candidato classificado, imprimir mensagem indicativa e não processar os itens c e d).

Disciplina: IF 165 – Computação Eletrônica– 2º Exercício Escolar 2010.2 Data: 21 / 10 / 2010

Program Quesito1; var

N, i, nClas : Integer; Soma, mediaPonderada, mediaGeral: Real; NotaP, NotaM, NotaCG, Media: array[1..1000] of Real; Nome, Clas: array[1..1000] of String;

Begin

Repeat

nClas := 0; Soma := 0; For i:=1 to N do Begin

Write('Digite Nome e Notas (Por., Mat. e Con. Gerais)'); Readln(Nome[i], NotaP[i], NotaM[i], NotaCG[i]); mediaPonderada := (NotaP[i]*2 + NotaM[i]*3 + NotaCG[i]*1)/6; If mediaPonderada >= 7.0 Then Begin nClas := nClas + 1; Clas[nClas] := Nome[i]; Media[nClas] := mediaPonderada; Soma := Soma + mediaPonderada;

End; End;

If nClas > 0 Then Begin mediaGeral := Soma/nClas; For i:=1 to nClas do

If Media[i] >= mediaGeral Then

Writeln(Clas[i]);

End Else Write('Nenhum Candidato Classificado');

End.

2º quesito: Fazer um programa em PASCAL para: a) Em processo repetitivo ler nome, altura e peso dos alunos de uma turma; calcular o

Índice de Massa Corpórea - IMC (Peso/Altura2) e armazenar nas variáveis NMAX e IMCMAX o nome e o IMC do aluno que obteve o maior valor para o IMC; Obs.: i) Se existir mais que um aluno com IMC iguais, armazenar, para valor máximo, o IMC e nome do primeiro aluno considerado; i) O processo de repetição termina quando for digitado a palavra “FIM” para o nome do aluno, o qual não é considerado para o cálculo do IMC. b) Imprimir NMAX e IMCMAX em linhas diferentes.

Program Quesito2; Var

Nome, nMax : String; Altura, Peso, IMCMax, IMC : Real;

Begin

IMCMax := 0; nMax := ''; Repeat

Write('Nome ?'); Readln(Nome);

If Nome <> 'Fim' Then Begin

Write('Altura e Peso?'); Readln(Altura, Peso);

IMC := Peso / (Altura*Altura); If IMC > IMCMax Then Begin

IMCMax := IMC; nMax := Nome;

End;

End; Until Nome = 'Fim';

If nMax <> '' Then Begin

Writeln(nMax); Writeln(IMCMax);

End Else

Write('Nenhum aluno processado'); End.

Comentários