Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- { Autor : Tiago Portela
- Email : sapitando@gmail.com
- Sobre o programa : Versão simples de um Ordenador de números, pra ficar mais fácil entender o código.
- Ele ordena os números buscando o ultima menor e colocando ele em primeiro,
- e deslocando todos a frente e pulando ele mesmo depois.
- Ele ordena n números, trocando o valor de MaxSizeList.
- Ele ordena uma faixa trocando o valor de FirstPos e LastPos, por exemplo
- se a array fosse "10 11 4 1 2 3 25 23 12 10" e vocêˆ atribuísse a "FirstPos := 3"
- e "LastPos := 6" o resultado seria "10 11 1 2 3 4 25 23 12 10" e também ordenaria
- algumas posições trocando por exemplo "for PosArray := FirstPos to (LastPos - 1) do" por
- "for PosArray := FirstPos to 4 do" a mesma array ficaria "1 2 3 4 10 11 25 23 12 10".
- Compatível com Turbo Pascal e Free Pascal.
- Obs. : Apenas tentando aprender algorítimos, sozinho, por hobby. }
- {$G+}
- {$N+}
- program ordenador_de_numeros_versao_simplificada;
- uses crt;
- const MaxSizeList = 10;
- var Nro : array [1..MaxSizeList] of real;
- NroAux1, NroAux2 : real;
- PosArray, PosLastSmaller, CounterPos, TotalPos, LastPos, FirstPos : word;
- begin
- clrscr;
- Nro[1] := 8.45;
- Nro[2] := 1;
- Nro[3] := 4;
- Nro[4] := 2;
- Nro[5] := 15;
- Nro[6] := 6;
- Nro[7] := 7;
- Nro[8] := 3;
- Nro[9] := 8;
- Nro[10] := 5;
- TotalPos := MaxSizeList;
- FirstPos := 1;
- LastPos := 10;
- for PosArray := FirstPos to (LastPos - 1) do
- begin
- NroAux1 := Nro[PosArray];
- PosLastSmaller := PosArray;
- for CounterPos := (PosArray + 1) to LastPos do
- if NroAux1 >= Nro[CounterPos]
- then begin;
- PosLastSmaller := CounterPos;
- NroAux1 := Nro[PosLastSmaller];
- end;
- if PosLastSmaller > PosArray
- then begin
- for CounterPos := PosArray to LastPos do
- begin
- if (CounterPos >= PosLastSmaller) and (CounterPos < LastPos)
- then NroAux2 := Nro[CounterPos + 1]
- else NroAux2 := Nro[CounterPos];
- Nro[CounterPos] := NroAux1;
- NroAux1 := NroAux2;
- end;
- end;
- end;
- for CounterPos := 1 to TotalPos do
- writeln(CounterPos : 5,' : ',Nro[CounterPos] : 5 : 2);
- readkey;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement