![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 17.02.2012
Сообщений: 3
|
![]()
дан двуменый массив 8на7 заполненный случайным образом.
-вставить между средними строками первую строку (желательно кратко) |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
После вставки строки получится массив 9 на 7.
При вставке нужно переместить нижнюю часть массива на строку ниже. Я надеюсь, что массив вы сформируете и сможете вывести. Сама вставка: Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
#3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Это уже 9х7 массив будет.
Покажи как ты вводишь массив
I'm learning to live...
|
![]() |
![]() |
#4 |
Регистрация: 17.02.2012
Сообщений: 3
|
![]()
через random
|
![]() |
![]() |
#5 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Я вижу 2 варианта решения проблемы.
1. Порядок: - перенести информацию из первой строки в дополнительно выделенный массив, - сдвинуть нижнюю половину вниз на одну строку, - вставить информацию, скопированную из первой строки в нужное место. Недостатки: - требуется дополнительная память (которую, впрочем, при некотором изменении алгоритма можно сократить до одного элемента), - реализация требует перемещения больших фрагментов памяти (более половины объема массива) - O(N). 2. Заменить массив на несколько иную структуру, например, на одномерный массив указателей на строки. При этом перемещать придется только указатели, а не сами данные - O(sqrt(N)). Примечание: Вместо массива можно использовать список, тогда собственно перемещение O(1), но, учитывая невозможность доступа непосредственно к середине списка, поиск O(sqrt(N)). |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в дополнение ко всему вышесказанному добавлю:
массивы в Delphi/Pascal при присвоении позволяют оперировать целыми строками. см. тему: Забавная и малоизвестная особенность работы с массивами в Pascal/Delphi в этой связи решение (предложенное выше BDA) вырождается в такое: полный код программы Код:
|
![]() |
![]() |
#7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Serge_Bliznykov, да, удобное сокращение (постоянно о нем забываю
![]()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прочитать первую строку из memo | hacknet | Работа с сетью в Delphi | 1 | 22.10.2010 18:56 |
Выделить первую строку в таблице | Polotenchik | Microsoft Office Word | 3 | 27.07.2010 22:41 |
Поменять местами столбец и первую строку | DanteDMC3 | Помощь студентам | 1 | 12.02.2010 16:06 |
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент. | JiLiYa | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 03.12.2008 12:13 |