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
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.
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
Perguntas interessantes
Matemática,
9 meses atrás
Português,
9 meses atrás
Matemática,
9 meses atrás
História,
1 ano atrás
Biologia,
1 ano atrás
Matemática,
1 ano atrás
Pedagogia,
1 ano atrás