Skip to content

Instantly share code, notes, and snippets.

@haskellcamargo
Created February 25, 2015 22:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save haskellcamargo/b363435693fea548d598 to your computer and use it in GitHub Desktop.
Save haskellcamargo/b363435693fea548d598 to your computer and use it in GitHub Desktop.
Trabalho da faculdade
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