Created
February 25, 2015 22:33
-
-
Save haskellcamargo/b363435693fea548d598 to your computer and use it in GitHub Desktop.
Trabalho da faculdade
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program Enterprise; | |
{* | |
@date : 11/19/2014 | |
@authors : Marcelo Camargo, | |
Eduardo Tell. | |
@compiler: Free Pascal. | |
*} | |
uses | |
Crt; | |
const | |
{* Para me permitir a quebra de linha de acordo com o | |
sistema operacional, ja que este programa foi compilado | |
em um Linux *} | |
lineBreak = {$IFDEF LINUX} AnsiChar(#10) {$ENDIF} | |
{$IFDEF MSWINDOWS} AnsiString(#13#10) {$ENDIF}; | |
{* Type para gerenciamento de dados | |
pessoais *} | |
type | |
Person = Object | |
age, sex, experience : Byte; | |
end; | |
var | |
action : ShortInt; | |
user : Person; | |
male, female, | |
another : Integer; // Quantidade de indivíduos do sexo masculino, feminino e outro | |
ageOfMenWithExp, // Soma da idade de homens com experiencia de servico | |
numOfMenWithExp, // Quantidade de homens com experiencia de servico | |
menOlderThan45, // Quantidade de homens mais velhos que 45 anos | |
womenExpYounger35 : Integer; // Mulheres mais jovens que 35 anos e experientes | |
begin | |
writeLn('Bem-vindo ao sistema de cadastro de curriculum.', lineBreak); | |
{* Iniciamos action em -1 para que, na primeira inicializacao ele inicie | |
o menu *} | |
action := -1; | |
while action <> 0 do | |
begin | |
{* Menu do sistema *} | |
textColor(yellow); | |
writeLn('* - Cadastrar Pessoa | 0 - Sair do Sistema'); | |
textColor(white); | |
readln(action); | |
{* Sair quando o usuario entrar com 0 *} | |
if action = 0 then | |
break; | |
{* Operacoes de captura de dados *} | |
writeLn('Que tal comecarmos com sua idade? Quantos anos tens?'); | |
readLn(user.age); | |
writeLn('Qual e sua classificacao sexual?'); | |
writeLn('1 - Feminino | 2 - Masculino | * - Outro'); | |
readln(user.sex); | |
{* Incrementar o valor referente ao sexo declarado *} | |
if user.sex = 1 then | |
inc(female) | |
else if user.sex = 2 then | |
inc(male) | |
else | |
inc(another); | |
{* Homens mais velhos que 45 *} | |
if (user.sex = 2) and (user.age > 45) then | |
inc(menOlderThan45); | |
writeLn('Voce ja tem experiencia nisso?'); | |
writeLn('1 - Sim | 2 - Nao'); | |
readln(user.experience); | |
{* Mulheres mais novas que 35 *} | |
if (user.sex = 1) and (user.age < 35) then | |
inc(womenExpYounger35) | |
{* Homens com experiencia *} | |
else if (user.sex = 2) and (user.experience = 1) then | |
begin | |
ageOfMenWithExp := ageOfMenWithExp + user.age; | |
inc(numOfMenWithExp); | |
end; | |
{* Limpamos a tela para iniciar outro questionario *} | |
clrscr; | |
end; | |
{* Todos os dados foram obtidos *} | |
clrscr; | |
textColor(yellow); | |
writeLn(lineBreak, 'Relacao de cadastrados:', lineBreak); | |
textColor(white); | |
writeLn('Do sexo masculino:..', male); | |
writeLn('Do sexo feminino:...', female); | |
writeLn('De outro sexo:......', another, linebreak); | |
{* Tratamento para evitar divisao por 0 e dar o resultado esperado *} | |
if numOfMenWithExp = 0 then | |
writeLn('Nenhum homem com experiencia de servico.') | |
else | |
writeLn('Idade media dos homens com experiencia de servico: ', (ageOfMenWithExp / numOfMenWithExp):2:2); | |
if male = 0 then | |
writeLn('0% de homens mais velhos que 45 anos.') | |
else | |
writeLn('Percentual de homens mais velhos que 45 anos: ', ((menOlderThan45 * 100) / male):2:2, '%'); | |
writeLn('Numero de mulheres experientes com menos de 35 anos: ', womenExpYounger35); | |
writeLn('Pressione qualquer tecla para sair.'); | |
readKey; | |
end. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment