![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
klik1602 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
Помогите пожалуйста! что-то совсем голова не варит((
Требуется отсортировать трёхмерный массив по возрастанию. как я понимаю, проще это будет сделать, преобразовав данный массив в одномерный. Подскажите, как выполнить преобразование?! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Не надо никаких преобразований. Как сортировать-то нужно?
|
klik1602 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
по возрастанию
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
По возрастанию ЧЕГО? Сумм элементов третьего изменения? Среднего значения элементов строки? Возрастаний я тебе сотню придумать могу. Напиши какой массив был и какой должен стать после сортировки.
|
klik1602 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
Дан трёхмерный массив. Расположите его элементы по возрастанию
|
klik1602 |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
что-то не то(( подскажите, как лучше вывести трёхмерный массив |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Дан трёхмерный массив. Расположите его элементы по возрастанию klik1602, от тебя пытаются добиться вдоль чего сортировать. С одномернум массивом этого вопроса на возникает. Легко сказать, какая точка больше и какая меньше, если они на отрезке или даже на целой прямой. А вот попробуй сравни так две точки на плоскости (или в трехмерном пространстве). Поэтому всегда нужно указывать, вдоль чего ты сортируешь. Например, на плоскости ты можешь сказать, что сортировка по близости к какому-то центру. Это будет первый уровень сортировки, а второй - внутри окружностей (все точки которых находятся на одинаковом расстоянии от центра), там можно сортировать по углу. Тут, я думаю, тебе нужна сквозная сортировка по слоям-строкам-элементам. Слой - это первый индекс, строка - второй, элементы - третий. Сквозная сортировка подразумевает, что ВСЕ элементы преддыдущего слоя не превосходят элементов следующего. В каждом слое - то же самое по строкам. А в каждой строке - поэлементно. Такая сортировка выглядит вполне естественно, но все же есть неоднозначность, и вопросы к тебе были совешенно законны. Например, можно сортировать элемент-слой-строка. Или вообще какой-нить змейкой хитрой.. Если же тебе надо сквозную сортировку слой-строка-элемент, то все довольно просто. Поскольку этот порядок совпадает с порядком организации трехмерного массива в памяти, то можно просто отсортировать всю эту область как большой одномерный массив. Например, вот так: type Что касается вывода, то он тоже организован по слоям. Иногда в задаче требуется не прибегать к представлению массива как одномерного. Если у тебя как раз такой случай - скажи. Удачи. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
klik1602 |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
большое спасибо за помощь))
задача поставлена так, как я вам её написала, а именно Цитата Дан трёхмерный массив. Расположите его элементы по возрастанию , с преподавателем я не увижусь уже до сдачи лаб, и не смогу спросить, какая именно сортировка от меня требуется, но скорее всего сквозная))не могли бы вы мне объяснить вот эту строчку Цитата b: array [1..l] of integer absolute a; она у меня не читается при выполнении программы, выскакивает ошибка Цитата Ожидалось ';' что означает absolute a ?? |
-TarasBer- |
![]()
Сообщение
#9
|
Гость ![]() |
> она у меня не читается при выполнении программы, выскакивает ошибка
При выполнении?! Может, при компиляции? Не путай, это очень большая разница. Какой компилятор? > Ожидалось ';' Значит, при КОМПИЛЯЦИИ. А вовсе не при выполнении. > что означает absolute a ?? Это означает, что под переменную не будет выделяться память, переменная будет расположена в памяти там же, где и a. |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата выскакивает ошибка Включаем режим телепатии: компилятор - Pascal ABC? Тогда забудь про Absolute, там эта директива отменена. В ABC надо действовать по-другому. |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
М-да... В Pascal ABC убрали все возможности работы с указателями, вот что с людьми делает автоматическая сборка мусора... Никакими ухищрениями мне не удалось ни преобразовать указатель на 3-мерную структуру в указатель на обычный линейный массив (это стандартная в общем-то операция, тут она невозможна), ни просто сделать
type Это тоже стандартное решение, и оно в ABC тоже не работает, он пишет что не может разные структуры приводить друг к другу, хотя вообще-то должен, размер-то абсолютно одинаковый... Получилось сделать сквозную сортировку только вот таким извращением... (Показать/Скрыть)
|
Lapp |
![]()
Сообщение
#12
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
что означает absolute a ?? Что это буквально означает, тебе уже объяснили. А фигурально выражаясь, это означает, что пора бросать это уродство, Pascal ABC (если, конечно, это не есть ОБЯЗАТЕЛЬНОЕ требование твоего учебного заведения, что было бы еще бОльшим уродством), установить FreePascal и делать ДЕЛО, а не в бирюльки играть.Я уважаю труды volvo (не забудь ему поставить +1), но промолчать не могу. Pascal ABC был задуман как простая альтернатива, но реализация всегда была goofy, а теперь они и вообще исказили основную идею языка.. ![]() Скачай FPC с официального сайта http://freepascal.org/download.var , и будет тебе щастье.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
klik1602 |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: ![]() ![]() ![]() |
ещё раз, большое спасибо за помощь.
![]() P.S> FreePascal уже установила;)) |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 2:19 |