Definisati proceduru Okreniniz (mi to možemo raditi kao ceo program) koja za [inlmath]n_1,n_2\quad(n_1,n_2<n)[/inlmath] okreće podniz između [inlmath]n_1[/inlmath] i [inlmath]n_2[/inlmath] i to uraditi bez formiranja novog niza (primer [inlmath]1\quad 2\quad 3\quad 4\quad 5[/inlmath], ako su [inlmath]n_1=2[/inlmath] i [inlmath]n_2=4[/inlmath] kao rezultat se dobija [inlmath]1\quad 4\quad 3\quad 2\quad 5[/inlmath]).
Ja kao prvo, nisam razumeo šta zapravo ova procedure treba da radi, jer su rekli da je ovaj primer koji su naveli specijalan slučaj, i da cilj procedure nije zamena mesta [inlmath]n_1[/inlmath] i [inlmath]n_2[/inlmath]. Pa sam onda ovako tu proceduru interpretirao ovako: Ako okrećemo podniz niza [inlmath]1\quad 2\quad 3\quad 4\quad 5[/inlmath] između [inlmath]1[/inlmath] i [inlmath]4[/inlmath], ja sam prvo uradio zamenu mesta [inlmath]1[/inlmath] i [inlmath]4[/inlmath], a potom sam podniz [inlmath]2\quad 3[/inlmath] gledao kako bih pročitao sa desna na levu stranu , a to bi bilo [inlmath]3\quad 2[/inlmath], pa kao krajnji ishod imamo [inlmath]4\quad 3\quad 2\quad 1\quad 5[/inlmath]. Znam da ovo tumačenje nije dobro, ali kako bi bilo ispravno tumačenje, jer je, barem po mom mišljenu, ovaj zadatak nerazumno sastavljen, a i pri tom je naveden specijalni slučaj( tj. kada između [inlmath]n_1[/inlmath] i [inlmath]n_2[/inlmath] imamo samo jedan element) iz kog, barem ja, ne mogu da uočim pravilnost okretanja niza.
Evo kod za moje tumačenje:
- Kôd: Obeleži sve
program Okreniniz;
type niz=array[1..50] of integer;
var a:niz;
i,n,n1,n2,t,p,q:integer;
begin
write('Unesite n:');
readln(n);
write('Unesite n1:');
readln(n1);
write('Unesite n2:');
readln(n2);
For i:=1 to n do readln(a[i]);
p:=n1;
q:=n2;
For i:=1 to n div 2 do
begin
t:=a[p];
a[p]:=a[q];
a[q]:=t;
p:=p+1;
q:=q-1;
end;
For i:=1 to n do write(a[i],' ');
end.