



Olá pessoal! Tudo bem com vocês?
Vamos para mais um exercício de Algoritmo. Hoje utilizando o Laço do tipo Repeat.
Fonte do Algoritmo: https://docplayer.com.br/54581792-Lista-de-exercicios-estrutura-de-repeticao-for-e-while-3-criar-um-algoritmo-que-imprima-a-soma-dos-nu-meros-pares-de-230-a-520.html
Vamos ao exercício!
Fazer um programa para ler os dados (matrícula, idade, sexo, altura e concursado [S/N]) de vários funcionários de uma empresa. O último tem a matrícula igual a zero e não entra nos cálculos.
Calcular e mostrar:
a) o número de funcionárias concursadas;
b) o número de funcionários (somente homens);
c) a maior idade dos homens concursados;
d) a quantidade de mulheres com mais de 30 anos sem concurso;
e) a quantidade de concursados(as);
f) a média das alturas dos homens com menos de 40 anos.*}
Esta resposta foi desenvolvida no Lazarus.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | program CadastroFuncionarios; var matricula: integer; idade: integer; sexo: char; altura: double; concursado: char; contConcursada: integer = 0; contFuncionarioHomens: integer = 0; homemMaisVelho: integer = 0; qtdMulheresMaisTrintaAnosSemConcurso: integer = 0; qtdConcursados: integer = 0; mediaAlturaHomensMenos40Anos: Double; contHomensMenos40Anos: integer = 0; SomaAlturaHomensMenos40Anos: double = 0; begin WriteLn(Utf8ToAnsi('Programa Cadastro de funcionários - Show Delphi')); WriteLn(''); WriteLn(Utf8ToAnsi('Para parar de cadastrar, informe 0 na matrícula.')); WriteLn(''); WriteLn(''); repeat Write(Utf8ToAnsi('Informe a matrícula: ')); ReadLn(matricula); if matricula > 0 then begin Write('Informe a idade: '); ReadLn(idade); Write('Informe o sexo: '); ReadLn(sexo); sexo := upcase(sexo); Write('Informe a altura: '); ReadLn(altura); Write(Utf8ToAnsi('É concursado?: ')); ReadLn(concursado); concursado := upcase(concursado); // a) o número de funcionárias concursadas; if (sexo = 'F') and (concursado = 'S') then begin contConcursada := contConcursada + 1; end; // b) o número de funcionários (somente homens); if (sexo = 'M') then begin contFuncionarioHomens := contFuncionarioHomens + 1; if idade > homemMaisVelho then begin // c) a maior idade dos homens concursados; homemMaisVelho := idade; end; // contando os homens com menos de 40 anos e somando a altura para calcular a média // f) a média das alturas dos homens com menos de 40 anos. if idade < 40 then begin SomaAlturaHomensMenos40Anos:= SomaAlturaHomensMenos40Anos + altura; contHomensMenos40Anos := contHomensMenos40Anos + 1; end; end; // d) a quantidade de mulheres com mais de 30 anos sem concurso; if (sexo = 'F') and (concursado = 'N') and (idade > 30) then begin qtdMulheresMaisTrintaAnosSemConcurso := qtdMulheresMaisTrintaAnosSemConcurso + 1; end; // e) a quantidade de concursados(as); if (concursado = 'S') then begin qtdConcursados := qtdConcursados + 1; end; end; WriteLn('------'); until (matricula = 0); // f) a média das alturas dos homens com menos de 40 anos. Calculando Média mediaAlturaHomensMenos40Anos := 0; if contHomensMenos40Anos > 0 then begin { teste para evitar divisão por zero. } mediaAlturaHomensMenos40Anos:= SomaAlturaHomensMenos40Anos / contHomensMenos40Anos; end; WriteLn(''); WriteLn(Utf8ToAnsi('Relatório')); WriteLn(''); WriteLn(Utf8ToAnsi('O número de funcionárias concursadas é: '), contConcursada); WriteLn(Utf8ToAnsi('O número de funcionários (somente homens) é: '), contFuncionarioHomens); WriteLn(Utf8ToAnsi('A maior idade dos homens concursados é: '), homemMaisVelho); WriteLn(Utf8ToAnsi('A quantidade de mulheres com mais de 30 anos sem concurso é: '), qtdMulheresMaisTrintaAnosSemConcurso); WriteLn(Utf8ToAnsi('A quantidade de concursados(as) é: '), qtdConcursados); WriteLn(Utf8ToAnsi('A média das alturas dos homens com menos de 40 anos é: '), mediaAlturaHomensMenos40Anos :0:2); WriteLn(''); WriteLn('Enter para fechar o programa'); ReadLn; end. |
Espero que tenham gostado!
Dúvidas ou sugestões? Utilize os comentários.
Valeu pessoal até o próximo Post!