JQuadros 0 Denunciar post Postado Outubro 5, 2007 06) Em uma ilha deserta havia cinco homens e um macaco. Durante o dia os homens colheram cocose deixaram a partilha para o dia seguinte. Durante a noite, um dos homens acordou e resolveu pegar asua parte. Dividiu a pilha de cocos em cinco partes iguais, observou que sobrava um coco, deu essecoco para o macaco, retirou e guardou a sua parte. Mais tarde, o segundo homem acordou e fez amesma coisa que o primeiro, dando também um coco para o macaco. Sucessivamente, cada um dostrês homens restantes fez o mesmo que os outros dois, isto é, dividindo os cocos existentes em cincopartes iguais, dando um coco para o macaco e guardando a sua parte. No dia seguinte, os cincohomens repartiram os cocos em cinco partes iguais, observaram que não sobrou nenhum coco. Se C éo menor número de cocos que a pilha inicial poderia ter, qual o menor valor de C para a quantidade dehomens informados pelo usuário?a) TarefaSua tarefa é escrever um programa que recebe como entrada várias quantidades de homens(K) ede cocos©, e responder, de acordo com esses valores, se é possível a divisão.B) Exemplo de entrada25 311 23121 520 3c) Saída de DadosPara cada conjunto de teste da entrada seu programa deve produzir três linhas na saída. Aprimeira linha deve conter um identificador do conjunto de teste, no formato “Teste n”, onde n énumerado a partir de 1. Na segunda linha deve aparecer resposta, no formato “É possível fazer adivisão” ou “Não é possível fazer a divisão”. A terceira linha deve ser 3 deixada em branco. Agrafia mostrada no exemplo de saída, abaixo, deve ser seguida rigorosamente (note que não sãousados acentos).Teste 1É possível fazer a divisãoTeste 2É possível fazer a divisãoTeste 3Não é possível fazer a divisãoTeste 4É possível fazer a divisão(esta saída corresponde ao exemplo de entrada acima)4. Restrições1 <= K <= 100000 <= c <= 500K=0 e C=0 apenas para indicar o fim dos dados de entrada Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Outubro 6, 2007 Que programa legal...depois vou pensar numa solução possível. se der certop posto o result aki! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 6, 2007 Deixa eu entender a parte dos cocos.rsVamos supor que tenha 26 cocos e 5 homens.o primeiro faz:5 pilhas de 5 cocos e dá um pro macaco.o segundo faz:???5 pilhas de 4 cocos?explica melhor essa parte por favor!!! Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Outubro 6, 2007 Deixa eu entender a parte dos cocos.rsVamos supor que tenha 26 cocos e 5 homens.o primeiro faz:5 pilhas de 5 cocos e dá um pro macaco.o segundo faz:???5 pilhas de 4 cocos?explica melhor essa parte por favor!!!isso parece a utilização de um FATORIAL na pratica. ^^5x4x3x2x1^^ Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 7, 2007 Corrigido06) Em uma ilha deserta havia cinco homens e um macaco. Durante o dia os homens colheram cocose deixaram a partilha para o dia seguinte. Durante a noite, um dos homens acordou e resolveu pegar asua parte. Dividiu a pilha de cocos em cinco partes iguais, observou que sobrava um coco, deu essecoco para o macaco, retirou e guardou a sua parte. Mais tarde, o segundo homem acordou e fez amesma coisa que o primeiro, dando também um coco para o macaco. Sucessivamente, cada um dostrês homens restantes fez o mesmo que os outros dois, isto é, dividindo os cocos existentes em cincopartes iguais, dando um coco para o macaco e guardando a sua parte. No dia seguinte, os cincohomens repartiram os cocos em cinco partes iguais, observaram que não sobrou nenhum coco. Se C éo menor número de cocos que a pilha inicial poderia ter, qual o menor valor de C para a quantidade dehomens informados pelo usuário?a) TarefaSua tarefa é escrever um programa que recebe como entrada várias quantidades de homens(K) ede cocos©, e responder, de acordo com esses valores, se é possível a divisão.B) Exemplo de entrada25 311 23121 520 3c) Saída de DadosPara cada conjunto de teste da entrada seu programa deve produzir três linhas na saída. Aprimeira linha deve conter um identificador do conjunto de teste, no formato “Teste n”, onde n énumerado a partir de 1. Na segunda linha deve aparecer resposta, no formato “É possível fazer adivisão” ou “Não é possível fazer a divisão”. A terceira linha deve ser 3 deixada em branco. Agrafia mostrada no exemplo de saída, abaixo, deve ser seguida rigorosamente (note que não sãousados acentos).Teste 1É possível fazer a divisãoTeste 2É possível fazer a divisãoTeste 3Não é possível fazer a divisãoTeste 4É possível fazer a divisão(esta saída corresponde ao exemplo de entrada acima)1 <= K <= 100000 <= c <= 500K=0 e C=0 apenas para indicar o fim dos dados de entrada Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 7, 2007 Deixa eu entender a parte dos cocos.rsVamos supor que tenha 26 cocos e 5 homens.o primeiro faz:5 pilhas de 5 cocos e dá um pro macaco.o segundo faz:???5 pilhas de 4 cocos?explica melhor essa parte por favor!!!o segundo faz 4 pilhas de coco e ainda 1 para o macaco. até que na divisão não tenha como ser real e seja interia .. resumindo, não sobre mais coco para o macaco. Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 8, 2007 Deixa eu entender a parte dos cocos.rsVamos supor que tenha 26 cocos e 5 homens.o primeiro faz:5 pilhas de 5 cocos e dá um pro macaco.o segundo faz:???5 pilhas de 4 cocos?explica melhor essa parte por favor!!!isso parece a utilização de um FATORIAL na pratica. ^^5x4x3x2x1^^tentei fazer o algoritmo. mas está uito dificil o entendimento da leitura do alg.... se alguem puder me ajudar a enteder melhor como devo colocar esses processamentos.olha ai como está.vark, c, i : inteiroexecuta : logicoinicio// Seção de Comandosexecuta <- verdadeirok <- -1c <- -1enquanto ((k <> 0) e (c <> 0)) faca escreval("Informe o número de côcos:") leia© escreval("Informe o número de homens:") leia(k) se (k > 10000) e (c > 500) ou (k = 0) e (c = 0) entao executa <- falso fimse se executa = verdadeiro entao i <- i + 1 se (((c-k)/k) / k) = 0 entao escreval("Teste ", i) escreval("É possível fazer a divisão") escreval("") senao escreval("Teste ", i) escreval("Não é possível fazer a divisão") escreval("") fimse fimsefimenquanto Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 8, 2007 Bom, tirando os cocos que eu ainda não entendi vamos tentar fazer isso que voce precisa. a) TarefaSua tarefa é escrever um programa que recebe como entrada várias quantidades de homens(K) ede cocos©, e responder, de acordo com esses valores, se é possível a divisão. Exemplo de entrada25 311 23121 520 3voce já leu as variáveis, mas o que ele quis dizer com "se é possível a divisão"?c) Saída de DadosPara cada conjunto de teste da entrada seu programa deve produzir três linhas na saída. Aprimeira linha deve conter um identificador do conjunto de teste, no formato “Teste n”, onde n énumerado a partir de 1. Na segunda linha deve aparecer resposta, no formato “É possível fazer adivisão” ou “Não é possível fazer a divisão”. A terceira linha deve ser 3 deixada em branco. Agrafia mostrada no exemplo de saída, abaixo, deve ser seguida rigorosamente (note que não sãousados acentos).Teste 1É possível fazer a divisãoTeste 2É possível fazer a divisãoTeste 3Não é possível fazer a divisãoTeste 4É possível fazer a divisão(esta saída corresponde ao exemplo de entrada acima)Vou analisar melhor e ver se entendo essa divisão, mas a idéia é:se (((c-k)/k) / k) = 0 entao escreval("Teste ", i) escreval("É possível fazer a divisão") escreval("") senao escreval("Teste ", i) escreval("Não é possível fazer a divisão") escreval("") fimseO se faz o teste pra ver se é possível a divisão. Não sei dizer se está certo porque ainda não entendi."i" é uma variável que é incrementada a cada passagem do laço.i <- i + 1Com ela é possível voce dizer o número de "n" descrito no problema.1 <= K <= 100000 <= c <= 500K=0 e C=0 apenas para indicar o fim dos dados de entradaEsses são limitadores para suas variáveis.se (k > 10000) e (c > 500) ou (k = 0) e (c = 0) entao executa <- falso fimse se executa = verdadeiro entaofalta parenteses para limitar seu teste.Eu faria assim:[code] se (k > 10000) ou (k < 1) ou (c > 500) ou (c < 1) entao executa <- falso fimse se executa = verdadeiro entaoEm qualquer uma das condições acima o "se" é executado. Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 8, 2007 Bom, tirando os cocos que eu ainda não entendi vamos tentar fazer isso que voce precisa. a) Tarefa Sua tarefa é escrever um programa que recebe como entrada várias quantidades de homens(K) e de cocos©, e responder, de acordo com esses valores, se é possível a divisão. Exemplo de entrada 25 3 11 2 3121 5 20 3 Vou tentat me enterar emlhor sobre essa divisão.. e ai volto a comentar... Eu tabém não estou entendendo muito... Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 8, 2007 Veja porque estou confuso. VOce disse: o segundo faz 4 pilhas de coco e ainda 1 para o macaco. até que na divisão não tenha como ser real e seja interia .. resumindo, não sobre mais coco para o macaco.e o problema diz: Sucessivamente, cada um dos três homens restantes fez o mesmo que os outros dois, isto é, dividindo os cocos existentes em cinco partes iguais, dando um coco para o macaco e guardando a sua parte. Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 8, 2007 Veja porque estou confuso. VOce disse: o segundo faz 4 pilhas de coco e ainda 1 para o macaco. até que na divisão não tenha como ser real e seja interia .. resumindo, não sobre mais coco para o macaco.e o problema diz: Sucessivamente, cada um dos três homens restantes fez o mesmo que os outros dois, isto é, dividindo os cocos existentes em cinco partes iguais, dando um coco para o macaco e guardando a sua parte. Ta tranks.... Vou à aula hoje e tiro essa dúvida... Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 9, 2007 Veja porque estou confuso. VOce disse: o segundo faz 4 pilhas de coco e ainda 1 para o macaco. até que na divisão não tenha como ser real e seja interia .. resumindo, não sobre mais coco para o macaco.e o problema diz: Sucessivamente, cada um dos três homens restantes fez o mesmo que os outros dois, isto é, dividindo os cocos existentes em cinco partes iguais, dando um coco para o macaco e guardando a sua parte. Ta tranks.... Vou à aula hoje e tiro essa dúvida... Boa Noite!!!! olha ai a explicação que peguei ontem. acho que dá para exclarecer melhor. Exemplo seria assim. informe quantidade cocos: 25 informe quantidade homens: 3 se 25 é divisivel por 3 dando 1 para o macaco? (sim) - o 1º homem levantou e dividiu o 25 em 3 partes de 8 cocos sendo uma dele mesmo, e completou 25 com o que (restou) ele deu para o macaco. voltou a dormir. o 2º homem levantou e viu que tinha somente 16 cocos, dividiu em 3 partes de 5 cocos sendo uma dele mesmo, e completou 16 dando (restando) uma para o macaco. voltou a dormir o 3º homem levantou e viu que tinha somente 10 cocos, dividiu em 3 parte de 2 cocos sendo uma dele memso. e completou 10 partes dando (restando) uma para o macaco. (agora a divisão inteira) amanheceu, levantou-se os três homens. havia 6 cocos, dividiram entre os três homens. trêa partes de 2 cocos. e não restou nenhum para o macaco. quando isso acontecer, informar... " É POSSIVEL FAZER A DIVISÃO ", por que: c = 25 k = 3 25 / 3 = 8,33333 3 x 8 = 24 e 3 x 0,33333 = 1 16 / 3 = 5,33333 3 x 5 = 15 e 3 x 0,33333 = 1 10 / 3 = 3,33333 3 x 3 = 9 e 3 x 0,33333 = 1 6 / 3 = 2 "fim" não resta nada mais para o macaco. lembrando que 25/3 eu coloquei somente como exemplo. pode ser qualquer número senao "NÃO É POSSIVEL FAZER A DIVISÃO" acho que deu pra entender melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 9, 2007 Então vamos tentar fazer esse algoritmo. Ele deve passar por uma bateria de testes. - O número deve ser recalculado a cada passagem do laço. - O laço deve terminar quando número de homens for igual a 1. - O cálculo é mais ou menos esse. i <- henquanto i > 1 faca se ((c-1)%h = 0) entao// ou seja a quantidade de cocos - 1 do macaco eh divisivel por h? d <- (c-1) / h c <- (c - 1) - d i <- i - 1 senao escrever "Nao eh possível a divisao" fim_se fim_enquanto Se sair do laço é possível fazer a divisão. Acho que é isso, fiz bem rápido e precisamos testar. OBS: se entrar no senão voce deve encerrar o programa. Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 10, 2007 Então vamos tentar fazer esse algoritmo.Ele deve passar por uma bateria de testes.- O número deve ser recalculado a cada passagem do laço.- O laço deve terminar quando número de homens for igual a 1.- O cálculo é mais ou menos esse. i <- henquanto i > 1 faca se ((c-1)%h = 0) entao// ou seja a quantidade de cocos - 1 do macaco eh divisivel por h? d <- (c-1) / h c <- (c - 1) - d i <- i - 1 senao escrever "Nao eh possível a divisao" fim_se fim_enquantoSe sair do laço é possível fazer a divisão.Acho que é isso, fiz bem rápido e precisamos testar.OBS: se entrar no senão voce deve encerrar o programa.Onde estou errando nessa colocação.... está dando errado....------------------------------k, c, i, d: inteiroexecuta : logicoinicio// Seção de Comandosexecuta <- verdadeirok <- -1c <- -1i <- kescreval("Informe o número de côcos:")leia©escreval("Informe o número de homens:")leia(k)enquanto i > 1 faca se (k > 10000) ou (k < 1) e (c > 500) ou (c < 1) entao executa <- falso fimseescreval("Informe o número de côcos:")leia©escreval("Informe o número de homens:")leia(k)fimenquantose ((c-1)%k = 0) entao d <- ((c - 1) / k) c <- ((c - 1) - d) i <- i - 1 escreval("Teste ", i) escreval("É possível fazer a divisão") escreval("")senao escreval("Teste ", i) escreval("Não é possível fazer a divisão") escreval("")fimsefimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 10, 2007 Voce lê a quantidade de cocos e de homens entra no laço e não faz os cálculos necessários para verificar se é divisível ou não. A entrada de dados também está errada. executa <- falseenquanto executa = false faca escreval("Informe o número de côcos:") leia© escreval("Informe o número de homens:") leia(k) se (k > 10000) ou (k < 1) ou (c > 500) ou (c < 1) entao executa <- falso senao executa <- verdadeirofimenquanto Esse código só deixa passar as entradas que satisfaçam essa condição: (k > 10000) ou (k < 1) ou (c > 500) ou (c < 1) Agora voce precisa implementar o que falei: i <- henquanto i > 1 faca se ((c-1)%h = 0) entao// ou seja a quantidade de cocos - 1 do macaco eh divisivel por h? d <- (c-1) / h c <- (c - 1) - d i <- i - 1 senao escrever "Nao eh possível a divisao" i <- 0 // forca a saida do laço fim_se fim_enquanto Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 10, 2007 Voce lê a quantidade de cocos e de homens entra no laço e não faz os cálculos necessários para verificar se é divisível ou não. A entrada de dados também está errada. executa <- falseenquanto executa = false faca escreval("Informe o número de côcos:") leia© escreval("Informe o número de homens:") leia(k) se (k > 10000) ou (k < 1) ou (c > 500) ou (c < 1) entao executa <- falso senao executa <- verdadeirofimenquantoEsse código só deixa passar as entradas que satisfaçam essa condição:(k > 10000) ou (k < 1) ou (c > 500) ou (c < 1) Agora voce precisa implementar o que falei: i <- henquanto i > 1 faca se ((c-1)%h = 0) entao// ou seja a quantidade de cocos - 1 do macaco eh divisivel por h? d <- (c-1) / h c <- (c - 1) - d i <- i - 1 senao escrever "Nao eh possível a divisao" i <- 0 // forca a saida do laço fim_se fim_enquanto ---------------------------------------------------------------------------------------------- Esta dando erro de real para interi no que no calculo em vermelho. e quando mudo de / para \ ele fica lendo direto sem parar " não é possivel fazer a divisão". k, c, i, d: inteiro logica : logico inicio logica <- verdadeiro c <- -1 k <- -1 i <- k escreval("Informe o número de côcos:") leia© escreval("Informe o número de homens:") leia(k) enquanto ((k <> 0) e (c <> 0)) faca se ((k > 10000) ou (k < 1)) ou ((c > 500) ou (c < 1)) entao logica <- falso escreval (logica fimse se logica = verdadeiro entao se ((c-1)%k = 0) entao d <- ((c - 1) / k) c <- ((c - 1) - d) i <- i - 1 escreval (" É possivel fazer a divisão") senao escreval("Não é possivel a divisão") fimse fimse fimenquanto Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 10, 2007 então faça isso: - Crie uma variável real e transforme ela para inteiro. real: xx <- ((c - 1) / k)d <- (int) x Voce precisa verificar como converte real para inteiro. Esse é apenas um exemplo. Compartilhar este post Link para o post Compartilhar em outros sites
JQuadros 0 Denunciar post Postado Outubro 10, 2007 então faça isso:- Crie uma variável real e transforme ela para inteiro. real: xx <- ((c - 1) / k)d <- (int) xVoce precisa verificar como converte real para inteiro.Esse é apenas um exemplo.----------------------------------Ae... Acho que estou no caminho. mas está faltando alguma coisa ai ainda... ao tentar dividir 45 por 3 ele falou que é possivel. mas o 11 /3 não é possivel.... <_< algoritmo "semnome"// Função :// Autor :// Data : 9/10/2007// Seção de Declaraçõesvark, c, i: inteirod,f:reallogica : logicoiniciologica <- verdadeiroc <- -1k <- -1i <- kescreva (" Informe o número de côcos:")leia©escrevalescreva (" Informe o número de homens:")leia(k)escreval (" ...........................")escrevallimpatelaenquanto ((k <> 0) e (c <> 0)) faca se ((k > 10000) ou (k < 1)) ou ((c > 500) ou (c < 1)) entao logica <- falso escreval ("Numero Inforreto") fimse se logica = verdadeiro entao se ((c-1)%k = 0) entao d <- ((c - 1) / k) e <- ((c - 1) - d) i <- i - 1 escreval (" É possivel fazer a divisão.") escreval (" ...........................") senao escreval (" Não é possivel a divisão.") escreval (" .........................") fimse fimse escreval escreva (" Informe o número de côcos:") leia© escreval escreva (" Informe o número de homens:") leia(k) escreval (" ...........................") escreval limpatelafimenquanto Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Outubro 10, 2007 Duas coisas que observei: A atribuição a "i" deve vir depois de validar o valor de "k". Pode ser aqui: se ((k > 10000) ou (k < 1)) ou ((c > 500) ou (c < 1)) entao logica <- falso escreval ("Numero Inforreto") fimse i <- k Outra coisa é: Voce não prestou atenção quando eu disse que tinha dois loops um que validava o valor de "k" e "c" e outro que verifica se c é divisível por k segundo as regras. enquanto i > 1 faca se ((c-1)%h = 0) entao// ou seja a quantidade de cocos - 1 do macaco eh divisivel por h? d <- (c-1) / h c <- (c - 1) - d i <- i - 1 senao escrever "Nao eh possível a divisao" i <- 0 // forca a saida do laço fim_se fim_enquanto Esse é outro loop. A condição de saída é: i < 1 i vai representar os homens que restam para dividir, ou seja, a cada passagem do laço um é retirado. Compartilhar este post Link para o post Compartilhar em outros sites