Пример: Влияние ORIGIN на функции, не связанные с поиском
Системная переменная ORIGIN влияет на результаты трех функций, которые выполняют операции с массивами: submatrix, csort и rsort.
Также она влияет на одну функцию, которая не выполняет операций с массивами: e (антисимметричная тензорная функция).
1. Определите входную матрицу.
2. Вычислите системную переменную ORIGIN, чтобы удостовериться, что для нее установлено значение 0.
ORIGIN=0: submatrix, csort и rsort
1. Задайте аргументы столбца и строки.
2. Используйте функцию submatrix, чтобы извлечь подматрицу из матрицы M.
Результат представляет собой подматрицу, найденную между строками 2 и 3 и столбцами 3 и 4.
3. Задайте аргумент столбца и вычислите функцию сортировки столбца csort.
Возвращаемая матрица является результатом переупорядочения строк матрицы M таким образом, чтобы столбец 3 отображался в порядке возрастания.
4. Задайте аргумент строки и вычислите функцию сортировки строки rsort.
Возвращаемая матрица является результатом переупорядочения столбцов матрицы M таким образом, чтобы строка 4 отображалась в порядке возрастания.
ORIGIN=1: submatrix, csort и rsort
1. Установите для системной переменной ORIGIN значение 1.
2. Повторно вычислите функцию submatrix.
Теперь возвращаемая матрица получается из строк 1 и 2 и столбцов 2 и 3.
3. Покажите, что для получения таких же результатов в том случае, если для системной переменной ORIGIN установлено значение 0, необходимо добавить новое значение ORIGIN в индексы строк и столбцов функции submatrix.
4. Повторно вычислите функцию csort.
Теперь по возвращаемой матрице видно, что в порядке возрастания представлен столбец 2, а не столбец 3.
5. Покажите, что для получения таких же результатов в том случае, если для системной переменной ORIGIN установлено значение 0, необходимо добавить новое значение ORIGIN в аргумент c.
6. Повторно вычислите функцию rsort.
Теперь по возвращаемой матрице видно, что в порядке возрастания представлена строка 3, а не строка 4.
7. Покажите, что для получения таких же результатов в том случае, если для системной переменной ORIGIN установлено значение 0, необходимо добавить новое значение ORIGIN в аргумент r.
ORIGIN=0: e
1. Установите для системной переменной ORIGIN значение 0.
2. Задайте три аргумента антисимметричной тензорной функции: i, j и k.
1. Установите для системной переменной ORIGIN значение 1.
2. Повторно вычислите асимметричную тензорную функцию.
Происходит ошибка, потому что значение каждого аргумента должно находиться в интервале между ORIGIN и ORIGIN+2.
3. Покажите, что для получения таких же результатов в том случае, если для системной переменной ORIGIN установлено значение 0, необходимо добавить новое значение ORIGIN в каждый из трех аргументов.