Помощь - Поиск - Пользователи - Календарь
Полная версия: Turbo Pascal. Найти К-тый елемент матрицы если ее элементы стоят в заданом порядке.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CormiX
Помогите плиз с задачкой. Если можно то кодом Паскаль напишите.

Дано матрицу A[1...M, 1...N]. Вычислить К-тий елемент етой матрицы, если ее элементы размещены по схеме:
1 2 6
3 5 7
4 8 9
(число - номер елемента) Зарание спс.

Я чтото пытался сделать но...вот:

const M=3;
N=3;
var
arr:= array:[1..N,1..M] of real;
k,i,j:integer;
begin
for I=1 to M do
for J=1 to N do begin
if ( arr[I,J]=K ) then begin

I2=I; J2=J;
end;
end;
A[I2,J2] - это K-й элемент матрицы???
TarasBer
Нет, это элемент, у которого значение К, а не номер. А таких пока нет - все изначально нулевые.
Хотя в качестве решения можно сначала заполнить матрицу косой змейкой, а потом сделать, как ты.
CormiX
Это как....?
TarasBer
Ну присвоить всем элементам значения в соответствии с номерами, которые на схеме.
Хотя в данном случае можно и обойтись.
CormiX
Так что мне конкретно нужно сделать) Есл не трудно скажите)
TarasBer
Дык я конкретно и сказал про заполнение змейкой. А сразу писать программу ЗА того, кто просит, тут не принято.

Или тебе надо про то, как прямо искать координаты по номеру? Не советую. Но если очень надо... Значит, тебе надо по числу K найти X и Y. То есть тебе надо построить сответствия K|->X и K|->Y. Для того, чтобы понять, как эти соответствия работают, сначала нарисуй графики этих соответствий для простых случаев, они будут кусочно-линейными. Найди общие закономерности и напиши процедуру, которая их реализует.

Например, для случая 3х3 соответствия будут такими:
Для X:
1|->1
2|->2
3|->1
4|->1
5|->2
6|->3
7|->3
8|->2
9|->3
Для Y:
1|->1
2|->1
3|->2
4|->3
5|->2
6|->1
7|->2
8|->3
9|->3
Нарисуй график зависимости, нарисуй график для больших N и M, пойми, по какому принципу этот кусочно-линейный график делится на участки (а края этих участков - корни каких-то квадратных уравнений), в общем гемор.

Проще заполнить всю матрицу, а потом выполнить написанный тобой кусок.
CormiX
Если б я знал как)))
TarasBer
Заполнить матрицу косой змейкой? Это стандартная задача, тут она наверняка есть в примерах, надо только поиск применить.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.