Dedinha 0 Denunciar post Postado Junho 23, 2005 Alguem sabe como q faz no Pascal...tipo..você vai inserindo no vetor varios numeros e diretamente ele ja vai ordenando na ordem crescente. Aii antes de imprimir o vetor, você pede pra buscar um tal numero e ele ja acha pra você na posiçao ordenada jah.! Mas o principal mesmo q eu quero saber é de ordenar direto!! Por favor gente eu preciso disse ate esse fim de semana..se alguem puder me ajudar ficarei mto agradecida!! http://forum.imasters.com.br/public/style_emoticons/default/kiss.gif Compartilhar este post Link para o post Compartilhar em outros sites
EwE 0 Denunciar post Postado Junho 24, 2005 para ordenar um vetor tem varias maneiras, vou mostrar as mais simples antes de tudo declare um tipo para o vetor TYPE VETOR = ARRAY [1..100] OF INTEGER; metodo da seleção FUNCTION acha_pos_menor (V: VETOR; ini, fim: INTEGER): INTEGER;VAR i, menor : INTEGER;BEGIN menor := 1; FOR i := ini TO fim DO IF V[i] < V[menor] THEN menor := i; acha_pos_menor := menor;END;PROCEDURE ordena (VAR V: VETOR; tam: INTEGER);VAR i, aux, pos: INTEGER;BEGIN FOR i := 1 TO tam DO BEGIN aux := V[i]; pos := acha_pos_menor(V,i,tam); V[i] := V[pos]; V[pos] := aux; END;END; metodo da insercao PROCEDURE ordena (VAR V: VETOR; tam: INTEGER);VAR i, j, aux: INTEGER;BEGIN FOR i := 2 TO tam DO BEGIN aux := V[i]; j := i - 1; WHILE aux < V[j] DO BEGIN V[j+1] := V[j]; j := j + 1; END; END;END; para busca, você pode fazer a busca binaria (para listas grandes) ou a sequencial (para listas pequenas) busca binaria FUNCTION busca (V: VETOR; tam, valor: INTEGER): BOOLEAN;VAR k, ini, fim: INTEGER; achou := BOOLEAN;BEGIN ordena(V,tam); { neste tipo de busca o vetor deve estar ordenado } achou := FALSE; ini := 1; fim := tam; WHILE NOT achou AND (fim < ini) DO BEGIN k := (fim + ini) DIV 2; IF valor = k THEN achou := TRUE ELSE IF valor < k THEN ini := k ELSE fim := k; END; busca := achou;END; busca sequencial FUNCTION busca (V: VETOR; tam, valor: INTEGER): BOOLEAN;VAR i: INTEGER;BEGIN i := 0; REPEAT i := i + 1; UNTIL (i = tam) OR (V[i] = V[valor]); IF i < tam THEN busca := TRUE ELSE busca := FALSE;END; Compartilhar este post Link para o post Compartilhar em outros sites