Sortowanie Od najmniejszej do największej CYFRY PASCAL


(Nati0802) #1

Witam, napisałam program/tablica w ktorym brakuje mi jeszcze jednego elementu. Polega to na tym, ze na poczatku ma poprosic o podanie pieciu ocen , nastepnie wypisac od najmniejszej do najwiekszej posrod podanych jedna pod druga, a na koncu wypisac srednia wszystkich ocen. W programie brakuje mi tego sortowania liczb w kolejnosci, gdy np. zostaje podane:3,4,1,6,2. W ktorym miejscu to umiescic i jak to ma wygladac? Program wyglada nastepująco:

program tablica;

uses crt;

var ocena:array[1..5]of byte;

i:byte;

suma:byte;

begin

clrscr;

for i:1 to 5 do

begin

write('Podaj ocene ' ,i,': ');

readln(ocena_);_

end;

for i:=1 to 5 do writeln(ocena__);

for i:=1 to 5 do

suma:=suma+ocena__;

write('srednia ', suma/5:1:2);

repeat until keypressed;

end.


([alex]) #2

Poszukaj w google: "algorytmy sortowania".


(Simplex111) #3
program sortowanie;

var ocena: array[1..5] of byte;

  i, j, temp, suma: Byte;

begin

  for i:= 1 to 5 do begin

    write('Podaj ocene ' ,i,': ');

    readln(ocena[i]);

  end;

  for i:= 1 to 4 do

   for j:= 5 downto i+1 do

    if ocena[j-1] > ocena[j] then begin

      temp:= ocena[j];

      ocena[j]:= ocena[j-1];

      ocena[j-1]:= temp;

    end;

  for i:= 1 to 5 do writeln(ocena[i]);

  suma:= 0;

  for i:= 1 to 5 do suma:= suma + ocena[i];

  write('srednia ', suma/5:1:2);

  readln;

end.

Zastosowany tu algorytm to sortowanie bąbelkowe. Polega ono na porównywaniu kolejno sąsiadujących ze sobą dwóch elementów tablicy i ewentualnej zamianie ich miejscami, jeśli nie są uporządkowane (w naszym przypadku rosnąco).

Jest to algorytm prosty w implementacji oraz łatwy do zrozumienia, ale generalnie jest to... bardzo zły algorytm sortujący

Sortowanie bąbelkowe to algorytm mało efektywny oraz czasochłonny, który zupełnie nie nadaje się do sortowania dużych tablic

... ale do posortowania tablicy pięcioelementowej jak najbardziej :slight_smile:


(Karisia Mojezycie) #4

Witam.

Chciałabym się poradzić, bo mam do napisania program o owej treści :

"Napisz program, który wykona sortowanie 3 wprowadzonych przez użytkownika liczb, przy pomocy instrukcji "if else" "

Kompletnie nie wiem jak to zrobić, czy ktoś byłby w stanie wytłumaczyć mi na czym to dokładnie polega i jak to zrobić.

Nie potrzebuje gotowca, lecz potrzebuje to zrozumieć, żeby umieć samemu napisać, bo w szkole nie bardzo zrozumiale wytłumaczono...

Pozdrawiam i z góry dziękuję :wink:

Czekam na odpowiedź ;-*