|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.01.2017, 23:28 | #1 |
Новичок
Джуниор
Регистрация: 09.01.2017
Сообщений: 7
|
Удалить из массива наиболее длинную последовательность его нулевых элементов. Pascal
Доброго времени суток, прошу помощи по следующей задаче:
Дан одномерный числовой массив. Удалить из массива наиболее длинную последовательность его нулевых элементов. Если удаление элементов невозможно, выдать об этом сообщение. Удаление элементов из массива оформить в виде подпрограммы. Я пробовал разными способами и очень долго пытался достичь правильной работы программы. И сейчас решил обратиться за помощью. ___________________________________ _________________________ вот кусок программы который должен подсчитать количество нулей в максимальной длины их последовательности. никак не могу исправить... Код:
|
10.01.2017, 10:48 | #2 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Код:
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Последний раз редактировалось Plague; 10.01.2017 в 10:52. |
10.01.2017, 11:31 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Plague, есть баг в алгоритме - не обрабатываете нули в конце...
проверить можно, например, так: Код:
Код:
------- Цитата:
простите, а в каком случае это невозможно? если в массиве нет нулей совсем? или если массив полностью состоит из нулей? Последний раз редактировалось Serge_Bliznykov; 10.01.2017 в 11:33. |
|
10.01.2017, 12:00 | #4 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Как реализуется удаление из массива (для классики(ТП7.0))?
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
10.01.2017, 17:27 | #5 | ||
Новичок
Джуниор
Регистрация: 09.01.2017
Сообщений: 7
|
Цитата:
Цитата:
А условие "Если удаление элементов невозможно, выдать об этом сообщение" при отсутствии нулей совсем, т.к. преподователь просит заполнение через random, соответсвенно все нули там не окажутся.. |
||
10.01.2017, 17:46 | #6 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
вот поставьте в пример n=2. Можете гарантировать, что все (оба) элемента массива будут не нулевые? а если массив будет заполнять не random, а пользователь? Он то уж вполне может все нули вбить. Впрочем, это ваше дело - учитывать эту ситуацию или нет. Цитата:
для поиска последней подпослдовательности код нужно исправить на: Код:
угу. если не брать во внимание обычные статические массивы (а не указатели и выделяемую память), тогда нужно 1) переписать элементы, стоящие после удаляемых на место удаляемых. 2) уменьшить переменную N, в которой хранится размер массива. p.s. разумеется, n должна быть не константой. ну, начало программы в классическом TP может выглядеть примерно так: Код:
|
||
10.01.2017, 18:00 | #7 | |
Новичок
Джуниор
Регистрация: 09.01.2017
Сообщений: 7
|
Цитата:
не могли бы вы помочь написать эту процедуру конкретно для моей задачи ? Чтобы сразу как бы вся программа работала, удалила последовательность эту и вывела новый массив на экран... заранее большое спасибо!!! и так уже многое объяснили _____________ Избегайте лишнего цитирования. Не надо оставлять цитату, которая не нужна Вам при ответе! Модератор Последний раз редактировалось Serge_Bliznykov; 10.01.2017 в 18:07. |
|
10.01.2017, 18:09 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
10.01.2017, 18:22 | #9 |
Новичок
Джуниор
Регистрация: 09.01.2017
Сообщений: 7
|
procedure udalen(i:integer; mi:integer;b:integer;a:real; с:integer; p:real; k:real; var SS:real);
begin for i:=1 to mi do b[a]:=p[a]; for a:=c to n do b[a]:=p[a]; end; я понимаю,что это бред конечно, но в моей голове пока только так))) b[a] - нулевой массив |
11.01.2017, 00:55 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ладно. держи готовый код за старания
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти в массиве целых чисел наиболее длинную возрастающую последовательность | MeeGoo | Помощь студентам | 0 | 15.05.2016 12:59 |
удаление из массива нулевых элементов | tomas88 | C# (си шарп) | 0 | 20.05.2014 20:09 |
удаления из массива нулевых элементов | tomas88 | Помощь студентам | 2 | 15.04.2014 07:28 |
В целочисленном массиве найти наиболее длинную цепочку одинаковых подряд стоящих элементов C++ | Елена Погодина | Помощь студентам | 10 | 16.06.2011 22:33 |
Записать в массив Z подряд семь нулевых элементов массива R,состоящего из N элементов.(Язык QBasic) | Лиза) | Помощь студентам | 0 | 11.01.2011 16:02 |