Proszę o rozwiązanie 3 zadań do poniższej procedury:

procedure SortWyb;
var
i, j, min: integer;
tymcz: real;

begin
for i:=1 to n-1 do
begin
min:=i;
for j:=i+1 to n do
if B[j] < B[min] then
min:=j;
tymcz:= B[i];
B[i]:= B[min];
B[min]:= tymcz;
end;
end;

Zad1. Zinterpretuj szczegółowo, co dzieje się w pętli 1.
Zad2. Jaką funkcję pełni zmienna tymcz?
Zad3. Przedstaw algorytm procedury SortWyb.

1

Odpowiedzi

Najlepsza Odpowiedź!
2010-03-10T15:04:58+01:00
Pętla wykonuje się n-1 razy, gdzie n to liczba elementów do posortowania. W pętli wewnętrznej, która wykonuje się n*(n-1) razy, sprawdza się czy element j-ty iteracji jest mniejszy od elementu minimalnego, który na początku równa się pierwszemu elementowi. Jeśli jest mniejszy to zmienna j przyjmuje jeso index (numer w wektorze). Zmienna tymcz przyjmuje wartość obecnej iteracji B[i], następnie zmienna B[i] przyjmuje wartość elementu minimalnego, a element minimalny przyjmuje wartość ze zmiennej tymcz. w skrócie te trzy linijki kodu: tymcz:= B[i]; B[i]:= B[min]; B[min]:= tymcz; zamieniają miejscami elementy jeżeli element B[j] jest mniejszy od elementu B[min].
Zmienna tymcz ma chwilowo przechować wartość, bo nie da się na raz zamienić wartości dwóch zmiennych, dlatego wartość jednej zapisuje się w tymcz, potem ją nadpisuje inną zmienną, a następnie trzecią zmienna nadpisuje się wartością tymcz.