19.07.2019, 04:00 [+3 UTC]
в нашей команде: 3 748 чел. | участники онлайн: 0 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
19.07.2019, 02:41
Всего: 149939

Последний ответ:
18.07.2019, 12:04
Всего: 258705

Последняя рассылка:
17.07.2019, 22:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
14.10.2009, 12:21 »
solandra
Спасибо за ответ, Вы подтвердили мое мнение. Смущает только одно: сельскохозяйственный рынок - это "базар" в худшем проявлении этого слова. Т.е. можно торговать как попало и кому попало. [вопрос № 173205, ответ № 255345]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 196
puporev
Статус: Профессионал
Рейтинг: 119
Асмик Гаряка
Статус: Советник
Рейтинг: 0

Перейти к консультации №:
 

Консультация онлайн # 143221
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Miracle
Отправлена: 06.09.2008, 18:00
Поступило ответов: 1

Добрый вечер! Помогите, пожалуйста, найти ошибку в решении задачи. Задача следующая: есть два упорядоченных по возрастанию массива, один длины M, другой длины N. Из этих массивов нужно составить новый упорядоченный по возрастанию массив, длины M + N. (соединить два массива в один, а затем его упорядочить нельзя).
Решать эту задачу нам нужно следующим образом: берём первый элемент из одного из массивов (того массива, в котором содержится максимальный элемент из всех чисел, входящих в первый и во второй массивы) и все числа, которые меньше его или равны ему (если есть) переписываем в новый массив, затем берём второй элемент из первого массива и т.д…
Вот код задачи, мне кажется, что у меня ошибка в цикле с while, но исправит не могу.

if arrayM[M] > arrayN[N] then begin
for i:= 1 to M do begin
while arrayM[i] >= arrayN[j]do begin
newarray[k]:= arrayN[j];
inc(k);
inc(j);
end;
end;
newarray[k]:= arrayM[i];
inc(k);
end;

end else begin
for i:= 1 to N do begin
while arrayN[i] >= arrayM[j] do begin
newarray[k]:= arrayM[j];
inc(j);
inc(k);
end;
newarray[k]:= arrayN[i];
inc(k);
end;
end;

Состояние: Консультация закрыта

Ответ # 228694 от Delph

Здравствуйте, Miracle!

Можно поступить так: просматриваем в цикле for первый массив, вложенным циклом While идёт по второму. Сначала выбираем все непросмотренные ещё элементы второго массива, не превосходящие текущий элемент первого. Потом выбираем текущий элемент из первого массива... и так до конца первого. Поскольку есть вероятность, что во втором массиве ещё что-то осталось, отдельным циклом смотрим весь этот остаток. Программа в приложении.

Приложение:


Консультировал: Delph
Дата отправки: 06.09.2008, 21:46

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15498 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35