Преобразование матрицы, Сложная задача |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Преобразование матрицы, Сложная задача |
irena |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: 0 |
Я еще плохо разбираюсь в массивах и у меня не получается решить эту задачу, помогите пожалуйста.
Назовем допустимым преобразованием матрицы смещение строк матрицы на одну снизу вверх и столбцов на один справа налево, при этом первая строка опускается вниз, а первый столбец становится последним. Дана действительная квадратная матрица порядка n. С помощью допустимых преобразований добиться того, чтобы элемент матрицы, обладающий наименьшим значением, располагался в левом верхнем углу матрицы. Заранее благодарна Сообщение отредактировано: irena - |
volvo |
Сообщение
#2
|
Гость |
irena
Уточнение: допустимая операция делает эти 2 действия сразу или можно по отдельности? |
irena |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: 0 |
volvo по отдельности
|
volvo |
Сообщение
#4
|
Гость |
const Все работает... |
irena |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 11 Пол: Женский Репутация: 0 |
Здорово!
Только не понятно что такое Pred(count_row) Если тебя не затруднит, посмотри еще одну задачу: Дана последовательность из 100 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами, в сумму включить и оба этих числа. Поиск максимального и минимального чисел организовать в подпрограмме. |
volvo |
Сообщение
#6
|
Гость |
Цитата Pred(count_row) это получить предыдущее значение ( = count_row - 1) Задача нужна срочно ? |
volvo |
Сообщение
#7
|
Гость |
Я сделал для 10-ти элементов ... измени n на 100 и добавь недостающие значения в массив...
Код const n = 10; arr: array[ 1 .. n ] of integer = (2, 5, 8, 3, 9, 42, 5, 6, 14, 28); { нам не нужно само мин. или макс. значение - ищем только его индекс } function minIndex: integer; var i: integer; min: integer; begin min := maxInt; for i := 1 to n do if min > arr[i] then begin min := arr[i]; minIndex := i end; end; function maxIndex: integer; var i: integer; max: integer; begin max := - maxInt; for i := 1 to n do if max < arr[i] then begin max := arr[i]; maxIndex := i end; end; var start_count, stop_count: integer; T, i, s: integer; begin start_count := minIndex; stop_count := maxIndex; { если макс. число стояло перед мин. числом - меняем индексы местами } if start_count > stop_count then begin T := start_count; start_count := stop_count; stop_count := T; end; s := 0; for i := start_count to stop_count do s := s + arr[i]; writeln( 's = ', s ); end. Сообщение отредактировано: volvo - |
loko |
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
А чё нужно поменять чтоб максимальный элемент был в верхнем левом углу а не минимальный?
|
volvo |
Сообщение
#9
|
Гость |
Вот тут:
{ Находим минимальное значение в матрице ... }Нужно находить не минимальное значение, а максимальное. И запоминать, соответственно, его позицию... |
loko |
Сообщение
#10
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Цитата(volvo @ 8.05.2006 13:55) Нужно находить не минимальное значение, а максимальное. И запоминать, соответственно, его позицию... я плохо в этом разбираюсь не мог бы ты сам написать как должно быть.Зарание благодарен. |
volvo |
Сообщение
#11
|
Гость |
Да что ты говоришь? До какой же степени нужно "плохо разбираться", чтобы не уметь добавить один минус и сменить знак с ">" на "<" ???
Название переменной MIN можно не менять - на правильность выполнения программы оно не влияет... Хотя можешь и поменять его на MAX... min := - maxValue; { <--- Здесь добавить минус }Сильно изменилось, правда? |
loko |
Сообщение
#12
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
вот ещё один последний вопрос по этой программе.
Если матрица не квадратная а на пример 5 на 9,или 11 на 6.Нужно ввести ещё одну константу m.Тогда матрица будет выгледить так: matrix: array[1 .. n, 1 .. m] Of real; И вот сам вопрос : что нужно поменять и добавить в коде программы в связи с заменой n на m? Если не затруднит пожалуйста объесните. |
loko |
Сообщение
#13
|
Группа: Пользователи Сообщений: 9 Пол: Мужской Репутация: 0 |
Пожалуйста посмотрите что у меня в коде программы неправельно:
const Мне нужно ч тоб максимальный элемент находился в верхнем левом углу.А у меня это не выходит. Сообщение отредактировано: volvo - |
Malice |
Сообщение
#14
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Пожалуйста посмотрите что у меня в коде программы неправельно: Мне нужно ч тоб максимальный элемент находился в верхнем левом углу.А у меня это не выходит. На вскидку: у тебя не правильно работают процедуры moveRow и moveColumn. В первой циклы n на n, во второй m на m, это будет работать только на квадратных матрицах. Поменяй в moveRow первый цикл до m, в moveColumn 1-ый до n. |
Текстовая версия | 11.01.2025 8:03 |