![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет. Не могу разобраться с массивом. Есть массив 5х5. Известен элемент с определенными координатами [строка, столбец], которые передаются в качестве параметров функции (x,y). Необходимо сделать универсальный цикл такой обработки: Записать каждую из двух диагоналей в множество (значения массива от 1 до 6).
В общем помогите отыскать хотя бы начало диагонали (её верхушка). Вот что именно мне надо (пара примерчиков): [1.1] [1.2] [1.3] [1.4] [1.5] [2.1] [2.2] [2.3] [2.4] [2.5] [3.1] [3.2] [3.3] [3.4] [3.5] [4.1] [4.2] [4.3] [4.4] [4.5] [5.1] [5.2] [5.3] [5.4] [5.5] Где 3.4 мой элемент, а 1.2 .. 4.5 и 2.5 .. 5.2 - диагональ, значения которых мне надо отправить в моё множество. Ну и вот еще примерчик: [1.1] [1.2] [1.3] [1.4] [1.5] [2.1] [2.2] [2.3] [2.4] [2.5] [3.1] [3.2] [3.3] [3.4] [3.5] [4.1] [4.2] [4.3] [4.4] [4.5] [5.1] [5.2] [5.3] [5.4] [5.5] Прошу подскажите, хотя бы подтолкните на мысль, я не прошу писать программу за себя.. Просто пояснить алгоритм. За помощь буду сильно благодарен! Последний раз редактировалось Grandness, 21.11.2010 в 23:15. |
#2
|
||||
|
||||
![]() Можно грубо говоря пойти по диагонали вверх-влево, пока один из индексов не станет равен нулю. Так же вверх-вправо.
А можно чтоб получить верхний-левый элемент определить k=max(i,j); потом k:=k-min(i,j); k - одна из коордиат, т.е. если I больше, то это I-координата, если J больше - то J. вторая - 0. Но это при условии, что все нумеруется с нуля. Как-то так. jmp $ ; Happy End! The Cake Is A Lie. |