-
Упростить выражение
День добрый! Помогите решить следующую задачу.
На входе в блок двадцать переменных Х1....Х20, вводятся вручную оператором.
В блоке создается массив Z[1] и переменные сортируются в порядке возрастания.
На выходе с блока нужно получить номера переменных в соответствии с их положение в массиве (после сортировки).
Пример на основе пяти входных переменных:
| Вход блока |
Внутри блока |
Выход блока |
| X1=10 |
Z[1]=3 |
A1=4 |
| X2=35 |
Z[2]=10 |
A2=1 |
| X3=11 |
Z[3]=11 |
A3=3 |
| X4=3 |
Z[4]=35 |
A4=2 |
| X5=43 |
Z[5]=43 |
A5=5 |
Вычисление выходных значений А1...А5 можно добиться путем многократных повторений строк кода типа:
IF Z[1]=X1 THEN A1:=1; END_IF;
IF Z[1]=X2 THEN A1:=2; END_IF;
IF Z[1]=X3 THEN A1:=3; END_IF;
IF Z[1]=X4 THEN A1:=4; END_IF;
IF Z[1]=X5 THEN A1:=5; END_IF;
IF Z[2]=X1 THEN A2:=1; END_IF;
IF Z[2]=X2 THEN A2:=2; END_IF;
IF Z[2]=X3 THEN A2:=3; END_IF;
IF Z[2]=X4 THEN A2:=4; END_IF;
IF Z[2]=X5 THEN A2:=5; END_IF;
И т.д. - т.е. получиться 100 строчек кода.
Как можно оптимизировать программу и создать цикл? Тем самым уменьшив программу.
Спасибо.
-
Вложений: 1
Можно совместить с сортировкой массива Z. Для этого надо элементы массива Z сделать структурой из двух элементов (значение и порядковый номер) когда отсортируете массив, то порядковые номера структуры будут соответствовать задаче, просто присвоите их выходам.
-
Все гениальное просто, огромное спасибо! Даже пример можно не смотреть!!!