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

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

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

> Повторение Элемента, Задачка, помогите решить
Shtraf
сообщение 8.04.2012 23:54
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Gaur

Репутация: -  1  +


Найти максимальное кол-во и значение расположенных рядом одинаковых элементов массива.
Массив <= 10


Не могу дойти до алгоритма, по которому считать кол-во элементов выполняющих условие, так чтобы, если есть ряд длинней предыдущего, он считался заново и сохранить повторяющееся значение.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Shtraf
сообщение 9.04.2012 20:04
Сообщение #2





Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Gaur

Репутация: -  1  +


Сделал. Идёт не просчёт 1 элемента
тоесть, если все элементы одинаковые то она даёт на 1 меньше. Сейчас проверю (я поменял вод данных (вод вручную не больше 10)). Это ведь не должно влиять на результат?

Добавлено через 12 мин.
НУ вот она:



program LongestNear;
const
m=10;
var
a: array[1..m] of integer;
i,s,x,l,N: integer;
begin
writeln('nahozhdenie samoj dlinoj cepochki povtorenij');
{Wwod masiva}
repeat
write('Zadajte chislo elementov v massive (1..',
m,') ');
readln(N);
if (N <= 0) or (N > m) then
writeln('vi oshiblis! Povtorite!');
until (N > 0) and (N <= m);
for i := 1 to N do
begin
write('Zadajte element N',i,' ');
readln(a[i])
end;
{nahozhdenie rezultata}
s:= l;
x:= s;
l:= l;
for i:= 2 to N+1 do
if (i=N+1) or (a[i]<>a[s]) then
begin
if i-s>l then
begin
x:= s;
l:= i-s
end;
s:= i;
end;
writeln('bolshee kol-vo elementov r9dom ',l,'element',a[x]);
end.



Добавлено через 6 мин.
Пример: если N=5
a[1]=a[2]=a[3]=a[4]=a[5]=4
цепочка = 4 значение 4


Сообщение отредактировано: Shtraf - 9.04.2012 20:18
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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