Informática, perguntado por duardojunior722, 1 ano atrás

14. Tem-se um conjunto de dados contendo a altura e o sexo (masculino, feminino) de 50 pessoas. Fazer um algoritmo que calcule e escreva:
• A maior e a menor altura do grupo;
• A média de altura das mulheres;
• O número de homens;
• A porcentagem de homens e de mulheres.

!! EM PASCAL !!

Soluções para a tarefa

Respondido por CahPieroni
6
//Em Pascal eu to um pouco enferrujada, mas espero conseguir te ajudar; Acho que o maior problema que você pode achar aqui são potos e vírgulas de mais ;)

program Pessoas;

var vetorAltura : array[1..50] of real;
       vetorSexo : array[1..50] of char; // M se for Mulher e H se for Homem
      i : integer; //contador

      //variáveis para os resultados
      maiorAltura, menorAltura, mediaAltura, porcentagem, mediaMulheres, porcentagemMulheres : real;
      numeroHomens :integer;

begin

//
// Maior e menor altura do grupo e a média
//

// o truque para que o if de baixo funciona esta na declaração dessas variáveis

maiorAltura := 0; //se queremos a maior altura, aqui declaramos a menor possível
menorAltura := maxint; // e aqui a maior possível - maxint -> essa é uma constante com o maior valor inteiro existente

mediaAltura := 0; // esse é simplesmente para zerar a variável
porcentagem := 0;
mediaMulheres := 0;
porcentagemMulheres := 0;
numeroHomens := 0;

for i := 1 to 50 do
begin
  if vetorAltura[i] > maiorAltura then
   begin
    maiorAltura := vetorAltura[i];
  end;

  if vetorAltura[i] < menorAltura then
  begin
    menorAltura := vetorAltura[i];
  end;

  mediaAltura := mediaAltura + vetorAltura[i];
end;

mediaAltura := mediaAltura / 50;

//
// Numero de homens, a porcentagem e a média das mulheres
//

for i := 1 to 50 do
begin
  if vetorSexo[i] = 'H' then   //cada vez que for encontrado em 'H', será porque tem-se um novo homem na contagem
  begin
    numeroHomens := numeroHomens + 1;
  end
  else
  begin
    mediaMulheres := mediaMulheres + vetorAltura[i];
  end;
end;

mediaMulheres := mediaMulheres / (50 - numeroHomens);

porcentagem := numeroHomens / 2; // esse 2 aparece da conta: numeroHomens / 50 (total) * 100(para transformar em porcentagem)

porcentagemMulheres := (100 - porcentagem); //Como a porcentagem de homens mais a porcentagem de mulheres é 100, então 100 - porcentagem de homens = porcentagem de mulheres


// lógica finalizada. Agora é só escrever na tela
writeln('Maior altura do grupo: ', maiorAltura);
writeln('Menor altura do grupo: ', menorAltura);
writeln('Média das alturas do grupo: ', mediaAltura);
writeln('Média das alturas das mulheres: ', mediaMulheres);
writeln('Número de homens no grupo: ', numeroHomens);
writeln('Porcentagem de homens no grupo: ', porcentagem);
writeln('Porcentagem de mulheres no grupo: ', porcentagemMulheres);
readln; //para esperar o seu comando para fechar a tela

end.

fabioaragao: O algoritmo está errado, se colocar no pascalzim ou no free pascal os erros serão apresentados
CahPieroni: Quais são os erros? Eu realmente não tenho o compilador e estou fazendo com o notepad++, se você puder me enviar eu agradeço
fabioaragao: so mesmo colocando no programa... por exemplo, em alguns casos está = e na verdade é :=
fabioaragao: veja bem......... se alguem pegar a sua resposta e copiar e colocar e entregar para o professor sem compilar e der erro, o cara vai tirar zero...  entenda o porque da resposta estar correta e não somente a logica estar correta
CahPieroni: Eu sei, mas espero que o cara de uma lida antes de entregar a resposta. Como eu disse no início, o meu pascal esta enferrujado
CahPieroni: Dei uma consertada, vou ver se acho um compilador online e dar uma revisada. Obrigada
CahPieroni: Agora já foi passado pelo compilador, já não tem mais erro pra quem for usar. Só que a pessoa vai ter que inicializar o seu vetor.
fabioaragao: tranquilão, eu uso o pascalzim e o free pascal.. o pascalzim é bem leve e funciona muito bem.
fabioaragao: se nao conseguir achar o pascalzim( não precisa instalar para rodar ) voce fala
duardojunior722: SERA QUE VC PODERIA COLOCAR PARA LER OS VALORES TAMBEM!
Perguntas interessantes