Задача : Дана последовательность чисел. Построить последовательность номеров позиций, откуда начинаются подряд идущие значения, расположенные в порядке убывания.
Помогите пожалуйста, я не совсем понимаю что и как надо сделать в этой задаче! Объясните пожалуйста как решить эту задачу.
Можно... У меня в каждый момент времени сравниваются только 2 жлемента: текущий и предыдущий, поэтому:
const n = 15;
function find_ascend(var max: integer): integer;
var curr, start: integer; prevArr, nextArr: integer;
function check_max(i: integer): integer; begin if max < curr then begin max := curr; check_max := i - curr + byte(i = pred(n)) end else check_max := start end;
var i: integer;
begin write('--> '); readln(prevArr);
max := 0; curr := 1; start := 1;
for i := 1 to pred(n) do begin write('--> '); readln(nextArr); if prevArr < nextArr then inc(curr) else begin start := check_max(i); curr := 1 end;
Наверно я неправильно выразился или просто не понел!
Вот мне в визуальной програме дана последовательность которая вводится в ListBox и надо построить новую последовательность номеров позиций, откуда начинаются подряд идущие значения, расположенные в порядке убывания и вывести в другой ListBox .
На сколько я понимаю это решение должно быть гораздо проще предложеного. На сколько я правильно всё понимаю??!
Что должно быть в ListBox2? 3,4,5,6? С какой стати? Есть же еще одна последовательность, получается, что ЭТА - не является убывающей... 7,8,9? А почему именно ЭТА? Есть же более длинная?
Ты ПОЛНОСТЬЮ условие поставь... Что ИМЕННО ты хочешь находить? Максимальную? Завершающую? Первую? Телепатов у нас нет...
procedure TForm1.Button2Click(Sender: TObject); var i:integer; begin i:=0; Listbox2.Items.Clear; Repeat if StrToInt(Listbox1.Items[i])>StrToInt(Listbox1.Items[i+1]) then begin Listbox2.Items.Add(IntToStr(i)); While StrToInt(Listbox1.Items[i])>StrToInt(Listbox1.Items[i+1]) do inc(i) end; inc(i); Until i=Listbox1.Items.Count-1;
end;
end.
Вот написал , ответ выдает но при этом и выдает какуюто ошибку! Проверте пожалуйста в чем могут быть проблемы!