IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Массивы
povar
сообщение 29.12.2004 11:33
Сообщение #1


Гость






:low: Помогите пожалуйста решить задачу! вроде уже сделал все но что-то не получается: Задан одномерный массив целых чисел.
Найти наиболее длинную цепочку, состоящую из одинаковых элементов, указать индекс первого и последнего элемента цепочки. Удалить эту цепочку элементов.Вывести исходный и результирующий массив.Упорядочить оставшиеся элементы массива по невозрастанию.
Желательно без процедур и функций....
Заранее благодарен! :flowers: )))))
 К началу страницы 
+ Ответить 
volvo
сообщение 29.12.2004 11:56
Сообщение #2


Гость






povar
Цитата
вроде уже сделал все

Так показал бы, что уже сделал... Дополнить-то легче, чем с нуля писАть ;)
 К началу страницы 
+ Ответить 
povar
сообщение 29.12.2004 12:00
Сообщение #3


Гость






я сделал только заполнение масива и его вывод.. щас парюсь над тем чтобы определить цепочку эту)))) ;)
 К началу страницы 
+ Ответить 
volvo
сообщение 29.12.2004 12:22
Сообщение #4


Гость






Вообще-то максимальная по длине цепочка одинаковых чисел ищется вот так:
Код

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 - ее длина (если есть больше одной цепочки одинаковой длины - будет найдена первая из них...)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 21:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"