Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 00:17   #1
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию Массивы

Дан квадратный числовой массив размером NxN. Заполнить его числами от 1 до N2 по указанной траектории: m[1,1] =1; m[1,2] =2; m[2,1]=3; m[2,2]=4; m[3,1]=5 и т.д.
мой вариант работает только в массиве 8х8
Код:
{$APPTYPE CONSOLE}

uses
  SysUtils;
const N=8;
type mas=array[1..N,1..N] of integer;
var m:mas;
procedure Vvod(n:integer;var m:mas);
var i,j,k:integer;
begin k:=1;
for i:=1 to N do begin for j:=1 to 2 do begin m[i,j]:=k; k:=k+1;
end;
end;
for i:=1 to N do begin for j:=3 to 4 do begin m[i,j]:=k; k:=k+1;
end;
end;
for i:=1 to N do begin for j:=5 to 6 do begin m[i,j]:=k; k:=k+1;
end;
end;
for i:=1 to N do begin for j:=7 to 8 do begin m[i,j]:=k; k:=k+1;
end;
end;
end;
procedure Vivod(m:mas);
var i,j: integer;
begin
for i:=1 to N do
begin
for j:=1 to N do
write(m[i,j]:5,' ');
writeln;
end;
end;
begin
Vvod(n,m);
Vivod(m);
readln;
end.
как сделать чтобы она работала при всех n?
Asira вне форума Ответить с цитированием
Старый 21.12.2009, 00:29   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
procedure Vvod(n:integer;var m:mas);
var i,j:integer;
begin 
for i:=1 to n do for j:=1 to n do m[i,j]:=(i-1)*n+j;
end;
eoln вне форума Ответить с цитированием
Старый 21.12.2009, 01:14   #3
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию

Спасибо!!!!!!!!!!!!!!!!
Но так я пробовала прога всё равно не правильно выводит
мне надо
1 2 7 8
3 4 9 10
5 6 11 12

а этот код выведет
1 2 3 4
5 6 7 8
9 10 11 12
Asira вне форума Ответить с цитированием
Старый 21.12.2009, 02:10   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Тогда так
Код:
for j:=1 to n do for i:=1 to n do m[i,j]:= 2*i-1 + n*(j-1) - (n-1)*((j-1) mod 2);
eoln вне форума Ответить с цитированием
Старый 21.12.2009, 09:11   #5
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию

Спасибо!!!!!!!!
Asira вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы на С++ lamak Помощь студентам 3 16.01.2011 22:21
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы! JulLy Фриланс 5 08.07.2009 15:04