viciado 1 Denunciar post Postado Agosto 10, 2008 Uma empresa contratou 15 funcionários temporários. De acordo com o valor de vendas mensais, os funcionários ganham pontos que determinaram seus salarios ao final de cada mês. Sabe-se que eles trabalharão nos meses de Julho/2008 a Fevereiro/2009. Faça um algoritmo que: 1) Cadastre os nomes dos funcionários e suas respectivas vendas mensais 2) Calcule e mostre a pontuação geral de cada funcionário no período. Cada R$ equivalem a 1 ponto 3) Calcule e mostre a pontuação geral de todos os funcionários a cada mês 4) Determine e mostre a maior pontuação do período, com o respectivo nome do funcionário 5) Determine e mostre o valor total vendido Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 10, 2008 E? Já fez alguma coisa? Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 10, 2008 Não achei em um forum de desafios ninguem conseguiu fazer Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 11, 2008 E por que você não tenta rabiscar alguma coisa? Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 11, 2008 Pensei aqui e não consegui como ninguem tinha conseguido resolvi postar aqui o desafio Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Agosto 11, 2008 Isso é simples. Tente fazer, pois se não começar não vai conseguir mesmo. Leia os 15 nomes e guarde numa matriz o valor de venda de cada um por mês. A matriz será 15x8. Pensei aqui e não consegui como ninguem tinha conseguido resolvi postar aqui o desafio Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 11, 2008 Isso é simples. Tente fazer, pois se não começar não vai conseguir mesmo. Leia os 15 nomes e guarde numa matriz o valor de venda de cada um por mês. A matriz será 15x8. Pensei aqui e não consegui como ninguem tinha conseguido resolvi postar aqui o desafio Ok vou tentar. Mais eu me cadastrei num forum que manda email com desafios de algoritmos e ninguem conseguiu resolver esse, por isso resolvi postar aqui. Falando nisso existe alguma area especifica com desafios de algoritmos aqui no forum? Pq recebo varios e poderia repassar os desafios para todos VLW Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 11, 2008 class Funcionario { def nome def periodo = ['jul08':0,'ago08':0,'set08':0,'out08':0,'nov08':0,'dez08':0,'jan09':0,'fev09':0] Funcionario(fNome,fVendas) { nome = fNome def indice = 0 periodo.each() { k,v-> periodo[k] = fVendas[indice] indice++ } } } limite = 5 def cadastrar (fLista) { def tmpNome,tmpLista,tmp def r def meses = ["julho/08","agosto/08","setembro/08","outubro/08","novembro/08","dezembro/08","janeiro/09","fevereiro/09"] limite.times { r = new Scanner(System.in) tmpLista = [] println "@@@@@@@@ CADASTRO @@@@@@@" print "Nome:" tmpNome = r.nextLine() print "\nLista de vendas:" meses.each { print "\n$it : " tmp = Float.parseFloat(r.next()) tmpLista.push(tmp) } r.finalize() fLista[it] = new Funcionario(tmpNome,tmpLista) } } Funcionario[] lista = new Funcionario[limite] cadastrar(lista) println "\n Pontuacao geral de cada funcionario:" lista.each() { System.out.printf("%s : %.0f\n",it.nome,it.periodo.values().sum()) } println "\nPontuacao geral mes a mes:" lista.each() { func -> println "${func.nome} :" func.periodo.each() { key,val -> System.out.printf("\t\t %s:%.0f\n",key,val) } } def total = 0 lista.each() { total+=it.periodo.values().sum() } System.out.printf("\nValor total vendido: %.2f\n",total) def tmp = [] lista.each() { tmp.push(it.periodo.values().sum()) } System.out.printf("\nMaior pontuacao: %s , %.0f\n",lista[tmp.indexOf(tmp.max())].nome , tmp.max()) Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 11, 2008 Ae acho q é isso implementou em alguma linguagem? Parabéns cara, o próximo desafio que eu receber eu posto aqui no forum Esse estava como nível de 6 de uma escala de 0 a 10 Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 12, 2008 implementou em alguma linguagem? Não conhece Groovy? Esse estava como nível de 6 de uma escala de 0 a 10 Dava no máximo 3.Lista e struct são coisas básicas. Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 12, 2008 implementou em alguma linguagem? Não conhece Groovy? Esse estava como nível de 6 de uma escala de 0 a 10 Dava no máximo 3.Lista e struct são coisas básicas. Não conheço você tem em C? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 12, 2008 Não.Mas se for traduzir,nao use queue.h : o manual é ruim e dizem que dá problemas. Compartilhar este post Link para o post Compartilhar em outros sites
Mortalzera 0 Denunciar post Postado Agosto 14, 2008 Viciado você tem o site desse lugar que passam desafios, poderia passa pra galera. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 14, 2008 Não sei o site onde ele viw isso + esse é legal, http://br.spoj.pl/problems/seletivas/ Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 15, 2008 Viciado você tem o site desse lugar que passam desafios, poderia passa pra galera. Nem me lembro cara eu me cadastrei e eles mandam pro email Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 16, 2008 veja o endereco que enviou o email... ou as propriedades da mensagem. Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Agosto 20, 2008 nas propriedades diz: algoritmo ranking Mais não aparece link de site Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Agosto 29, 2008 Fiz alguma coisa, críticas e sugestões são bem vindas. Obs.: Os meses não coloquei todos, apenas dois pra testar. #include <stdio.h> #include <string.h> #include <stdlib.h> #define SIZE_VETOR 10 #define SIZE_VENDAS 8 typedef struct { char nome[60]; float vendas_mensais[SIZE_VENDAS]; }Funcionarios; void Menu(); void ExecutaOpcao(int op, Funcionarios *cadastro); int CadastroVendedor(char *nome,Funcionarios *cadastrar); int CadastroVendas(Funcionarios *cadastrar, char *nom); void ExibeVendedor(Funcionarios *cadastrar); int PontuacaoVendedor(Funcionarios *cadastrar, int i); int PontuacaoGeralMes(Funcionarios *cadastrar, int j); void PontuacaoMaiorGeral(Funcionarios *cadastrar, char *nom, int &mai); float ValorTotalVendido(Funcionarios *cadastrar); void InicializaVetorZerado(Funcionarios *cadastrar); int VerificaPosicaoLivre(Funcionarios *cadastrar); int main() { int opcao; Funcionarios cadastro[SIZE_VETOR]; InicializaVetorZerado(cadastro); VerificaPosicaoLivre(cadastro); do { Menu(); printf("\n\nDigite uma opcao: "); scanf("%d",&opcao); ExecutaOpcao(opcao,cadastro); }while(opcao != 7); return(0); } void Menu() { printf("1. Cadastrar Vendedor"); printf("\n2. Cadastrar Vendas Mensais"); printf("\n3. Exibir Vendedores"); printf("\n4. Exibir Pontuacao Geral/Mes"); printf("\n5. Maior Pontuacao"); printf("\n6. Valor Total Vendido"); printf("\n7. Sair\n\n"); } void ExecutaOpcao(int op, Funcionarios *cadastro) { char nome[60]; char nome1[60]; int j; int maior = 0; char nome_vendedor[60]; switch(op) { case 1: printf("\nNome do Vendedor: "); scanf("%s",&nome); if(CadastroVendedor(nome,cadastro)) printf("VENDEDOR CADASTRADO COM SUCESSO!\n\n"); else printf("CADASTRO LOTADO!\n\n"); break; case 2: printf("\nNome do Vendedor: "); scanf("%s",&nome1); if(CadastroVendas(cadastro,nome1)) printf("VENDA CADASTRADA COM SUCESSO!\n\n"); else printf("VENDEDOR NAO ENCONTRADO!!\n\n"); break; case 3: ExibeVendedor(cadastro); break; case 4: system("cls"); for(j=0;j<SIZE_VENDAS;j++) { printf("Pontuacao Total do Mes[%d]: %d\n",j,PontuacaoGeralMes(cadastro,j)); } printf("\n\n"); break; case 5: system("cls"); PontuacaoMaiorGeral(cadastro,nome_vendedor,maior); printf("O MAIOR PONTUADOR FOI %s COM %d PONTOS.\n\n",nome_vendedor,maior); break; case 6: system("cls"); printf("O Valor total vendido foi: %.2f\n\n",ValorTotalVendido(cadastro)); break; case 7: printf("\nS A I N D O . . ."); break; default: system("cls"); printf("OPCAO INVALIDA!\n\n"); } } int CadastroVendedor(char *nome,Funcionarios *cadastrar) { int i; i = VerificaPosicaoLivre(cadastrar); if(i == -1) { system("cls"); return(0); } else { strcpy((cadastrar+i)->nome,nome); system("cls"); return(1); } } int CadastroVendas(Funcionarios *cadastrar, char *nom) { int i, j = 0; for(i=0;i<SIZE_VETOR;i++) { if( strcmp( (cadastrar+i)->nome,nom) == 0) { printf("\nJULHO/2008: "); scanf("%f",(cadastrar+i)->vendas_mensais+j); j++; printf("AGOSTO/2008: "); scanf("%f",(cadastrar+i)->vendas_mensais+j); system("cls"); return(1); } } system("cls"); return(0); } void ExibeVendedor(Funcionarios *cadastrar) { int i,j; system("cls"); for(i=0;i<SIZE_VETOR;i++) { if(strcmp((cadastrar+i)->nome,"0") != 0) { j = 0; printf("Vendedor[#%d]: %s",i,(cadastrar+i)->nome); printf("\nJULHO/2008: %.2f",(cadastrar+i)->vendas_mensais[j]); j++; printf("\nAGOSTO/2008: %.2f",(cadastrar+i)->vendas_mensais[j]); printf("\n\nTotal de pontos: %d",PontuacaoVendedor(cadastrar,i)); printf("\n-------------------------------------\n"); } } printf("\n\n"); } int PontuacaoVendedor(Funcionarios *cadastrar, int i) { int j,total_pontos = 0; for(j=0;j<SIZE_VENDAS;j++) { total_pontos += (cadastrar+i)->vendas_mensais[j]; } return(total_pontos); } int PontuacaoGeralMes(Funcionarios *cadastrar, int j) { int i,pontuacao_total_mes = 0; for(i=0;i<SIZE_VETOR;i++) { pontuacao_total_mes += (cadastrar+i)->vendas_mensais[j]; } return(pontuacao_total_mes); } void PontuacaoMaiorGeral(Funcionarios *cadastrar, char *nom, int &mai) { int i = 0; mai = PontuacaoVendedor(cadastrar,i); for(i=0;i<SIZE_VETOR;i++) { if((mai) < (PontuacaoVendedor(cadastrar,i))) { mai = PontuacaoVendedor(cadastrar,i); strcpy(nom,(cadastrar+i)->nome); } } } float ValorTotalVendido(Funcionarios *cadastrar) { int i,j; float total = 0; for(i=0;i<SIZE_VETOR;i++) { for(j=0;j<SIZE_VENDAS;j++) { total += (cadastrar+i)->vendas_mensais[j]; } } return(total); } void InicializaVetorZerado(Funcionarios *cadastrar) { int i,j; for(i=0;i<SIZE_VETOR;i++) { strcpy((cadastrar+i)->nome,"0"); for(j=0;j<SIZE_VENDAS;j++) { (cadastrar+i)->vendas_mensais[j] = 0; } } } int VerificaPosicaoLivre(Funcionarios *cadastrar) { int i; for(i=0;i<SIZE_VETOR;i++) { if(strcmp((cadastrar+i)->nome,"0") == 0) return(i); } return(-1); } Compartilhar este post Link para o post Compartilhar em outros sites