Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi como faz para mostrar qm tem mais tempo de servico???


Ir à solução Resolvido por devair1010,

Posts recomendados

obs: tem que mostrar o nome da pessoa

Program Pzim ;
var soma,somam,somaf,anos,anos1,anos2,anos3,f,m,cont,idade,s:integer;
anosmaior,sexo,nome:string;
Begin

    for cont:=1 to 2 do
    begin
    writeln('nome');
    readln(nome);
    writeln('idade');
    readln(idade);
    writeln('anos trabalhando');
    readln(s);
    writeln('sexo');
    readln(sexo);
        if sexo='f' then
        begin
        f:=1+f
        end;
            if sexo='m' then
            begin
            m:=1+m
            end;
                if (s>0) and (sexo='m') then
                begin
                anos:=1+anos
                end;
                    if (s=0) and (sexo='m') then
                    begin
                    anos1:=1+anos1
                    end;
                    if (s>0) and (sexo='f') then
                    begin
                    anos2:=anos2+1
                    end;
                        if (s=0) and (sexo='f') then
                        begin
                        anos3:=anos3+1
                        end;
                        
                                if sexo='f' then
                                begin
                                somaf:=idade+somaf
                                end;
                                    if sexo='m' then
                                  begin
                                  somam:=idade+somam
                                  end;
                                soma:=soma+idade
                                end;
                                writeln('1-',f);
                                writeln('2-',m);
                                writeln('3-',anos);  
                                writeln('4-',anos1);
                                writeln('5-',anos2);
                                writeln('6-',anos3);
                                writeln('7-',anosmaior);
                                writeln('8-',soma);
                                writeln('9-',soma/2 :0:0);
                                writeln('10-',somaf/2 :0:0);
                                writeln('11-',somam/2 :0:));
                              
                            
                        
                        
                        
                        
      
End.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@l8i9l0o5     para isso você precisa amarrar uma coisa à outra , primeiro você precisa verificar qual é o maior tempo de serviço e encontrando atribua a uma variável auxiliar para guardar o nome de quem teve o maior tempo de serviço ,  então seu código poderia ser assim  :

Program Pzim ;
var 
  soma,somam,somaf,anos,anos1  : integer;
	anos2,anos3,f,m,cont,idade,s : integer;
  anosmaior,sexo,nome,aux      : string ;
  anos_trabalhados             : integer;
Begin
    for cont:=1 to 2 do
    begin
      writeln('nome');
      readln(nome);
      writeln('idade');
      readln(idade);
      writeln('anos trabalhando');
      readln(s);
      writeln('sexo');
      readln(sexo);
      if s > anos_trabalhados then 
			begin
			  anos_trabalhados := s;
			  aux := nome;
			end;
      if sexo='f' then f := f+1;
      if sexo='m' then m := m+1;
      if (s>0) and (sexo='m') then anos  := anos +1;
      if (s=0) and (sexo='m') then anos1 := anos1+1;
      if (s>0) and (sexo='f') then anos2 := anos2+1;
      if (s=0) and (sexo='f') then anos3 := anos3+1;
      if sexo='f' then somaf := somaf    +    idade;
      if sexo='m' then somam := somam    +    idade;
      soma := soma+idade;
    end;
    writeln('1-' ,f           );
    writeln('2-' ,m           );
    writeln('3-' ,anos        );  
    writeln('4-' ,anos1       );
    writeln('5-' ,anos2       );
    writeln('6-' ,anos3       );
    writeln('7-' ,anosmaior   );
    writeln('8-' ,soma        );
    writeln('9-' ,soma /2 :0:0);
    writeln('10-',somaf/2 :0:0);
    writeln('11-',somam/2 :0:0);
    write  ('O Funcionário ');
		textcolor(lightred);
		textbackground(white);		
		write(' ',aux,' ');
		textcolor(green);
		textbackground(black);				
		write(' Tem O Maior Tempo De Serviço Com ');
		textcolor(lightred);
		textbackground(white);				
		write(' ',anos_trabalhados,' ');
		textcolor(green);
		textbackground(black);						
		write(' Anos Trabalhados');
		textcolor(yellow);
    writeln('           tecle');                              
    readkey;              
End.

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

1#

Segue um esboço de uma reroupagem do código do @devair1010:

Program Pzim;
{uses
  CRT; //carrega comandos extras como ReadKey, TextColor, TextBackGround, "as cores" etc}
const
  MAX = 3; //máximo de cadastros
var 
  //dados do trabalhador
  nome    :string;  
  idade   :integer;
  anosTrab:integer;
  sexo    :char;

  //dados estatíticos
  maiorAnosTrab    :integer; //maior quantidade de anos trabalhados
  nomeMaiorAnosTrab:string;  //nome do trabalhador com maior quantidade de anos trabalhados
  qtdMasc,                   //quantidade de masculinos
  qtdFemi          :integer; //quantidade de femininos
  qtdMascExp,                //quantidade de masculinos experientes
  qtdMascNov       :integer; //quantidade de masculinos novatos
  qtdFemiExp,                //quantidade de femininos experientes
  qtdFemiNov       :integer; //quantidade de femininos novatos
  somaIdades       :integer; //soma das idades dos trabalhadores
  
  //variáveis auxiliares
  cont :integer; //contador de trabalhador cadastrados
 
begin
TextColor(WHITE);
maiorAnosTrab:=-1; //inicializa a variável

for cont:=1 to MAX do
  begin
  //ler dados do trabalhador
  write  ('Nome            :'); readln(nome    );
  write  ('Idade           :'); readln(idade   );
  write  ('Anos trabalhando:'); readln(anosTrab);
  write  ('Sexo            :'); readln(sexo    );
  writeln;
  
  //contabiliza os dados
  if anosTrab > maiorAnosTrab then //se 
    begin
    maiorAnosTrab    :=anosTrab;
    nomeMaiorAnosTrab:=nome;
    end;
  if UpCase(sexo)='F' then qtdFemi:=qtdFemi+1;
  if UpCase(sexo)='M' then qtdMasc:=qtdMasc+1;
  if (anosTrab>0) and (UpCase(sexo)='M') then qtdMascExp:=qtdMascExp+1;
  if (anosTrab=0) and (UpCase(sexo)='M') then qtdMascNov:=qtdMascNov+1;
  if (anosTrab>0) and (UpCase(sexo)='F') then qtdFemiExp:=qtdFemiExp+1;
  if (anosTrab=0) and (UpCase(sexo)='F') then qtdFemiNov:=qtdFemiNov+1;
  somaIdades:=somaIdades+idade;
  end;

//exibe os resultados
writeln('1  - ',qtdFemi      );
writeln('2  - ',qtdMasc      );
writeln('3  - ',qtdMascExp   );  
writeln('4  - ',qtdMascNov   );
writeln('5  - ',qtdFemiExp   );
writeln('6  - ',qtdFemiNov   );
writeln('7  - ',maiorAnosTrab);
writeln('8  - ',somaIdades   );
writeln('9  - ',somaIdades/MAX:0:3);
writeln('10 - ',qtdFemi/MAX:0:3);
writeln('11 - ',qtdMasc/MAX:0:3);
writeln;
TextColor(GREEN);    TextBackGround(BLACK); write  ('O(A) funcionário(a) ');
TextColor(LIGHTRED); TextBackGround(WHITE); write  (' ',nomeMaiorAnosTrab,' ');
TextColor(GREEN);    TextBackGround(BLACK); write  (' tem o maior tempo de serviço com ');
TextColor(LIGHTRED); TextBackGround(WHITE); write  (' ',maiorAnosTrab,' ');
TextColor(GREEN);    TextBackGround(BLACK); writeln(' ano(s) trabalhado(s)');
writeln;
TextColor(YELLOW);                          write  ('Pressione qualquer tecla para continuar');
ReadKey;
end.

 

 

 

2#

Outra forma de contabilizar os dados:

  //contabiliza os dados
  somaIdades:=somaIdades+idade;
  if anosTrab > maiorAnosTrab then
    begin
    maiorAnosTrab    :=anosTrab;
    nomeMaiorAnosTrab:=nome;
    end;
  if UpCase(sexo)='F' then
    begin
    qtdFemi:=qtdFemi+1;
    if anosTrab>0 then qtdFemiExp:=qtdFemiExp+1;
    if anosTrab=0 then qtdFemiNov:=qtdFemiNov+1;
    end
  else
    if UpCase(sexo)='M' then
      begin
      qtdMasc:=qtdMasc+1;
      if anosTrab>0 then qtdMascExp:=qtdMascExp+1;
      if anosTrab=0 then qtdMascNov:=qtdMascNov+1;  
      end;

 

 

 

3#

@l8i9l0o5, poste o enunciado completo para verificarmos se essa base de código está correspondendo ao que foi pedido.

 

 

 

***

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!