burany
27-03-2009, 12:31
Здравствуйте, форум
Задача: вызвать в Pascal входной файл simv.txt таблицы строк одинаковой длины, "закольцевать" строки и оставить единичных представителей колец чисел, они же строки постоянных длин.
Объясняю: Если нанизать на кольцо нумерованные шары (ожерелье), невозможно будет
сказать, какой из них первый. Разве что договориться. В производимой программой
вывода последовательностей постоянной длины строк массе текста среди прочих строк будут попадаться, к примеру, такие:
...
1 3 1 1 5 5 1
...
3 1 1 5 5 1 1
...
1 1 5 5 1 1 3
...
1 5 5 1 1 3 1
...
5 5 1 1 3 1 1
...
5 1 1 3 1 1 5
...
1 1 3 1 1 5 5
...
Но ведь это кольцо. А у кольца начала нет, и... Задача: где найти
программу с опцией: напечатать одного представителя кольца, а всех
остальных удалить. В первой строке самый первый символ
переставляется в конец строки, вся строка сдвигается влево и
сравнивается со всеми строками всей таблицы. При выявлении в
толще таблицы двойника, найденный второй дубликат убивается.
Программа возвращается к первой строке, теперь уже второй
символ переносится в конец строки, сдвиг и все по новой. И так по
очереди с третьим, четвертым и т. д. символами. Повторить столько
раз сколько имеется столбцов минус единица. Можно начать и с конца
строки. Сама таблица тоже сократится во столько раз, сколько имеется
столбцов. И будет программа вывода последовательностей с
представлением единичных представителей колец чисел. Так приблизительно
представляется. Здесь непонятно, как перейти к следующей строке? А строк тысячи. Не могли бы Вы расписать шаги для обработки нижеследующего поимера:
1 1 1 1 1 1 1 1 3
1 1 1 1 1 1 1 2 2
1 1 1 1 1 1 1 3 1
1 1 1 1 1 1 2 1 2
1 1 1 1 1 1 2 2 1
1 1 1 1 1 1 3 1 1
1 1 1 1 1 2 1 1 2
1 1 1 1 1 2 1 2 1
1 1 1 1 1 2 2 1 1
1 1 1 1 1 3 1 1 1
1 1 1 1 2 1 1 1 2
1 1 1 1 2 1 1 2 1
1 1 1 1 2 1 2 1 1
1 1 1 1 2 2 1 1 1
1 1 1 1 3 1 1 1 1
1 1 1 2 1 1 1 1 2
1 1 1 2 1 1 1 2 1
1 1 1 2 1 1 2 1 1
1 1 1 2 1 2 1 1 1
1 1 1 2 2 1 1 1 1
1 1 1 3 1 1 1 1 1
1 1 2 1 1 1 1 1 2
1 1 2 1 1 1 1 2 1
1 1 2 1 1 1 2 1 1
1 1 2 1 1 2 1 1 1
1 1 2 1 2 1 1 1 1
1 1 2 2 1 1 1 1 1
1 1 3 1 1 1 1 1 1
1 2 1 1 1 1 1 1 2
1 2 1 1 1 1 1 2 1
1 2 1 1 1 1 2 1 1
1 2 1 1 1 2 1 1 1
1 2 1 1 2 1 1 1 1
1 2 1 2 1 1 1 1 1
1 2 2 1 1 1 1 1 1
1 3 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 2
2 1 1 1 1 1 1 2 1
2 1 1 1 1 1 2 1 1
2 1 1 1 1 2 1 1 1
2 1 1 1 2 1 1 1 1
2 1 1 2 1 1 1 1 1
2 1 2 1 1 1 1 1 1
2 2 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1
?
Спасибо
Задача: вызвать в Pascal входной файл simv.txt таблицы строк одинаковой длины, "закольцевать" строки и оставить единичных представителей колец чисел, они же строки постоянных длин.
Объясняю: Если нанизать на кольцо нумерованные шары (ожерелье), невозможно будет
сказать, какой из них первый. Разве что договориться. В производимой программой
вывода последовательностей постоянной длины строк массе текста среди прочих строк будут попадаться, к примеру, такие:
...
1 3 1 1 5 5 1
...
3 1 1 5 5 1 1
...
1 1 5 5 1 1 3
...
1 5 5 1 1 3 1
...
5 5 1 1 3 1 1
...
5 1 1 3 1 1 5
...
1 1 3 1 1 5 5
...
Но ведь это кольцо. А у кольца начала нет, и... Задача: где найти
программу с опцией: напечатать одного представителя кольца, а всех
остальных удалить. В первой строке самый первый символ
переставляется в конец строки, вся строка сдвигается влево и
сравнивается со всеми строками всей таблицы. При выявлении в
толще таблицы двойника, найденный второй дубликат убивается.
Программа возвращается к первой строке, теперь уже второй
символ переносится в конец строки, сдвиг и все по новой. И так по
очереди с третьим, четвертым и т. д. символами. Повторить столько
раз сколько имеется столбцов минус единица. Можно начать и с конца
строки. Сама таблица тоже сократится во столько раз, сколько имеется
столбцов. И будет программа вывода последовательностей с
представлением единичных представителей колец чисел. Так приблизительно
представляется. Здесь непонятно, как перейти к следующей строке? А строк тысячи. Не могли бы Вы расписать шаги для обработки нижеследующего поимера:
1 1 1 1 1 1 1 1 3
1 1 1 1 1 1 1 2 2
1 1 1 1 1 1 1 3 1
1 1 1 1 1 1 2 1 2
1 1 1 1 1 1 2 2 1
1 1 1 1 1 1 3 1 1
1 1 1 1 1 2 1 1 2
1 1 1 1 1 2 1 2 1
1 1 1 1 1 2 2 1 1
1 1 1 1 1 3 1 1 1
1 1 1 1 2 1 1 1 2
1 1 1 1 2 1 1 2 1
1 1 1 1 2 1 2 1 1
1 1 1 1 2 2 1 1 1
1 1 1 1 3 1 1 1 1
1 1 1 2 1 1 1 1 2
1 1 1 2 1 1 1 2 1
1 1 1 2 1 1 2 1 1
1 1 1 2 1 2 1 1 1
1 1 1 2 2 1 1 1 1
1 1 1 3 1 1 1 1 1
1 1 2 1 1 1 1 1 2
1 1 2 1 1 1 1 2 1
1 1 2 1 1 1 2 1 1
1 1 2 1 1 2 1 1 1
1 1 2 1 2 1 1 1 1
1 1 2 2 1 1 1 1 1
1 1 3 1 1 1 1 1 1
1 2 1 1 1 1 1 1 2
1 2 1 1 1 1 1 2 1
1 2 1 1 1 1 2 1 1
1 2 1 1 1 2 1 1 1
1 2 1 1 2 1 1 1 1
1 2 1 2 1 1 1 1 1
1 2 2 1 1 1 1 1 1
1 3 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 2
2 1 1 1 1 1 1 2 1
2 1 1 1 1 1 2 1 1
2 1 1 1 1 2 1 1 1
2 1 1 1 2 1 1 1 1
2 1 1 2 1 1 1 1 1
2 1 2 1 1 1 1 1 1
2 2 1 1 1 1 1 1 1
3 1 1 1 1 1 1 1 1
?
Спасибо