barthoraimundo 0 Denunciar post Postado Junho 2, 2012 ENUNCIADO DO EXERCÍCIO: Suponha que uma Casa de Jogos queira "agitar" suas rodadas de jogos.Entre os frequentadores normais do lugar eles inserem (até 12) jogadorescontratados para se misturarem aos frequentadores. Então sugere-se que essesjogadores, após declarados seus nomes, tenham uma "agenda" comhorários (até 24 vezes por dia), porém só poderão jogar a cada hora cheia. Ex:9h,13h,22h, etc. Os jogadores terão um tipo a ser definido no ato do cadastro(FORTE, FRACO, MÉDIO, etc.) e também terão um lema, também a ser definido nomomento do cadastro ("DESISTIR JAMAIS","DEVAGAR ESEMPRE","SÓ JOGO POR ESPORTE",etc.). Cada jogador poderá jogarquantas vezes quiser (até 24 no dia). Todos os jogadores contratados receberãovalores para jogar (em notas ou moedas). Caso sejam notas só poderão apostar 1nota por vez, mas se forem moedas poderão optar pela quantidade a ser apostada.Ao final do cadastro imprimir as informações (que serão afixadas num quadro deavisos) contendo: NOME, TIPO, LEMA, VEZES e o(s) HORÁRIOS referentes à quantidadede vezes. Conforme abaixo: escreval ("O jogador",jogador, " jogará às ",hora[m]," hora(s)e seu lema é",lema[k]) escreval ("ou seja, ",vezes[l],"vez(es) ao dia. Ele é um jogador do tipo ",tipo[j],".") BEM EU DESENVOLVI O CÓDIGO E ESTOU COM OS SEGUINTES PROBLEMAS: 1) O vetor horas[m] não "armazena" os horários de todos os jogadores.Ele "sobrepoe" os horários e sendo assim, ao final do cadastro,somente estão armazenados os horários do último jogador cadastrado. Sejamquantos jogadores forem. 2) Ao final deverá ser impressa uma lista para ser afixada no local. Não estouconseguindo sucesso na impressão dessa lista. Primeiro porque há problemas novetor [m] e segundo porque não estou conseguindo informar com precisão o quêdeve ser impresso. Todo o restante está correto e funcionando bem. O códigoestá todo comentado informando os locais onde há erros. OBS: Já dei uma "melhoradinha" na impressão final, mas continua com erros. Creio que sejam porque o vetor[m] não esteja guardando as informações. AGRADEÇO SE ALGUÉM PUDER ME ORIENTAR. EIS O CÓDIGO: [code]var jogador: vetor [0..11] de literal//i tipo: vetor [0..11] de literal//j lema: vetor [0..11] de literal//k vezes: vetor [0..11] de inteiro//l hora: vetor [0..23] de inteiro//m i,j,k,l,m,quant,quant1,quant2,hor,vez,tot,moe,aux,aux1: inteiro nome,resp,jog,tip,lem: literal dia: real inicio // Seção de Comandos escreval ("VETOR HORA (m) COM PROBLEMAS") escreval ("IMPRESSÃO FINAL C/ PROBLEMAS") escreval ("------------------------------------------------------------") escreval ("CADASTRAR ATÉ 12 JOGADORES, ONDE CADA UM PODERÁ JOGAR ATÉ 24") escreval ("VEZES, SENDO UMA VEZ POR HORA, NO MÁXIMO.") escreval ("------------------------------------------------------------") escreva ("Deseja iniciar um cadastramento de jogadores?: ") leia (resp) se resp <> "sim" entao escreval ("Estamos encerrando o programa. Obrigado!") interrompa//Ok, interrupção funcionando senao escreva ("Organizador(a), por favor, digite seu nome: ") leia (nome) escreval ("Seja bem-vindo(a) ",nome,".") escreval ("Você poderá cadastrar até 12 jogadores.") escreva ("Quantos jogadores pretende cadastrar?: ") leia (quant) i<-quant//isso faz jogador pular para o próximo. para i de 0 ate quant-1 faca//CERTO! (i está pulando para o próximo jogador) para j de i ate i faca//CERTO! (j está pulando para o próximo tipo) para k de i ate i faca//CERTO! (k está pulando para a próxima lema) para l de i ate i faca//CERTO! (l está pulando para a próxima vez) escreva ("Digite o nome do",i +1,"º jogador: ") leia (jog) jogador[i]<-jog escreval ("Ok, o",i +1,"º jogador é: ",jog,".") escreva ("Digite o tipo deste",i+1,"º jogador: ") leia(tip) tipo[j]<-tip escreval ("Ok, o",i +1,"º jogador ","",jog," é do tipo ",tip,".") escreva ("O",i +1,"º jogador ","",jog,", é do tipo ",tip," e o seu lema é: ") leia (lem) lema[k]<-lem escreval ("Ok, o ",i +1,"º jogador ","",jog,", do tipo ",tip," tem como lema ",lem,".") escreva ("Quantas vezes o",i +1,"º jogador ",jog," jogará no dia?: ") leia (vez) vezes[l]<-vez//CERTO! escreval ("O ",i+1 ,"º jogador ",jog," jogará",vez," vez(es) ao dia.") escreval ("---------------------------------------------------------------------") escreval ("Todos os jogadores receberão valores para jogar, mas devem informar") escreval ("os totais recebidos discriminando se são notas ou moedas. Permite-se") escreval ("apostar apenas 1 nota por vez, mas moedas podem ser quantas quiserem.") escreval ("---------------------------------------------------------------------") escreva ("São notas?: ") leia (resp) se resp <> "sim" entao escreval ("Ok, não são notas. São moedas.") escreva ("Quantas moedas o jogador está recebendo?: ") leia (quant1)//quant1 para moedas tot<-quant1 escreval ("Ok, estão sendo recebidas ",tot," moedas.") escreva ("Qual a quantidade de moedas a ser(em) apostada(s) em cada jogada?: ") leia (moe)//moe para gravar as moedas aux<-moe*vez//aux para calcular valor máximo diário pela quantidade de vezes dia<-tot/aux//dia recebe total de moedas dividido pelo total a ser gasto em cada jogada escreval ("As moedas recebidas pelo jogador ",jog," vão durar: ",dia," dias(s).") senao escreva ("Quantas notas o jogador está recebendo?: ") leia (quant2)//quant2 para notas tot<-quant2 escreval ("Ok, estão sendo recebidas ",tot," notas.") dia<-tot/vez//CERTO escreval ("As notas recebidas pelo jogador ",jog," vão durar: ",dia," dias(s).") fimse //ERRO DAQUI PRA BAIXO! aux<-vez//CERTO! para m de 0 ate <=aux-1 faca//ERRO! o vetor m recebe as horas somente referentes à quantidade //de vezes, porém, as posições se sobrepoem (não pulam além da quantidade de vezes informadas //se vezes=3 ele receberá somente 3 horários diferentes. hora[m]<-m escreva ("Digite o ",m+1 ,"º horário em que o jogador ",jog," jogará: ") leia (hor) hora[m]<-hor//CERTO! escreval ("Ok, o ",m+1 ,"º horário em que o jogador ",jog," jogará é: ",hor," hora(s).") fimpara fimpara fimpara fimpara fimpara escreval ("Ok, ",nome," as informações foram recebidas com sucesso!") fimse escreval ("IMPRESSÃO DAS INFORMAÇÕES RECEBIDAS") escreval ("-----------------------------------") escreval ("OBS: Quando vazio, é porque não há o que ser impresso.") escreval ("Você chegou ao fim das informações. Deseja imprimi-las?") escreval ("-------------------------------------------------------") leia (resp) se resp <> "sim" entao escreval ("------------------------------------------------") escreval ("Você digitou NÃO. Estamos encerrando o programa.") escreval ("------------------------------------------------") interrompa senao escreval ("------------------------------------------") escreval ("Este é o resumo das informações recebidas:") escreval ("------------------------------------------") escreval (" ERRO AO MANDAR IMPRIMIR AS INFORMAÇÕES. ") escreval ("------------------------------------------") para i de 0 ate quant-1 faca//CERTO para m de i ate i faca//CERTO para j de i ate i faca//CERTO para l de i ate i faca//CERTO para k de i ate i faca//CERTO escreval ("O jogador ",jogador[i], " jogará às ",hora[m], " hora(s)e seu lema é ",lema[k], ",") escreval ("ou seja, ",vezes[l], " vezes e é um jogador do tipo ",tipo[j], ".") fimpara fimpara fimpara fimpara fimpara fimse fimalgoritmo[code] Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Junho 5, 2012 Amigo vamos lá.. * Você poderia identar o código para ficar mais claro? * de um exemplo de uma entrada e como seria a saida.. []s Compartilhar este post Link para o post Compartilhar em outros sites
marcusIII 0 Denunciar post Postado Junho 7, 2012 cara, soh tem um problema no seu código. é no laço de inserção no array em questão. preste bem atenção nos seus contadores e como você está tratando os indíces do array nos seus laços de inserção. você vai descobrir fácil fácil pq existe essa sobreposição. Compartilhar este post Link para o post Compartilhar em outros sites
barthoraimundo 0 Denunciar post Postado Junho 7, 2012 Amigo vamos lá.. * Você poderia identar o código para ficar mais claro? * de um exemplo de uma entrada e como seria a saida.. []s Olá obrigado pela resposta. Bem de forma simples aqui está um exemplo: Vamos supor que dos 12 jogadores que posso cadastrar eu cadastre apenas 2. Então para cada um deles teremos: NOME,TIPO,LEMA,VEZES E HORÁRIOS. Declaro o 1º jogador: JOÃO, FORTE, "VENCER SEMPRE", 2 , 10 e 12 (Além de declarar se estão recebendo notas ou moedas para jogarem) Declaro o 2º jogador: PEDRO, FRACO, "PREFIRO BRINCAR", 2, 14 e 16 (Além de declarar se estão recebendo notas ou moedas para jogarem) Na impressão final teremos que ter: O jogador ",JOÃO, " jogará às ",10 hora(s)e seu lema é "VENCER SEMPRE" O jogador ",JOÃO, " jogará às ",12 hora(s)e seu lema é "VENCER SEMPRE" ou seja, ",2, " vezes e é um jogador do tipo ",FORTE O jogador ",PEDRO, " jogará às ",14 hora(s)e seu lema é "PREFIRO BRINCAR" O jogador ",PEDRO, " jogará às ",16 hora(s)e seu lema é "PREFIRO BRINCAR" ou seja, ",2, " vezes e é um jogador do tipo ",FRACO cara, soh tem um problema no seu código. é no laço de inserção no array em questão. preste bem atenção nos seus contadores e como você está tratando os indíces do array nos seus laços de inserção. você vai descobrir fácil fácil pq existe essa sobreposição. Olá marcuslll... obrigado pela resposta. Vou tentar a sua dica, mas serei sincero: Essa era a minha desconfiança e eu (desde que criei o código) não consegui de maneira alguma (alterando os laços) sucesso com o resultado. Qualquer alteração no laço interfere no restante do código. Qualquer alteração no vetor[m] faz com que o vetor[l] por exemplo, (perda da sua propriedade), ou seja, ele para de enumerar a quantidade de vezes para os jogadores na ordem em que deve ser. Também já tentei com outros comandos como (enquanto e repita) ambos sem sucesso. Você testou essa sua dica? Esse código, como foi construído, ficou muito "sensível" a qualquer alteração e é justamente essa a dificuldade que estou tendo com ele. Tentei algumas alterações nas auxiliares, mas não obtive resultado, pois pela lógica a variável "aux" deve receber a quantidade de vezes (-1) porque inicia em zero e termina em 23 (já que os jogadores podem jogar em todas as horas "cheias" do dia, ou seja: de meia-noite até 23 horas) e enviar essa quantidade para o vetor[m] (horas) o qual deve entender que isso se refere à quantidade de posições a serem ocupadas no mesmo (para cada jogador). Bem, é isso. Agradeço mais uma vez e desejo sucesso a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Célio A. 4 Denunciar post Postado Junho 15, 2012 para m de 0 ate <=aux-1 faca Oque você tentou fazer aqui? o laço para é um laço contado, tenta colocar sua expressão em uma estrutura 'se" ou usa o laço enquanto Compartilhar este post Link para o post Compartilhar em outros sites