fmda 0 Denunciar post Postado Março 30, 2009 tipo to precissando implementar um bubllesort, porem precisso ler determinados numeros de um arquivo txt e depois ordenalos e gravar em um arquivo txt, alguem tem algum materia que possa me ajudar?? eu consigo fazer ele ordenar e gravar porem pegando os valores de um vetor, mas de um arquivo txt ta meio complicado, qualk forma posso fazer, tipo pegar os valroes jogar num vetor tbm poderia da certo, mas nao sei implementar este tipo for( j=1; j<=TAMANHO; j++ ){ for( i=1; i<=TAMANHO; i++ ){ if( vet > vet[i+1] ){ aux = vet; vet = vet[i+1]; vet[i+1]=aux; } } } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 30, 2009 nossa tem tantos tópicos aki sobre leitura de txt's faça uma busca neh Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 30, 2009 não é apenas leitura de txt, ler o arquivo e mostrar na tela é simples, releia novamente Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 30, 2009 porem pegando os valores de um vetor, mas de um arquivo txt ta meio complicado agora você fala q ta simples??? q bom q em algumas horas você achou simples.. leia sobre 'fscanf()'; []s Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 30, 2009 acho que você num ta sabendo ler, interpretação de texto ae, emfim minha duvida não é ler um arquivo e apenas mostrar em tela, e sim, ler o arquivo e jogar os dados num vetor para depois eu ordenalos Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 30, 2009 ok, vamos deixar as interpretações pra lah.. a ideia é você ler os numeros inteiros, pode usar o fscanf! você usará para isso um loop ai ficara + ow - assim: index = 0; while(naum foi fim de arquivo){ iNum = fscanf(..... vetor[index++] = iNum; } fiz meio q portugol com C.. + soh pra você ter uma noçaum de como vai fazer.. você vai ler o numero, e jogar no vetor, a variavel index sera incrementada após o recebimento do valor. entendeu? []s --- Título Editado Ajuda com ordenação de um arquivo txt http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Ordenacao de um arquivo txt Compartilhar este post Link para o post Compartilhar em outros sites
RMontanaro 0 Denunciar post Postado Março 30, 2009 Para a manipulação de arquivos: http://irc.essex.ac.uk/www.iota-six.co.uk/...anf_fprintf.asp Basta ler, colocar cada número numa posição do vetor, e usar o método bubbleSort. Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 30, 2009 chegando mais tarde da faculdade vou ler e tentar, qq coisa volto a comunicar Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 31, 2009 É eu tentei aqui nao consegui, eu consegui fazer ele gerar com um rand, ae ele me gera e ordena e salva num txt, mas nao to conseguindo abrir um txt ordenar eles e salvar, tem como me da uma ajudinha aki, so isso q to garrado, pq ainda tenho q fazer para merche sort e selection sort como é trabalho e nao foi entregue, tirei, qq coisa manda mp que enviou o codigo Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 31, 2009 no C ao invez de C:/..., tem q ser C://.. amanha te ajudo com + calma; []s Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 31, 2009 vlw, to começando novamente a batalha aqui de conseguir isso funcionar Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 31, 2009 os dados no txt vem como? assim: 1 2 3 4 5 6 7 ow assim 1 2 3 4 5 6 7 ? []s Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 31, 2009 ele vem assim: 1 2 3 4 5 eu acho que consegui fazer aqui com fscanf (fp, "%d", &vetor);, os testes aqui ele ler e ordenou e salvou, vou ver com o selection mas acho que não deverá dar problema, qq coisa volto, vlw ae, faltana um rewind Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 31, 2009 ;D q bom q conseguiw por enquanto entaum... o fscanf é bom para ler inteiros direto. caso qria exemplo de selectionsort veja: http://forum.imasters.com.br/index.php?showtopic=293318 []s Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 31, 2009 conseguir fazer todas porem cheguei no ultimo que é do quicksort é pra fazer 1 pra pegar o pivo do inicio e outro com pivo no meio, porem: se usar assim pra pegar o pivo do inicio ele funciona int pivo = vetor[inicio]; se usar assim pra pegar o meio, a tela so pisca e num faz nada int pivo = ((vetor[fim] - vetor[inicio] ) / 2); Compartilhar este post Link para o post Compartilhar em outros sites
RMontanaro 0 Denunciar post Postado Março 31, 2009 conseguir fazer todas porem cheguei no ultimo que é do quicksort é pra fazer 1 pra pegar o pivo do inicio e outro com pivo no meio, porem: se usar assim pra pegar o pivo do inicio ele funciona int pivo = vetor[inicio]; se usar assim pra pegar o meio, a tela so pisca e num faz nada int pivo = ((vetor[fim] - vetor[inicio] ) / 2); Erro de sintaxe. O que você quer é: int pivo = vetor[(fim-inicio)/2]; Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Março 31, 2009 vetor[(fim-inicio)/2]; tbm deu a mesma coisa, ela so pisca a tela e num faz nada, 0o Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 1, 2009 da um printf pra ver q valor vem na sua expressão: ((vetor[fim] - vetor[inicio] ) / 2); []s Compartilhar este post Link para o post Compartilhar em outros sites
fmda 0 Denunciar post Postado Abril 1, 2009 retorna 0 void quicksort(int vetor[], int inicio, int fim) { if(fim - inicio > 0) { int aux; int pivo = vetor[inicio]; int esquerda = inicio + 1; int direita = fim; while(esquerda < direita) { if(vetor[esquerda] <= pivo) { esquerda++; } else { aux = vetor[esquerda]; vetor[esquerda] = vetor[direita]; vetor[direita] = aux; direita--; } } if(vetor[esquerda] > pivo) { direita--; } aux = vetor[inicio]; vetor[inicio] = vetor[esquerda]; vetor[esquerda] = aux; quicksort(vetor, inicio, esquerda-1); quicksort(vetor, direita, fim); } } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Abril 1, 2009 veja esse quick, q vai printando kd passagem.. http://forum.webly.com.br/index.php?showtopic=11719 []s Compartilhar este post Link para o post Compartilhar em outros sites