NorTheR 0 Denunciar post Postado Maio 16, 2006 Acabei de me registrar aki, gostei bastante desse fórum http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Meu problema eh o seguinte, to encalhado com esse algoritmo na etapa de repeticoes e apelo pra vcs!!! Vou dar um exemplo: (entrada) =>Vetor: 1 3 6 6 4 (saida) => Repeticões: 2 entenderam né? Eu tenho quase certeza que tem que usar 2 para, mas naum dá, eu soh consegui comparando com o 1ero numero.. <_< * Façam em pascal ou portugol (se for em portugol eu dou 1 real pra qm me ajuda! :lol: ) Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Maio 16, 2006 Fiz um algoritmo que lê 5 números do usuário e verifica quantos números repetiram. Exemplo: se você digitar o número 1 cinco vezes, o programa exibirá uma mensagem dizendo que o número foi repetido 4 vezes. Segue abaixo o código. Não sei ao certo se é exatamente isso o que você quer mas aí está (mude o que achar necessário): algoritmo "Repetir" // Função : // Autor : Vergil // Data : 16/05/2006 // Seção de Declarações var vet : vetor [1..5] de inteiro cont,cont2, numero , repetidos: inteiro inicio // Seção de Comandos para cont de 1 ate 5 passo 1 faca leia(numero) para cont2 de 1 ate 5 passo 1 faca se(vet[cont2] = numero) entao repetidos <- repetidos + 1 interrompa fimse fimpara vet[cont] <- numero fimpara escreva ("Você repetiu ", repetidos, " números") fimalgoritmo Pode depositar R$ 1,00 na minha conta. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Maio 16, 2006 inicio // Seção de Comandos para cont de 1 ate 5 passo 1 faca leia(numero) para cont2 de 1 ate 5 passo 1 faca Não consegui encaixar aki no exercicio..Pq você leu o numero sendo uma variavel comum certo?! Aki eu tenho que ler o numero em vetor O começo fika assim para cont de 1 ate 5 faca escreva ("Digite o numero: ") leia (vet[cont]) fimpara Acho qe ficaria diferente do seu.. tente me ajudar denovo que coloco 2 pilão na sua conta http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Edit :: o que é interrompa? Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 17, 2006 veja.. a logica eh a seguinte..(acompanhe o raciocinio).. toda vez que você entrar com um valor, você deve verificar se este numero q você esta entrando eh repetido.. entao para fazer isso basta fazer um laço de repetição q "anda" o vetor q ja foi inserido.. analise o trecho repetido <- 0leia(vet[1])numero <- vet[1]para i de 2 ate LIMITE faca leia(vet[i]) para j de 1 ate i faca se (vet[i] = numero) entao repetido <- repetido + 1 fimse fimpara vet[i] <- numerofimparao primeiro valor do vetor sera informado fora do laço..veja q o "para" começa em 2.. depois a variavel numero recebe o valor o primeiro valor do vetor.. aew, ja dentro do laço o usuario entra com o valor da segunda posição do vetor.. depois entra em um laço que percorre este mesmo vetor e verifica se ja houve alguma repetição.. caso a expressao "vet = numero" seja verdadeira incrementa-se a variavel repetido.. eh soh seguir a logica.. mas eh bom quebrar a cabeça tb.. naum existe satisfaçao melhor doq você fazer um algoritmo "dificil" sozinho, sem ajuda d ninguem.. Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Maio 17, 2006 repetido <- 0leia(vet[1])numero <- vet[1]para i de 2 ate LIMITE faca leia(vet[i]) para j de 1 ate i faca se (vet[i] = numero) entao repetido <- repetido + 1 fimse fimpara vet[i] <- numerofimpara Não funciona, testei aqui e naum funfou http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif O do Vergil foi certinho, mas naum consegui encaixar aki pq nem sei o que o interrompa faz. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Só quero que vcs implementam isso aqui..já fiquei 1 hora tentando e nada.. :wacko: varcont, cont2, somarep: inteirovet: vetor [1..5] de inteiroiniciopara cont de 1 ate 5 faca escreva ("Digite o", cont, "º numero: ") leia (vet[cont])fimparasomarep <- 0para cont de 1 ate 5 faca para cont2 de 1 ate 5 faca se (cont2 <> cont) e (cont > cont2) entao se (vet[cont] = vet[cont2]) entao somarep <- somarep + 1 fimse fimse fimparafimparaescreva ("Numeros repetidos:" ,somarep)fimalgoritmoSó copiar lá pro programa, tah quase 100%, só buga quando você digita todos iguais, ou mais de 2 ou 3 iguais.. já fiz as conta e sei pq dá errado mas naum consigo uma logica correta.Na verdade ele compara o 1-2, 1-3, 1-4, 1-5; 2-3, 2-4, 2-5; 3-4, 3-5 e 4-5.... escrevendo todos os numero iguais, a comparação com 1-2, 1-3, 1-4, e 1-5 já daria conta, iria dar 4 repeticoes, mas ele compara o 2-3, 2-4........ e no fim inves de 4 aparece 10 rep. A leitura vai antes, depois que você compara se tem igual, o algoritmo de vcs lia o numero e comparava http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Maio 17, 2006 O do Vergil foi certinho, mas naum consegui encaixar aki pq nem sei o que o interrompa faz. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif O interrompa, é nada mais nada menos que um break. Serve pra você sair de uma estrutura de repetição, no caso, o para (for). Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Maio 18, 2006 O do Vergil foi certinho, mas naum consegui encaixar aki pq nem sei o que o interrompa faz. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif O interrompa, é nada mais nada menos que um break. Serve pra você sair de uma estrutura de repetição, no caso, o para (for). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Lokossa 0 Denunciar post Postado Maio 30, 2006 varcont, cont2, somarep: inteirovet: vetor [1..5] de inteiroiniciopara cont de 1 ate 5 faca escreva ("Digite o", cont, "º numero: ") leia (vet[cont])fimparasomarep <- 0para cont de 1 ate 5 faca para cont2 de 1 ate 5 faca se (cont2 <> cont) e (cont > cont2) entao se (vet[cont] = vet[cont2]) entao somarep <- somarep + 1 fimse fimse fimparafimparaescreva ("Numeros repetidos:" ,somarep)fimalgoritmoeh esse código tem algum erro... http://forum.imasters.com.br/public/style_emoticons/default/devil.gif coloquei alguns numeros 2 3 vzs repetidos...deu certo mas qndo boto td 1 ou td 4 ....enfim sempre numeros iguais ele me diz ki sao 10 os n repetidos... Alguma solução????? :huh: [para cont de 1 ate 5 faca Só copiar lá pro programa, tah quase 100%, só buga quando você digita todos iguais, ou mais de 2 ou 3 iguais.. já fiz as conta e sei pq dá errado mas naum consigo uma logica correta. Na verdade ele compara o 1-2, 1-3, 1-4, 1-5; 2-3, 2-4, 2-5; 3-4, 3-5 e 4-5.... escrevendo todos os numero iguais, a comparação com 1-2, 1-3, 1-4, e 1-5 já daria conta, iria dar 4 repeticoes, mas ele compara o 2-3, 2-4........ e no fim inves de 4 aparece 10 rep. Pois eh...ainda buga......não tah funfando!!!galera.... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif A leitura vai antes, depois que você compara se tem igual, o algoritmo de vcs lia o numero e comparavaLeitura antes???lendo antes conserta o bug?? Compartilhar este post Link para o post Compartilhar em outros sites
Luciana Guedes 0 Denunciar post Postado Maio 31, 2006 Olá, pessoal! Segue aqui minha contribuição para o tópico... Como é possível que a lista de números tenha repetições de números diferentes como: 2,2,1,5,5 Ou ainda, que a lista tenha todos números repetidos como: 1,1,1,1,1 Existem ainda outras possibilidades que podem causar problemas de repetições na contagem, como vocês já devem ter observado. Sendo assim, minha proposta é de, após a leitura de todos os números, colocá-los em ordem crescente (usei uma forma bem simplificada de ordenação). Após ordenado, basta percorrer o vetor ENQUANTO o número continuar sendo igual. Vejam abaixo: var cont, cont2, somarep, maxrep, aux: inteiro; vet: vetor [1..5] de inteiros;inicio { **** Leitura de dados do vetor **** } para cont de 1 até 5 faça escreva ('Digite o ', cont, 'º numero: '); leia (vet[cont]); fim para; { **** Ordena os dados do vetor em ordem crescente **** } para cont de 1 até 4 faça para cont2 de cont+1 até 5 faça se vet[cont] > vet[cont2] então aux <- vet[cont]; vet[cont] <- vet[cont2]; vet[cont2] <- aux; fim se; fim para; fim para; { **** Busca por repetidos no vetor já ordenado **** } maxrep <- 0; cont <- 1; { **** Este laço é para percorrer TODOS os elementos do vetor até o penúltimo **** } enquanto cont <= 4 faça { **** ... e este percorre os elementos POSTERIORES do mesmo vetor... ... enquanto forem iguais aos seus antecessores. **** } somarep <- 1; enquanto (vet[cont] = vet[cont+1]) e (cont<5) faça somarep <- somarep + 1; cont <- cont +1; fim enquanto; { **** Só aumenta o contador caso não tenha encontrado repetição do número **** } se somarep = 1 então cont <- cont + 1; fim se; se somarep > maxrep então maxrep <- somarep; fim se; fim enquanto; { **** Impressão do resultado **** } escreva ('Numeros repetidos:' ,maxrep);fim. Notem também o seguinte: a variável maxrep é que armazenará o maior número de repetições encontradas, ou seja, armazenará a contagem do número que mais se repete. Isto porque pode ocorrer de dois ou mais números repetirem-se... neste caso, ele só dará o resultado da maior contagem de repetição. Por exemplo, em: 2,2,5,5,5 - ele encontrará DUAS repetições do 2 e TRÊS repetições do 5 - e ficará apenas com a maior: TRÊS. É isso! Espero ter sido clara. Abraços a todos, Luciana. Compartilhar este post Link para o post Compartilhar em outros sites
Lokossa 0 Denunciar post Postado Maio 31, 2006 Notem também o seguinte: a variável maxrep é que armazenará o maior número de repetições encontradas, ou seja, armazenará a contagem do número que mais se repete. Isto porque pode ocorrer de dois ou mais números repetirem-se... neste caso, ele só dará o resultado da maior contagem de repetição. Por exemplo, em:2,2,5,5,5 - ele encontrará DUAS repetições do 2 e TRÊS repetições do 5 - e ficará apenas com a maior: TRÊS.É isso!Espero ter sido clara.Abraços a todos,Luciana.Oi Lú!! Você foi muito clara, se deixou intender..como diz Faustaum...mais do que nunca! :D Gostaria que você me ajudasse...nesse finzinho ai....como imprimir quais numeros foram repetidos e quantos?Exemplo:na sequencia 2,2,5,5,5('O numero 2 foi repetido 2 vezes')(o numero 5 foi repetido 3 vezes')Abraço pa tu i todos tbm http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Luciana Guedes 0 Denunciar post Postado Junho 2, 2006 Oi Lú!! Você foi muito clara, se deixou intender..como diz Faustaum...mais do que nunca! :D Gostaria que você me ajudasse...nesse finzinho ai....como imprimir quais numeros foram repetidos e quantos?Exemplo:na sequencia 2,2,5,5,5('O numero 2 foi repetido 2 vezes')(o numero 5 foi repetido 3 vezes')Abraço pa tu i todos tbm http://forum.imasters.com.br/public/style_emoticons/default/joia.gifOlá, Lokossa!Minha sugestão para resolver o problema desta forma (que, aliás, torna-o muito interessante e desafiador!) é a de usar dois vetores auxiliares:- um vetor iria armazenar o número que se repete (o dois e o cinco do exemplo acima)- o outro vetor armazenaria a quantidade de repetições referentes aos números do vetor anterior (por exemplo, 2 e 3, que referem-se, respectivamente, às repetições do dois e do cinco citados no exemplo anterior).É isso! Que tal alguém arriscar-se a desenvolver a lógica? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraços,Luciana. Compartilhar este post Link para o post Compartilhar em outros sites
Giovani 104 Denunciar post Postado Junho 2, 2006 Luciana detonando!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif É isso ai!!!! Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Junho 6, 2006 Saquei, é só controlar um cont para cada repetido... boa pergunta essa do nosso amigo forista Lokossa. Compartilhar este post Link para o post Compartilhar em outros sites
Luciana Guedes 0 Denunciar post Postado Junho 6, 2006 Saquei, é só controlar um cont para cada repetido... boa pergunta essa do nosso amigo forista Lokossa.É isso aí, NorTher!Que tal postar um algoritmo com a sugestão de solução!Assim eu ficaria satisfeita em notar que este tópico foi totalmente "compreendido", já que foi você que o inaugurou, certo?!E então? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraço,Luciana. Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Junho 6, 2006 Saquei, é só controlar um cont para cada repetido... boa pergunta essa do nosso amigo forista Lokossa.É isso aí, NorTher!Que tal postar um algoritmo com a sugestão de solução!Assim eu ficaria satisfeita em notar que este tópico foi totalmente "compreendido", já que foi você que o inaugurou, certo?!E então? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraço,Luciana.ehheehEhe, beleza, vo tentar fazer depois eu posto http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
Vergil 15 Denunciar post Postado Junho 6, 2006 É isso aí, NorTher!Que tal postar um algoritmo com a sugestão de solução!Assim eu ficaria satisfeita em notar que este tópico foi totalmente "compreendido", já que foi você que o inaugurou, certo?!E então? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Abraço,Luciana.Agora você falou que nem uma professora que eu tive. :lol: Deu até vontade de fazer do jeito que você passou, mas tem hora que dá uma preguiça... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Mas vou ver se consigo fazer um algoritmo do tipo. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Junho 6, 2006 Não eh tao facil quanto parece, to quebrando a cabeça, vo abandonar a tarefa, pq tenho que fazer outro trabalho e amanha tento denovo. Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Junho 7, 2006 Bom, a Luciana me deu uma tarefa (complicada por sinal :o ) BUGS CORRIGIDOS, TAH FUNFANDO 99% AGORA.. :P Tá ae a versão 1.0 ;) algoritmo "Repetidos"// Autor : FeLiPe// Data : 6/6/2006// Seção de Declaraçõesvarvet: vetor [1..5] de inteirorep: vetor [1..5] de inteirosom: vetor [1..5] de inteirocont, cont2, cont3, numero, somarep, contrep: inteiroachou: logicoiniciopara cont de 1 ate 5 faca // ler numeros escreva ("Digite o", cont, "º numero: ") leia(vet[cont]) // guardar numero do vetor numa varivel numero <- vet[cont] para cont2 de 1 ate 5 faca // se posicao do vetor é diferente da do numero se cont <> cont2 entao se (vet[cont2] = numero) entao // pesquisar se o numero já se encontra na parada achou <- verdadeiro cont3 <- 1 contrep <- 0 repita se cont<>cont3 entao se vet[cont3] = numero entao contrep <- contrep + 1 achou <- falso fimse fimse cont3 <- cont3 + 1 ate (cont3>5) se achou=falso entao cont3 <- 1 repita se rep[cont3] = numero entao // escrever em cima do valor identico cont <- cont3 fimse cont3 <- cont3 + 1 ate (cont3>5) // se numero naum esta no vetor incluir num vetor de numeros repetidos rep[cont] <- numero som[cont] <- contrep fimse // -------- FIM PESQUISA --------- // contador de repetidos somarep <- somarep + 1 interrompa fimse fimse fimparafimparaescreval ("Numero de valores repetidos:", somarep)escreval// saídapara cont de 1 ate 5 faca se rep[cont] <> 0 entao escreval ("Numero", rep[cont], " repetido....", som[cont], " vez(es).") fimsefimparafimalgoritmo Valeu Luh!?!? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Lokossa 0 Denunciar post Postado Junho 10, 2006 eh man....bom trabalho aew!..você zerou os contadores?pode ser isso qndo da esses errinhos bestas! Compartilhar este post Link para o post Compartilhar em outros sites
NorTheR 0 Denunciar post Postado Junho 10, 2006 eh man....bom trabalho aew!..você zerou os contadores?pode ser isso qndo da esses errinhos bestas!Já corrigi os bugs, quando eu testei parecia estar tudo OK, no seu dá erro ainda? Compartilhar este post Link para o post Compartilhar em outros sites