Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
povar
:low: Помогите пожалуйста решить задачу! вроде уже сделал все но что-то не получается: Задан одномерный массив целых чисел.
Найти наиболее длинную цепочку, состоящую из одинаковых элементов, указать индекс первого и последнего элемента цепочки. Удалить эту цепочку элементов.Вывести исходный и результирующий массив.Упорядочить оставшиеся элементы массива по невозрастанию.
Желательно без процедур и функций....
Заранее благодарен! :flowers: )))))
volvo
povar
Цитата
вроде уже сделал все

Так показал бы, что уже сделал... Дополнить-то легче, чем с нуля писАть ;)
povar
я сделал только заполнение масива и его вывод.. щас парюсь над тем чтобы определить цепочку эту)))) ;)
volvo
Вообще-то максимальная по длине цепочка одинаковых чисел ищется вот так:
Код

const
 n = 10;
 a: array[1 .. n] of integer =
    (1, 2, 2, 3, 4, 5, 6, 6, 6, 6);
var
 i, start_pos, elem, count, max: integer;
begin
 max := 0; i := 1;
 while i <= n do
   begin
     count := 0; elem := a[i];
     while a[i] = elem do
       begin
         inc(count); inc(i)
       end;

     if max < count then
       begin
         start_pos := i - count;
         max := count
       end;
   end;
end.


В результате в переменной start_pos содержится индекс начала цепочки, а в переменной max - ее длина (если есть больше одной цепочки одинаковой длины - будет найдена первая из них...)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.