Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dedinha

Só quero saber isso..

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.