Witam analizuje sobie kod metody dziel i zwyciężaj i po prostu nie rozumiem nie których linijek jakby ktoś mógł mi wytłumaczyć ;)
program metoda_dziel_i_zwyciezaj;
uses crt;
var
tablica:array[1..50] of integer;
tablicam:array[1..25] of integer;
tablicaw:array[1..25] of integer;
i,j,max,min: integer;
procedure losowanie;
begin
randomize;
for i:=1 to 50 do begin
tablica[i]:=random(101);
end;
end;
procedure dziel;
begin
j:=0;
i:=1;
repeat
if tablica[i]<tablica[i+1] then
begin
j:=j+1;
tablicam[j]:=tablica[i];
tablicaw[j]:=tablica[i+1];
end else
begin
j:=j+1;
tablicaw[j]:=tablica[i];
tablicam[j]:=tablica[i+1];
end;
i:=i+2;
until i>=50;
end;
procedure zwyciezaj;
begin
min:=tablicam[1];
for i:=1 to 25 do if tablicam[i]<min then min:=tablicam[i];
max:=tablicaw[1];
for i:=1 to 25 do if tablicaw[i]>max then max:=tablicaw[i];
end;
begin
clrscr;
losowanie;
writeln('Wylosowane liczby');
for i:=1 to 50 do write (tablica[i],' ');
dziel;
zwyciezaj;
writeln;
writeln('Liczba najmniejsza ',min);
writeln('Liczba najwieksza ',max);
repeat until keypressed;
end.
Mam tutaj ten kodzik i tak nie rozumiem procedury dziel;
ponieważ z góry mamy założone i= 0 , j = 1 i ~~> if tablica[i]<tablica[i+1] then ...
jeśli to powtarza i i= 1 potem 2 potem 3 potem 4 to po co pisać else nie wiem czy dobrze to rozumiem bo i tak zawsze i+1 będzie wieksze
i po co jest ta linijka j:=j+1; tego nie rozumiem wgl
i czemu jest to tablicam[j] np a nie i ?
co to jest to j ?
i dla czego jest na koncu i:= i+2 ????
procedure zwyciezaj i losowanie rozumiem
Jeśli ma ktoś chwilę czasu żeby mi to wytłumaczyć byłbym naprawdę bardzo wdzięczny !
Pozdrawiam!