Ir para conteúdo
  • 0
THAIS DA SILVA RIBEIRO

Algoritmo e programação

Pergunta

Prova Prática – Algoritmo
A prova possui 3 etapas, mas se constitui de um único programa COMPLETO que deve incluir
estas três etapas em sequência.
Implemente o seguinte algoritmo descrito abaixo composto das seguintes tarefas:
Etapa 1:
O programa deve ler uma série de dados referentes aos salários de cada um dos funcionários
de uma empresa, realizando uma operação de reajuste destes salários, de acordo com a tabela
de reajustes indicada abaixo. O programa deve repetir a leitura dos dados de salário enquanto
o usuário responder que deseja continuar fornecendo novos dados (ver o exemplo abaixo da
tela de entrada de dados do programa que se deseja obter)


Faixa Salarial (Salário Antigo) Percentual de Reajuste
Abaixo de R$ 1.000,00 15 % (quinze por cento de reajuste)
Entre R$ 1.000,00 e menos de R$5.000,00 10 % (quinze por cento de reajuste)
Entre R$ 5.000,00 e menos de R$10.000,00 5 % (quinze por cento de reajuste)
Acima de R$ 10.000,00 Sem reajuste

 

Exemplo da tela de entrada de dados para Etapa 1:
Digite o salario: 100
Salario reajustado: 115.00
Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
Digite o salario: 1000
Salario reajustado: 1100.00
Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
Digite o salario: 5000
Salario reajustado: 5250.00
Deseja informar outro salario ? (0 para sair, 1 para continuar) 1
Digite o salario: 10000
Salario reajustado: 10000.00
Deseja informar outro salario ? (0 para sair, 1 para continuar) 0


Etapa 2:
Uma vez que os dados dos salários dos funcionários foram lidos e processados (feitos os
reajustes e calculados os totais e valores necessários para esta nova etapa), o programa irá
entrar no modo de exibição do relatório geral. Neste modo, o programa irá exibir na tela um
relatório dos seguintes itens:
- Total acumulado de salários da folha de pagamento antiga (antes do reajuste);
- Total acumulado de salários da folha de pagamento nova (após o reajuste);
- Média geral dos salários pagos pela empresa antes do reajuste;
- Média geral dos salários pagos pela empresa após o reajuste;
- Valor de acréscimo no total da folha de pagamento em função do reajuste e
percentual de crescimento da nova folha de pagamento em relação a antiga folha de
pagamento.
Exemplo da tela de entrada de dados para Etapa 2: (baseada nos dados do exemplo anterior)
== Relatorio Geral ==
Total da folha de pagamento antiga: 16100.00
Total da folha de pagamento nova: 16465.00
Media de salarios antigos da empresa: 4025.00
Media de salarios novos da empresa: 4116.25
Acrescimo na folha de pagamento: 365.00 (acrescimo de 2.27 por cento)
Etapa 3:
Uma vez que os dados dos gerais do relatório de salário foram exibidos, exibir os dados
referentes aos totais ATUAIS de funcionários em cada faixa de salário:
- Número total de funcionários com novo salário abaixo de 1.000;
- Número total de funcionários com novo salário entre 1.000 e menos de 5.000;
- Número total de funcionários com novo salário entre 5.000 e menos de 10.000;
- Número total de funcionários com novo salário a partir de 10.000;
- Número total de funcionários da empresa.
== Relatorio Geral ==
Numero de funcionarios com salario abaixo de 1.000: 1
Numero de funcionarios com salario entre 1.000 e menos de 5.000: 1
Numero de funcionarios com salario entre 5.000 e menos de 10.000: 1
Numero de funcionarios com salario a partir de 10.000: 1
Total de funcionarios: 4
Regras em relação da prova
1. A prova é individual.
2. É permitido consultar somente a lista de exercícios já realizados.
3. Não é permitido o acesso à internet durante a prova.

image.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por Lourrane Santos
      Olá, Eu Preciso criar um codigo para cadastrar 20 clientes em um posto de gasolina, e depois fazer a somatoria de quanto gastou
      Minha duvida é a seguinte, eu coloquei pra cadastrar só 20, mas, antes de fazer a somatoria, aparece um 21° pra eu digitar o combustivel utilizado e   quantos litros, eu gostaria de saber o que eu tenho que mudar, pra esse 21° não aparecer, e após cadastrar o ultimo 20°, ele somar tudo de uma vez já...
      Grata desde já
       
      #include <cstdio> #include <string.h> #include <iostream> #include <conio.h> int main(){ int i, VETOR_A[100], Cont=0; char VETOR_B[100], Op= 'S', Aux[10]; float VETOR_C[100], PRECO , SOMA=0; do{ printf("\nCLIENTE %d:\n\n", Cont+1); printf("DIGITE O COMBUSTIVEL UTILIZADO:\n \n= G = GASOLINA - R$ 4,49\n= E = ETANOL - R$ 2,69\n= D = DIESEL - R$ 3,39\n\n"); do{ fflush(stdin); scanf ("%c", &VETOR_B[Cont]); if (toupper(VETOR_B[Cont])=='G'){strcpy(Aux,"GASOLINA"); PRECO=4.49; Op= 'p';} else if(toupper(VETOR_B[Cont])=='E'){strcpy(Aux,"ETANOL" ); PRECO=2.69; Op= 'p';} else if(toupper(VETOR_B[Cont])=='D'){strcpy(Aux,"DIESEL" ); PRECO=3.39; Op= 'p';} else {printf("COMBUSTIVEL NAO CADASTRADO, SO E PERMITIDO OS TRES COMBUSTIVEIS CADASTRADO NO SISTEMA\n"); } }while (Op != 'p'); do{ printf ("\nDIGITE O TOTAL DE LITROS%S ABASTECIDO: ", Aux); fflush (stdin); scanf ("%d", &VETOR_A[Cont]); if (VETOR_A[Cont] >=0){ VETOR_C[Cont] = (float)VETOR_A[Cont] * PRECO; } else{ printf("NAO PODE EXISTIR VALOR NEGATIVO...!\n"); } }while(VETOR_A[Cont] < 0); if(Cont < 20)Cont++; else { getch(); Op='N'; } }while(toupper(Op) != 'N'); printf("\n"); for(i=0; i<Cont; i++){ printf("TOTAL DE LITROS ABASTECIDO: %d COMBUSTIVEL UTILIZADO: %c VALOR TOTAL: %2f\n",VETOR_A[i], VETOR_B[i], VETOR_C[i]); SOMA += VETOR_C[i]; } printf("\nVALOR TOTAL ARRECADADO NO DIA -> R$ %.2f\n\n",SOMA); getch(); return 0; }  
    • Por m
      Sou iniciante em c e preciso transformar um num. romano em numero decimal mas não posso usar nenhuma biblioteca o função alem de for, while, strcmp, e if basicamente. 
    • Por yukaGoonom
      Estou montando um programa em c+ , que deveria solicitar números para uma matriz e identificar se ela é simétrica , ou não é simétrica, porém não acho erro em meu programa , se alguém puder me informar aonde estou errando , ficaria grata.
       
      #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char* argv[]){          int A[8][8],B[8][8];     int i,j,cont=0;          for(i=0;i<8;i++){         for(j=0;j<8;j++){             printf("Informe o elemento da linha %d da coluna %d: ",i+1,j+1);             scanf("%d", &A[j]);             B[j] = A[j];                          if(A[j]!=B[j]){                 cont++;             }         }     }     if(cont>0){         printf("\n\nA matriz nao e simetrica!!\n\n");     }else{         printf("\n\nA matriz e simetrica!!\n\n");     }          system("PAUSE");     return 0; }  
    • Por Guiibarbosaa
      Olá galera, bom dia !
       
      Estou desenvolvendo um trabalho para faculdade onde armazeno e exibo os resultados de ordenação de diversos algoritmos, sendo numero de comparações, trocas e tempo.
      Tenho tudo pronto e escrito, ou seja, o escopo do trabalho esta Ok, falta implementar o resto dos algoritmos.
       
      Consegui quase tudo com a ajuda de colegas de outro fórum, porém estou com um erro que não consigo soluciona-lo, se alguém puder me dar uma ideia do que esta acontecendo fico grato.
       
      1- Aqui eu tenho minha lista global de registros que ira armazenar os resultados de ordenação:
       
      typedef struct{
          int numcomp;
          int numtrocas = 0;
      }ESTATISTICAS;
       
      2-  Como exemplo o algoritmo bubble sort recebendo os valores por referencia:
       
      void bubbleSort(int vet[], int num, ESTATISTICAS* estatisticas){

          int i, continua, aux, fim = num;
                  do{
                      continua = 0;
              
                      for(i = 0; i < fim -1; i++ ){
                      
                          estatisticas->numcomp++;    
                          if(vet > vet[i+1]){
                              aux = vet;
                              vet = vet[i+1];
                              vet[i+1] = aux;
                              estatisticas->numtrocas++;
                              continua = 1;
                          }
                      }
                      fim--;
                  }while(continua != 0);
      }
       
       
      3- e aqui a declaração da lista e a chamada da função de ordenação com a exibição dos valores armazenados:
       
      int *ptr;
                          ptr = geraVetor(vetor1);
                          //imprimeVetor(ptr, vetor1);
                      
                              
                          ESTATISTICAS* estatisticas = (ESTATISTICAS*) malloc(sizeof(ESTATISTICAS)); 
                          
                          clock_t  start, end;
              
                          start = clock();
                          bubbleSort(ptr,vetor1, estatisticas);
                          end = clock();
                          printf("\n\nTROCAS: %d", estatisticas->numcomp);
                          printf("\n\nTROCAS: %d", estatisticas->numtrocas);
       
      4- O erro consiste em: quando compilo meu programa tudo esta ok, porém o valor retornado pela variável numcomp esta muito além do numero de comparações, se parecendo mais com um endereço de memoria. algo do tipo: 348219. Já a variável numtrocas o valor é retornado normalmente apos os incrementos ++;
       
       
      Aguardo ajuda, de já agradeço.
       
       
    • Por Fmix
      Como eu escrevo um algoritmo que forneça os números distintos de um vetor lido. Por exemplo, se o vetor lido for v = {3, 2, 1, 3, 4, 1, 5, 5, 2} o algoritmo deverá mostrar os valores 3, 2, 1, 4, 5. Considere a leitura de um vetor de 20 números inteiros.



      Na verdade ele pede para mostrar no final todos os valores do vetor mas sem repeti-los,

      Exemplo de Entrada {1,1,2,2,3,3,4,4,5,5}
      Exemplo de Saída {1,2,3,4,5}


      Obrigado!



      Código fonte feito até agora...


      #include <stdio.h>
      #include <stdlib.h>
      int main()
      {
      int A[5];
      int B[5];
      int cont1,cont2;
      cont1=0;

      while(cont1<5)
      {
      scanf("%d",&A[cont1]);
      cont1=cont1+1;
      }
      cont1=0;
      cont2=0;


      while(cont1<5){
      cont1=cont1+1;

      if (A[cont1 != B[cont2]]){
      cont2=cont2+1;
      B[cont2]= A[cont1];
      }

      }


      cont1=0;
      while(cont1<5){
      printf("%d ",B[cont1]);
      cont1=cont1+1;
      B[cont2]= A[cont1];
      }



      return 0;
      }


      /*

      B[cont2]=A[cont1];

      while(cont1<10){
      cont1=cont1+1;

      if (B[cont2] != A[cont1] ){
      cont2:cont2 +1;
      B[cont1]= A[cont1];

      }

      }

      */

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.