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 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