Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ ДВУХМЕРНЫЕ МАССИВЫ

Автор: svetik 27.11.2005 16:41

Помогите!!!
Вариант №11 Дан двумерный массив целых чисел А[1..N,1..N]. Сформируйте линейный массив В[1..NN], получающийся при чтении данного массива так, как показано на рисунке 11


Прикрепленные файлы
Прикрепленный файл  _________Microsoft_Word__5_.doc ( 41 килобайт ) Кол-во скачиваний: 275

Автор: volvo 27.11.2005 16:43

svetik, правила внимательно читала?
http://forum.pascal.net.ru/rules.html
Пункт 1.11

Автор: HeX 27.11.2005 19:06

Для етого имееться поиск я уверен что заполнение массива по спирали или чтение массива имееться в немеренном количестве!!!

М
а ты сам поиском пользуешься? smile.gif
Altair


Автор: volvo 27.11.2005 19:51

HeX, в следующий раз не говори, что нужно пользоваться поиском, а найди (если есть) похожее решение, и дай ссылку. Вот я, например, похожего решения НЕ нашел.

svetik, что-то типа этого:

const
n = 7;
k = -1;
arr: array[1 .. n, 1 .. n] of integer =
((1, 2, 3, 4, 5, 6, 7),
(2, 3, 4, 5, 6, 7, 8),
(3, 4, 5, 6, 7, 8, 9),
(2, 3, 4, 5, 6, 7, 8),
(1, 5, 3, 2, 8, 7, 6),
(8, 3, 2, 9, 0, 3, 2),
(9, 8, 7, 6, 5, 4, 3));
var
lin: array[1 .. sqr(n)] of integer;
i, j, count: integer;

begin
i := n; j := n;
count := 0;

repeat

while (j > 0) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
dec(j)
end;
inc(j); dec(i);
while (i > 0) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
dec(i)
end;
inc(i); inc(j);
while (j < succ(n)) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
inc(j)
end;
dec(j); inc(i);
while (i < succ(n)) and (arr[i, j] <> K) do begin
inc(count); lin[count] := arr[i, j]; arr[i, j] := K;
inc(i)
end;
dec(i); dec(j)

until count = sqr(n);

for i := 1 to count do
write(lin[i]:4);
writeln;
end.


P.S. Но в следующий раз НЕ присоединяй DOC-файлы, тема просто будет удалена и все !!!