Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 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


  • 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.