-
Conteúdo Similar
-
Por THAIS DA SILVA RIBEIRO
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.
-
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];
}
}
*/
-