Здравствуйте.Помогите написать программу которая позволила-бы вводить с клавиатуры n кол-во чисел и извлекать такое кол-во чисел чтобы получилась возрастающая последовательность. Например 1 2 3 5 4 Ответ-цифра 5.
Здравствуйте, max! Я что-то не понял, что конкретно надо вернуть? Максимальное число из последовательности? Длину последовательности? И для какой последовательности - первой или максимально длинной? Твой пример ничего не говорит. В любом случае, принцип такой: 1) Создаешь линейный массив длинной n 2) Запрашиваешь n чисел 3) Сортируешь массив 4) Проходишь по нему в поисках ответа на задание Например, для поиска последовательности максимальной длины можно сделать примерно так: const N = 10; var a,l,lm : integer; ar : array[1..n] of byte; ... for a := 2 to n do begin if ar[a] - ar[a-1] = 1 then inc(l) else if ar[a] <> ar[a-1] then begin lm := (l+lm+abs(l-lm))div 2; l := 1; end; end; lm := (l+lm+abs(l-lm))div 2;
Тогда в lm будет максимальная длина. Ответ отправлен: 03.09.2002, 22:45 Отправитель: Necro Отвечает Dark_Lord
Доброе время суток, max! В начале получаешь число, сколько будет цифр, куда-нибудь(это уже твоё дело) их записоваешь, а потом делаешь то, что в "приложении"!
Приложение: Ответ отправлен: 03.09.2002, 22:21 Отправитель: Dark_Lord Отвечает Sensey
Доброе время суток, max! Ага... Может тебе еще и отчет по лабе оформить? >:-( Это не рассылка халявы, а помощь в самообучении!!! Ладно, алгоритмом помогу... Когда реализуешь, и возникнут конкретные вопросы, эксперты с удовольствием ответят...
Приложение: Ответ отправлен: 04.09.2002, 11:50 Отправитель: Sensey Отвечает Lank
Добрый день, max! Пожалуста Max, если тебе надо исходник рабочей программы то уточни некоторые детали, например какого типа числа они Integer, DongInt, Word, Real или другого, ещё n какое есть его максимальное значение, если оно вообще есть. К тому-же не совсем понятно какой результат тебе надо. То-есть тебе саму последовательность надо? А шаг возростания? А если в предлагаемом наборе несколько возможних последовательностей например в наборе 1 2 3 4 5 6 8 10 есть следующие последовательности : 1 2 3 4 5 6 2 4 6 8 10 1 3 5 2 5 8 2 6 10 какой результат тебя интересует ? И последний вопрос может-ли какое-то из чисел последовательности встречатся более одного раза? Уточни пожалуста. Если-же тебя интересует алгоритм то могу предложить сачала отсортировать последовательность по возростанию, а потом для
каждого елемента искать шаг возрастания к следующиму и щитать длину последовательности с етим шагом, потом ищеш шаг к следуюшиму и так для каждого елемента. Работать будет довольно-таки медленно, но будет работать. С уважением Lank. ЗИ: Смотри пример
Приложение: Ответ отправлен: 04.09.2002, 18:04 Отправитель: Lank
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.