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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2007, 14:31   #1
VDK23RUS
 
Регистрация: 13.06.2007
Сообщений: 8
Печаль Задача с матрицей(нужна помощь)

Задача.
Сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
Помогите. Я оооооочень плохо понимаю Delphi.
VDK23RUS вне форума Ответить с цитированием
Старый 13.06.2007, 15:06   #2
S.W.A.T.
Пользователь
 
Регистрация: 13.06.2007
Сообщений: 20
По умолчанию

Цитата:
Сообщение от VDK23RUS Посмотреть сообщение
Задача.
Сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
Помогите. Я оооооочень плохо понимаю Delphi.
В принципе не так уж и трудно это сделать, но влом зарбираться, просто
возьми лист бумаги и нарисуй на нем матрицу, проиндексируй каждый элемент, и потом сдвинь и снова проиндексируй и посмотри как у тебя изменились индексы. А потом примени уже в дельфи.
www.saprulez.ru - готовые программы, форум.
S.W.A.T. вне форума Ответить с цитированием
Старый 13.06.2007, 15:53   #3
VDK23RUS
 
Регистрация: 13.06.2007
Сообщений: 8
По умолчанию

const
num_row = 5;
num_col = num_row;

type
mx = array[1 .. num_row, 1 .. num_col] of integer;

procedure print(const arr: mx);
var i, j: integer;
begin
for i := 1 to num_row do begin

for j := 1 to num_col do
write(arr[i, j]:4);
writeln;

end;
writeln;

end;

procedure rotate_layer(var arr: mx; const n: integer);
var
buf: array[1 .. num_row * num_col] of integer;
count: integer;

function in_buffer(save: boolean; var X: integer): integer;
begin
inc(count);

if save then buf[count] := X
else X := buf[count];

in_buffer := 1;
end;

var
T, i, j: integer;
cycle: boolean;
begin
if n > (num_row div 2) then exit;

for cycle := true downto false do begin
count := 0;
i := n; j := n;

while j <= num_col - n do inc(j, in_buffer(cycle, arr[i, j]));
while i <= num_row - n do inc(i, in_buffer(cycle, arr[i, j]));
while j >= n do dec(j, in_buffer(cycle, arr[i, j]));
inc(j); dec(i);

while i > n do dec(i, in_buffer(cycle, arr[i, j]));

T := buf[count];
move(buf[1], buf[2], (count - 1)*sizeof(integer));
buf[1] := T;
end;

end;

const
A: mx = (
(1, 2, 3, 4, 5),
(3, 4, 5, 6, 7),
(7, 8, 9, 0, 2),
(2, 7, 4, 9, 1),
(0, 3, 7, 7, 5)
);

begin
print(A);
rotate_layer(A, 2);
print(A);
end.
Проверьте пожалуйста.
Эта программа работает с квадратными матрицами, а мне нада не квадратную,ешё вроде надо поменять условиек выхода!!!!
Помогите
VDK23RUS вне форума Ответить с цитированием
Старый 13.06.2007, 16:31   #4
VDK23RUS
 
Регистрация: 13.06.2007
Сообщений: 8
По умолчанию

Проблема в том что у мя нет Delphi. Задачи мы делаем в колледже или на дом задают, а потом решаем их на компе в колледже.
Delphi мы проходим месяц
Помогите пожалуйста
VDK23RUS вне форума Ответить с цитированием
Старый 13.06.2007, 23:10   #5
VDK23RUS
 
Регистрация: 13.06.2007
Сообщений: 8
По умолчанию

Хоть подскажите где чё поставить чтоб сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
Я уже не прошу о целой задаче. Буду сам пытаться.
немного подскажите!!!
VDK23RUS вне форума Ответить с цитированием
Старый 14.06.2007, 12:55   #6
VDK23RUS
 
Регистрация: 13.06.2007
Сообщений: 8
По умолчанию

ТЕМУ МОЖНО УДАЛИТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!
VDK23RUS вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Pascal на массив (нужна помощь) STIG_E70 Помощь студентам 4 18.06.2008 20:19
[C] Задача на указатели . Нужна помощь shtkuh Помощь студентам 1 26.01.2008 08:47
Задача с матрицей H[o][o]K Помощь студентам 1 15.12.2007 16:51
Задача с матрицей на Delphi POPOV Помощь студентам 28 29.10.2007 06:39
Задача с матрицей, Паскаль Integra Помощь студентам 1 25.04.2007 16:14