segunda-feira, 21 de março de 2016

Programação de Computadores - 21 de Março de 2016

Programação de Computadores - 21 de Março de 2016

Exercício

1) A empresa "Vamos Trabalhar" deseja um algoritmo em c++ que leia de 50 funcionários:
  • a matrícula
  • o salário base
  • o percentual de desconto
  • e o tempo de serviço
O programa deverá retornar:

a) A matrícula e o salário final de cada funcionário. Considere que os funcionários que possuírem dois anos ou mais de casa ganham 4% de aumento a cada biênio.

b) A quantidade de funcionários que possuem direito a aumento.

c) a média de tempo de serviço dos funcionários

d) a matrícula do funcionário que possui o maior salário base

e) a matrícula do funcionário que possui o menor salário base


2) Teste de mesa

int main(){

int i,j;

i=1;
j=1;

cout<<i,j<<endl;

while(i<=5){
   cout<<i+j<<endl;

   while(j<=2){

      i=(i+j);
      j=(j+1);

      if ((i+7)%2==0){
          cout<<i+2<<endl;
      }//fim do if

      else{
         cout<<j+2<<endl;
      }//fim do else

   }// fim do while

j=1;

} // Fim do while

} // Fim do programa


Minha resposta

Questão 1)

int main(){

//declarando as variáveis

int matrícula;
float salariobase;
float percentualdesconto;
int tempodeservico;
float salariofinal;
int fatorbienio;
int direitoaumento;
int numerodefuncionarios;
int somatemposervico;
float mediatemposervico;
float maiorsalariobase;
int funcionariomaiorbase;
float menorsalariobase;
int funcionariomenorbase;

// zerando as variáveis

matricula=0;
salariobase=0;
percentualdesconto=0;
tempodeservico=0;
salariofinal=0;
fatorbienio=0;
direitoaaumento=0;
numerodefuncionarios=0;
somatemposervico=0;
mediatemposervico=0;
maiorsalariobase=0;
funcionariomaiorbase=0;
menorsalariobase=0;
funcionariomenorbase=0;

//iniciando o programa

cout<<"Informa a matrícula do funcionário."<<endl;
cout<<"Digite -1 para sair."<<endl;
cin>>matrícula;


//início do while

while (matrícula!=-1){
   cout<<"Informe o salário base do funcionário."<<endl;
   cin>>salariobase;
   cout<<"Informe o percentual  (%) de desconto do funcionário."<<endl;
   cin>>percentualdesconto;
   cout<<"Informe o tempo de serviço (em anos completos)<<endl;
   cin>>tempodeservico;

//resposta da letra a

   cout<<"A matrícula do funcionário é "<<matricula<<"."<<endl;

   if (tempodeservico<2){
      salariofinal=salariobase-(salariobase*percentualdesconto/100);
   } // fim do if

   if(tempodeservico>=2){
      if (tempodeservico%2==1){
         fatorbienio=(tempodeservico-1)/2;
      } // fim do if
      else {
         fatorbienio=tempodeservico/2;
      } // fim do else
      salariofinal=salariobase*(104/100)fatorbienio-salariobase*(104/100)fatorbienio*percentualdesconto;
      cout<<"O salário do funcionário é "<<salariofinal<<"."<<endl;
   } // fim do if

//resposta da letra b => saída depois do while
   if(tempodeservico>=2){
      direitoaaumento++;
   }  // fim do if

//resposta da letra c
   numerodefuncionarios++;
   somatemposervico=tempodeservico+somatemposervico;

//resposta da letra d
   if(maiorsalariobase<salariobase){
      maiorsalariobase=salariobase;
      funcionariomaiorbase=matricula;
   } // fim do if

//resposta da letra e
   if(menorsalariobase==0){
      menorsalariobase=salariobase;
      funcionariomenorbase=matricula;
   } // fim do if
   if(menorsalariobase>salariobase){
      menorsalariobase=salariobase;
      funcionariomenorbase=matricula;
   } // fim do if

} // fim do while

//Após o while

// resposta da letra b
   cout<<"A quantidade de funcionários que possuem direito a aumento é " <<direitoaaumento<<"."endl;

// resposta da letra c
   mediatemposervico=somatemposervico/numerodefuncionarios;
   cout<<"A média de tempo de serviço dos funcionários é "<<mediatemposervico<<"."<<endl;

// resposta da letra d
   cout<<"A matrícula do funcionário que possui o maior salário base é "<<funcionariomaiorbase<<"."endl;

//resposta da letra e
   cot<<"A matrícula do funcionário que possui o menor salário base é "<<funcionariomenorbase<<"."<<endl;

//finalizando o programa

system(pause);
return 0;

} // fim do programa


Questão 2)
Tentei fazer, mas deu loop infinito.

Imprimiu

11
2
4
5
7
7
7
.
.
.



Lucas T R Freitas

Nenhum comentário: