|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.06.2007, 14:31 | #1 |
Регистрация: 13.06.2007
Сообщений: 8
|
Задача с матрицей(нужна помощь)
Задача.
Сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке. Помогите. Я оооооочень плохо понимаю Delphi. |
13.06.2007, 15:06 | #2 | |
Пользователь
Регистрация: 13.06.2007
Сообщений: 20
|
Цитата:
возьми лист бумаги и нарисуй на нем матрицу, проиндексируй каждый элемент, и потом сдвинь и снова проиндексируй и посмотри как у тебя изменились индексы. А потом примени уже в дельфи.
www.saprulez.ru - готовые программы, форум.
|
|
13.06.2007, 15:53 | #3 |
Регистрация: 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. Проверьте пожалуйста. Эта программа работает с квадратными матрицами, а мне нада не квадратную,ешё вроде надо поменять условиек выхода!!!! Помогите |
13.06.2007, 16:31 | #4 |
Регистрация: 13.06.2007
Сообщений: 8
|
Проблема в том что у мя нет Delphi. Задачи мы делаем в колледже или на дом задают, а потом решаем их на компе в колледже.
Delphi мы проходим месяц Помогите пожалуйста |
13.06.2007, 23:10 | #5 |
Регистрация: 13.06.2007
Сообщений: 8
|
Хоть подскажите где чё поставить чтоб сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.
Я уже не прошу о целой задаче. Буду сам пытаться. немного подскажите!!! |
14.06.2007, 12:55 | #6 |
Регистрация: 13.06.2007
Сообщений: 8
|
ТЕМУ МОЖНО УДАЛИТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача 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 |