|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.04.2010, 18:43 | #1 |
Пользователь
Регистрация: 29.03.2010
Сообщений: 12
|
Pascal
Дан массив из N целых чисел. Его значения- только нули и единицы. Найти номер элемента, с которого начинается самая длинная последовательность одинаковых чисел.
Вот пробовал кое-что составить, но всё равно не то, что нужно можеть быть есть более правильный алгоритм? program nomer2; var c: array of real; N, k, m, d, l: integer; y: integer; i: byte; r: real; begin write( 'vvedite N='); read(N); setlength(c, n); Randomize; for i := 1 to n - 1 do begin y := Random(2); //здесь заполняю массив 1 и 0 write('c[', i, ']='); c[i] := y; writeln(y); end; c[0] := c[1]; k := 0; l := 1; m := 1; for i := 2 to n - 1 do begin if c[i - 1] = c[i ] then begin begin l := l + 1; // если элементы равны, то работает счетчик m := l; // это нужно для сравнения d := l; r := c[i + 1 - l ]; // вычисляется позиция эл-та с которого начинается последовательность end; end else begin if m >= k then //после выхода из сравнения, смотрим на наибольшую последовательность.Если новая больше то её переписываем вместо старой // k := m; d := k; m := 1; l := 1; writeln([i + 1 - d ] ); r := c[i + 1 - d ]; end; end; writeln(d, ' раз повторяется символ ', r); readln; writeln('l=', l); writeln('k=', k); writeln('с позиции', [i + 1 - d], c[i + 1 - d] ); end. Последний раз редактировалось daniil2010; 18.04.2010 в 20:01. |
18.04.2010, 19:39 | #2 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Дружище))
напиши комментарии в коде) а то не только придумывать- как лучше приходиться ,но ещё и пытаться понять твою идею , а это тоже время))
|
18.04.2010, 20:10 | #3 |
Любопытная Вредина
Участник клуба
Регистрация: 19.06.2009
Сообщений: 1,285
|
Код:
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 19.04.2010 в 04:51. |
18.04.2010, 20:42 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Одиночество, позвольте маленькое замечание...
в решении, к сожалению, присутствует традиционная для подобных алгоритмов ошибка - конечная последовательность не проверяется... попробуйте, например, на: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal | nes@ | Помощь студентам | 5 | 18.06.2010 23:00 |
а free pascal не читает задачи которые написаны на turbo pascal? | demonara | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 25.05.2009 16:28 |
Перевод кода из Pascal в Object Pascal | zemskov77 | Общие вопросы Delphi | 1 | 03.01.2009 09:37 |