TECHNIKA: VÝMĚNA HODNOT PROMĚNNÝCH

Hodnotu dvou proměnných X and Y vyměníme posloupností příkazů

W = Y; Y = X; X = W

V Rexxu můžeme vyměnit hodnotu slov X a Y příkazem

parse value X Y with Y X

Jiná (obecná) cesta k výměně hodnot dvou proměnných využívá vestavěnou funkci VALUE. Ta vrací hodnotu symbolu, určeného prvním argumentem. Je-li symbolem jméno proměnné, je možné jí přiřadit hodnotu druhého argumentu.

X = VALUE('Y', X)

Hodnotu posloupnosti proměnných X, Y, Z můžeme přerovnat do posloupnosti Z, X, Y (tj. hodnotou proměnné Y je původní hodnota X atd.) pomocí fragmentu programu:

W = Z; Z = Y; Y = X; X = W

Dále uvádím obecné řešení tohoto problému pro I-proměnných A.1,A.2,...,A.I (I>=2),

W = A.I
do J = I - 1 to 1 by -1
  Jp1 = J + 1; A.Jp1 = A.J
end
A.1 = W

Tato technika se využívá v algoritmu třídění vkládáním (insertion sort).

do I = 2 to N
  Im1 = I - 1
  if A.I < A.Im1 then do
    W = A.I
    do J = I - 1 by - 1 until A.Jm1 <= W | J = 1
      Jp1 = J + 1; A.Jp1 = A.J; Jm1 = J - 1
    end
    A.J = W
  end
end

 

SOUVISLOSTI


Obálka Obsah Index Hlavní stránka

změněno 1. srpna 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.