fernando_souza 0 Denunciar post Postado Julho 26, 2011 me ajudem com esta questao por favar Ler um vetor com 10 números inteiros e gerar um segundo vetor com os elementos do vetor lido menos os elementos repetidos. Ou seja, todos os números que aparecem no vetor lido, devem aparecer uma única vez no vetor gerado. Ex : VetorLido = 5 1 2 7 5 3 7 5 9 3 VetorGerado = 5 1 2 7 3 9 Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Willer 0 Denunciar post Postado Julho 31, 2011 E ae beleza! Olha eu fiz aqui no Visualg, qualquer coisa passa pra linguagem que você usa, aqui deu certo testa ai...Se souber fazer de outra maneira poste ai pra galera, achei interessante o problema, porém da proxima vez poste ate que ponto você conseguiu, mostre interesse! algoritmo "separação de números iguais" // Função : // Autor : Johnny Willer Gasperi Gonçalves // Data : 31/07/2011 // Seção de Declarações var vnum1, vnum2: vetor [1..10] de inteiro i, aux, j: inteiro terminado: logico inicio // Seção de Comandos para i de 1 ate 10 faca escrevaL (" Digite o ", i, "º número que deseja incrementar no 1º vetor") leia (vnum1[i]) vnum2[i] <- vnum1[i] fimpara j <- 9 aux <- 1 enquanto terminado = falso faca para i de 1 ate j faca se vnum2[aux + i] = vnum2[aux] entao vnum2[aux + i] <- 0 fimse se i = j entao aux <- aux + 1 j <- j - 1 fimse se aux > 9 entao terminado <- verdadeiro fimse fimpara fimenquanto escrevaL ("---------------------- VETOR 1 ----------------------") para i de 1 ate 10 faca escreva (vnum1[i], " ") fimpara escrevaL ("") escrevaL ("") escrevaL ("---------------------- VETOR 2 ----------------------") para i de 1 ate 10 faca se vnum2[i] <> 0 entao escreva (vnum2[i], " ") fimse fimpara fimalgoritmo Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 5, 2011 só procurar sobre algoritmos de busca; Compartilhar este post Link para o post Compartilhar em outros sites
ulfreitas 6 Denunciar post Postado Agosto 8, 2011 Ow Johnny gostei da resolução, me perdi um pouco ai no meio. Me explica uma coisa: voce checa a 2ª posição com a 1ª, a 3ª com a 2ª, e assim por diante, se eu tiver por exemplo um vetor como este: [1,2,3,1,4..], no caso o 1º e o 4º são iguais, eu nao entendi onde ele compara essas duas posiçoes? Só que dá certo pq no resultado só aparece o 1 uma unica vez, só nao entendi quando ele comparou as duas posições... Abços Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Willer 0 Denunciar post Postado Agosto 9, 2011 Olá Ulysses, que bom que você gostou ;D. Bom na verdade o algoritmo não está comparando a 2ª posição com a 1ª e a 3ª com a 2º, você entendeu um pouquinho errado. Vou explicar, se o algoritmo verificasse da forma que você citou certamente não estaria certo pois como você disse no seu exemplo a 1ª posiçao e a 4ª são iguais, assim apareceria duas vezes o nº1. Na verdade esse codigo realiza o seguinte cálculo, ele verifica a 1ª posição com todas as outras para i de 1 ate j faca se vnum2[aux + i] = vnum2[aux] entao vnum2[aux + i] <- 0 fimse Você pode ver que a unica coisa que muda é o i que cada vez aumenta 1 assim o vetor corre todas as posições comparando apenas com a 1ª dele mesmo. Quando o i chegar a 9 logicamente as posições do vetor acabaram então. se i = j entao aux <- aux + 1 j <- j - 1 Agora como você ve o aux valerá 2 entao serão comparadas todas as posições do vetor com a 2ª dele mesmo e assim por diante até acabar todas as posições, o j diminuiu 1 porque como o aux vale +1 o j tem de diminuir 1 :D Ve se você entendeu, qualquer coisa peça ai. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
ulfreitas 6 Denunciar post Postado Agosto 10, 2011 Ah agora entendi. Eu tinha me equivocado, tinha lido "aux+1" em vez de "aux+i" por isso que eu nao tava entendendo, hahaha. Mas blza gostei do codigo, vou tentar utilizar naquele de uniao dos vetores, q ate agora nao consegui resolver :/ abrços Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Willer 0 Denunciar post Postado Agosto 11, 2011 Beleza entao, que bom que entendeu, não conseguiu a união dos vetores ainda? Bom vou dar uma olhada lá tambem entao pra você se eu conseguir algum modo eu posto ai pra ti. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Imguvoss 0 Denunciar post Postado Setembro 22, 2015 Dai, tudo certo? Então, sou novo na programação e estou estudando algoritmos, mais um em especial está me deixando confuso. Faça um algoritmo que leia um número de notas (só será informado na execução) compare todas, e apresente a maior e a menor, em vetor. Até agora, fiz uma parte que ainda está dando erro de sintaxe. Por favor, me ajudem. Algoritmo "Obter notas e apresentar menor e maior em vetor" Var nNotas: VETOR[1..50] DE INTEIRO I: INTEIRO nNumero:Inteiro nMaior, nMenor: INTEIRO Inicio Escreva("Digite o número de notas que você deseja calcular: ") Leia(nNumero) Para I De 1 Ate nNumero Passo 1 Faca Escreva("Digite a", I,"° nota: ") Leia(nNotas[I]) Fimpara nMaior <- nNotas[1] nMenor <- nNotas[2] Para I De 1 Ate nNumero Passo 1 Faca Se nMenor <= nNotas[I] Entao nMaior <- nNotas[I] Senao Se nMaior >= nNotas[I] Entao nMenor <- nNotas[I] Fimse Fimse Fimpara Escreval("A nota maior é", nMaior) Escreval("A nota menor é", nMenor) Fimalgoritmo Essa é a parte que eu fiz. LEMBRANDO: Este algoritmo está sendo feito pelo Visualg Desde já agradeço. Compartilhar este post Link para o post Compartilhar em outros sites