[pasca] odwracanie tablicy

0

Mam taki problem. Należy napisać procedure która będzie tak odwracała liczby w tablicy:
2 5 7 6 4 8
poprzez wywyołanie jakas_procka(3) otrzymamy:
2 5 8 4 6 7

ale mając 2 5 8 7 6 4 i wywolujac jakas_procka(1) otrzymamy tablice calkiem odwrocona.

Tablica jest indeksowana dla przykładu od 1. Prosze o jakas wskazówke, porade.

0

Wskazówka :

odw := '';
for i := length(ciag_liczb) downto argument_funkcji do begin
    odw := odw + ciag_liczb[i];
end;
Result := copy(ciag_liczb, 1, argument_funkcji - 1) + odw;
0

No tak. Ale tak byloby za latwo troszke. To ma byc operacja na tablicy array of Integer.

0

Przecież ten skrawek kodu właśnie operuje na tablicy.

0
hebius napisał(a)

No tak. Ale tak byloby za latwo troszke. To ma byc operacja na tablicy array of Integer.

lecisz pętlą od 0 do rozmiar_tablicy div 2 i zamieniasz i-ty z rozmiar_tablicy-i - tym i już

0
Misiekd napisał(a)
hebius napisał(a)

No tak. Ale tak byloby za latwo troszke. To ma byc operacja na tablicy array of Integer.

lecisz pętlą od 0 do rozmiar_tablicy div 2 i zamieniasz i-ty z rozmiar_tablicy-i - tym i już

koledze chyba raczej chodzilo o odwrocenie tablicy od podanej pozycji:

procedure odwrocod(var tab:array of integer; od, rozmiar:integer);
 var i,s:integer;
 t:integer;
begin
     dec(od);
     dec(rozmiar);
     s:= (rozmiar - od) div 2;
     for i := 0 to s do
     begin
          t := tab[i+od];
          tab[i+od] := tab[rozmiar-i];
          tab[rozmiar-i] := t;
     end;
end;

gdzie:
tab - tablica do odwrocenia
od - pozycja od ktorej ma odwrocic tablice (poczatek od pozycji 1)
rozmiar - ilosc elementow w odwracanej tablicy

1 użytkowników online, w tym zalogowanych: 0, gości: 1