![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bush |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача на мой взгляд не простая поэтому и лбращаюсь за помощью.
Дана матрица,записанная в текстовый файл.Сдвинуть элементы заданной матрицы в пределах каждого слоя на одну позицию по часовой стрелке.Первый слой образуется из элементов находящихся по периметру матрицы,второй по периметру оставшейся подматрицы и т.д. до заполнения всей матрицы.Полученную матрицу дописать в файл.На экране расскрасить слои разными цветами. Если есть возможность помогите пожалуйста. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Добавил немного комментариев. Так понятнее?
|
Merhaba |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А как можно написать эту программу без использования буферного массива? может быть, как-нить через новые переменные двигать элементы? Извиняюсь за вторжение.. Можно, конечно. Например, можно делать многократный сдвиг на одну позицию. Это, конечно, сильно увеличит время выполнения, но это общий закон: либо память - либо время. У меня тоже есть заготовочка на эту тему (без буферного массива), вот тут: и опять матрицы Если там сделать внешний цикл по значениям k, то получишь то, что надо. Плюс уйти от квадратности. То есть как-то вот так: if n<m then k:= n else k:= m; -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Merhaba |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Извиняюсь за вторжение.. Можно, конечно. Например, можно делать многократный сдвиг на одну позицию. Это, конечно, сильно увеличит время выполнения, но это общий закон: либо память - либо время. У меня тоже есть заготовочка на эту тему (без буферного массива), вот тут: и опять матрицы Если там сделать внешний цикл по значениям k, то получишь то, что надо. Плюс уйти от квадратности. То есть как-то вот так: if n<m then k:= n else k:= m; Спасибо Вам Большое за помощь!!! а как можно переделать код, где 1-ый слой будет сдвигаться на к элементов, 2-ой на к-1 элементов, .... , где к - число слоев ? |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
а как можно переделать код, где 1-ый слой будет сдвигаться на к элементов, 2-ой на к-1 элементов, .... , где к - число слоев ? Что переделать??Ты читай ВНИМАТЕЛЬНО, что тебе пишут. А заодно, запусти код и посмотри, что он делает. И тогда, может, не будешь спрашивать, как сделать то, что уже сделано.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Merhaba |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что переделать?? Ты читай ВНИМАТЕЛЬНО, что тебе пишут. А заодно, запусти код и посмотри, что он делает. И тогда, может, не будешь спрашивать, как сделать то, что уже сделано.. Объясните Пожалуйста, что такое Dec(k) ? Я просто больше пишу проги на Java, чем на Паскале... немного подзабыл Сообщение отредактировано: Merhaba - 20.04.2011 20:31 |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Объясните Пожалуйста, что такое Dec(k) ? Это эквивалентно выражениюk := k-1; Или, если хочешь, то же самое, что k-= 1; на Си или Java. Dec является сокращение слова decrease (уменьшать). Есть также еще процедура Inc (от increase) для увеличения на единицу. Цитата Я просто больше пишу проги на Java, чем на Паскале... немного подзабыл Нет проблем )-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Merhaba |
![]()
Сообщение
#9
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это эквивалентно выражению k := k-1; Или, если хочешь, то же самое, что k-= 1; на Си или Java. Dec является сокращение слова decrease (уменьшать). Есть также еще процедура Inc (от increase) для увеличения на единицу. Нет проблем ) Объясните Пожалуйста, что такое b:= a[i,i];? Если переменная, то какого она типа? И зачем мы сохраняем левый верхний элемент? Что мы будем выводить на дисплей? Сообщение отредактировано: Merhaba - 22.04.2011 9:31 |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 0:58 |