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.
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. |
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!
-
Franciele Benedetti
-
2.854 views
- 0 comentários
- 4 de maio de 2020
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo