массивы, преоброзование, заполнение, сжатие массивов |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
массивы, преоброзование, заполнение, сжатие массивов |
jenka |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 18 Пол: Женский Реальное имя: Евгения Репутация: 0 |
Есть такие задачи:
1. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. Освободившиеся в конце массива элементы заполнить нулями. 2. Преоброзовать массив таким образом, чтобы в первой его половине распологались элементы, стоявшие в нечетных позициях, а во второй половине-элементы, стоявшие в четных позициях. 3. Заполнить массив из пятнадцати элементов случайным образом вещественными значениями х (0<х<105). Очень нужна помощь с их решением. Помогите, плиз. |
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
1. Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a, b]. Освободившиеся в конце массива элементы заполнить нулями. Словами сказано - интервал, а обозначено как отрезок. Дальнейшее сделано для отрезка - примерно так, но я не проверял. var -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#3
|
Гость |
Почти... Нужно обратное действие:
if NOT( (a<c)and(c<b) ) then beginЗнак тоже надо исправить на a<c... |
Lapp |
Сообщение
#4
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Недремлющий volvo всегда на посту . Спасибо!
Сначала я использовал конструкция с NOT, потом решил ее упростить, но забыл сменить and на or . Исправленная версия: var -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#5
|
Гость |
Так... А вот теперь у меня вопрос: кто-нибудь сможет написать программу, выполняющую второе задание, без использования доп. массива (если ответ "Да" - то просьба тоже скрывать программу, теги [ SPOILER ] [ /SPOILER ], дайте подумать остальным)... Мое решение:
Спойлер (Показать/Скрыть)
|
Lapp |
Сообщение
#6
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
написать программу, выполняющую второе задание, без использования доп. массива Вот мое решение. Пара оговорок: 1. предполагаю, что длина массива четная; 2. сохраняю порядок внутри четных/нечетных групп (в задании это требование отсутствует, но я счел его логичным). Спойлер (Показать/Скрыть)
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#7
|
Гость |
lapp, если ты добавишь в самом конце программы:
for i := 1 to n do, то у тебя распечатается вот такой массив: Цитата 1 3 5 7 8 11 13 15 17 2 4 6 8 11 12 14 16 18 , а значит, он запорчен, ибо 8-ка и 11 не должны быть в двух местах... |
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
volvo, в твоем решении используется рекурсия.. Ничего особенно против нее не имею, но..
1. Если идет речь о неиспользовании массива, то это скорее всего экономия памяти. Рекурсия же использует память очень активно. 2. Последовательными вызовами рекурсивной процедуры возможно сохранить в памяти весь массив, не организуя его. С твоим замечанием согласен. Вот исправленная версия.. Спойлер (Показать/Скрыть)
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bokul |
Сообщение
#9
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Вот мой вариант.
Спойлер (Показать/Скрыть)
Сообщение отредактировано: volvo - -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Lapp |
Сообщение
#10
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Вот мой вариант. Bokul, для n=12 у тебя непорядок.. При n=10 тоже не очень здорово - не сохраняется порядок. Это, правда, не требуется в задаче.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bokul |
Сообщение
#11
|
Гуру Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: 11 |
Да, такой способ не идет при количестве кратном 4-ом.
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
Malice |
Сообщение
#12
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Так... А вот теперь у меня вопрос: кто-нибудь сможет написать программу, выполняющую второе задание, без использования доп. массива (если ответ "Да" - то просьба тоже скрывать программу, теги Может я чего не понял, но вроде все просто: Спойлер (Показать/Скрыть)
Хотя можно еще стек заиспользовать для хранения вместо массива.. |
мисс_граффити |
Сообщение
#13
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
раз сохранение порядка необязательно:
Спойлер (Показать/Скрыть)
Сообщение отредактировано: volvo - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
Сообщение
#14
|
Гость |
Цитата раз сохранение порядка необязательно: , что значит, необязательно? Смысл-то какой в этом тогда? Единственно логичной была бы такая перестановка, после которой массив<1 2 3 4 5 6 7 8 9 10> становится таким: <1 3 5 7 9 2 4 6 8 10>... Автору: Давайте будем полностью и корректно приводить задания... Видите, сколько в них недомолвок и неясностей? |
Lapp |
Сообщение
#15
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
раз сохранение порядка необязательно: Что-та не таво-та... Running "c:\home\home\ak\pas\th\th014\th014-miss-gr.exe " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 15 3 13 5 11 7 8 9 10 6 12 4 14 2 -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
мисс_граффити |
Сообщение
#16
|
просто человек Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
в задании про это ни слова.
бывают ситуации, когда порядок неважен.... может, это массив победителей лотереи, где приз получает каждый второй - вот их и надо в начало массива собрать. не будем фантазировать. ждем автора. Malice, проверь при нечетной длине массива... Что-та не таво-та... Running "c:\home\home\ak\pas\th\th014\th014-miss-gr.exe " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 15 3 13 5 11 7 8 9 10 6 12 4 14 2 сорри. разбираюсь... Сообщение отредактировано: мисс_граффити - -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lapp |
Сообщение
#17
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
в задании про это ни слова. ... Malice, проверь при нечетной длине массива... А что такое первая и вторая половины массива при нечетной его длине? В задании про это ни слова.. Будем фантазировать или подождем автора? Хотя, сумлеваюсь я, что автор что-то прояснит.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Malice |
Сообщение
#18
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
Malice, проверь при нечетной длине массива... а где в таком случае половина ? 2Volvo, задание такое, какое оно есть. Зачем склонять автора к своему варианту ? Хотя я думаю, что нашим способом тоже можно порядок не нарушить, нужно только добавить еще 1 цикл перестановок по второй части массива. Тогда совсем честно будет, даже честней чем у Volvo, так что мы с мисс_граффити тоже победим Попробую сейчас, некогда только - сервер проапгрейдил, перестанавливаю все |
Lapp |
Сообщение
#19
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
даже честней чем у Volvo, ?????????? ? ? ?? так что мы с мисс_граффити тоже победим Победит, как обычно дружба! -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#20
|
Гость |
Цитата задание такое, какое оно есть А его никакого нет... Пока Автор не соизволит написать, что ИМЕННО ему нужно... |
Текстовая версия | 8.11.2024 17:45 |