Sortowanie Od najmniejszej do największej CYFRY PASCAL?

1. Zadaj pytanie
2. Odpowiedz
3. Dowiedz sie więcej
PROLINK

Polecane pytania


Dodaj swoje zadanie domowe za darmo

Sortowanie Od najmniejszej do najwię...
Napisano 28-01-2010 22:23
, przez natalious
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:

Kod:

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[i]);
end;
for i:=1 to 5 do writeln(ocena[i]);
for i:=1 to 5 do
suma:=suma+ocena[i];
write('srednia ', suma/5:1:2);
repeat until keypressed;
end.

Sortowanie Od najmniejszej do najwię...
Napisano 10-06-2026 02:46:50
, przez zadane
Sprobuj na https://dojrzewamy.pl. Pisza ponad 2000 odpowiedzi dziennie!
Sortowanie Od najmniejszej do najwię...
Napisano 29-01-2010 12:47
, przez Tomek_TK
Witaj

Istnieje kilka popularnych algorytmow sortowania - jednym z nich jest sortowanie bąbelkowe.

http://pl.wikipedia.org/wiki/Sortowanie_bąbelkowe

Choc jest to chyba najgorszy algorytm sortowania to ma swoje zalety - jest bardzo prosty i wlasnie dlatego proponuje z niego skorzystac.

Zanim udziele Ci pomocy, chcialbym zwrocic uwage na kilka drobiazgow w Twoim kodzie. Z tego co zauwazylem jedna petla jest niepotrzebna. Wyrazenie:


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


Mozna zastapic wyrazeniem:


for i:=1 to 5 do
begin
writeln(ocena[i]);
suma:=suma+ocena[i];
end;


Kolejna sprawa: dobrze byloby gdybys uzywala stalych. Wyobraz sobie taka sytuacje: Twoj nauczyciel zmienil tresc zadania i chcialby, zeby uzytkownik podal 15 ocen a nie 5. Wtedy pewnie zaczniesz zamieniac kazda 5-tke na 15-tke. Stale sa po to, zeby tego uniknac. Ostatecznie proponuje zrobic to tak:



Na koniec dodam, ze kod pisalem z glowy - moglem gdzies sie pomylic, dlatego warto byloby zebys sprawdzila czy dziala.
pytanie:
odpowiedź: