![]() |
|
Модераторы: Poseidon |
![]()
|
|
| ARAV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Здравствуйте!
Не могли бы вы помочь мне сделать перебор без повторений в следующем массиве строк: A = (‘b’ ‘a’ ‘a’ ‘b’ ‘a’) (массив может быть любым) Правило перебора: Например, сравниваем: (1) A[0] и A[0] ‘b’ и ‘b’ – равны, но не запоминаем, так как символ совпал сам с собой A[0] и A[1] ‘b’ и ‘a’ – не равны => не запоминаем A[0] и A[2] ‘b’ и ‘a’ – не равны => не запоминаем A[0] и A[3] ‘b’ и ‘b’ – равны => запоминаем оба символа 'b' (так как совпадение произошло в первый раз) A[0] и A[4] ‘b’ и ‘a’ – не равны => не запоминаем (2) A[1] и A[0] ‘a’ и ‘b’ – не равны => не запоминаем A[1] и A[1] ‘a’ и ‘a’ – равны, но не запоминаем, так как символ совпал сам с собой A[1] и A[2] ‘a’ и ‘a’ – равны => запоминаем оба символа ‘a’ (так как совпадение произошло в первый раз) A[1] и A[3] ‘a’ и ‘b’ – не равны => не запоминаем A[1] и A[4] ‘a’ и ‘a’ – равны, но запоминаем ТОЛЬКО символ ‘a’ (элемент A[4]), так как до этого A[1] уже запоминался. (3) A[2] и A[0] ‘a’ и ‘b’ – не равны => не запоминаем A[2] и A[1] ‘a’ и ‘a’ – равны, но НЕ ЗАПОМИНАЕМ, так как символы A[2] и A[1] уже запоминались. A[2] и A[2] ‘a’ и ‘a’ – равны, но не запоминаем, так как символ совпал сам с собой A[2] и A[3] ‘a’ и ‘b’ – не равны => не запоминаем A[2] и A[4] ‘a’ и ‘a’ – НЕ запоминаем, так как символы A[2] и A[4] уже запоминались. И т.д. Если использовать цикл как в этой процедуре:
то получается: [ 0 ][ 3 ] bb - правильно [ 1 ][ 2 ] aa - правильно [ 1 ][ 4 ] aa – не правильно, надо запомнить только второй символ ‘a’ (A[4]) [ 2 ][ 1 ] aa – не правильно, не надо запоминать ничего [ 2 ][ 4 ] aa - не правильно, не надо запоминать ничего [ 3 ][ 0 ] bb - не правильно, не надо запоминать ничего [ 4 ][ 1 ] aa - не правильно, не надо запоминать ничего [ 4 ][ 2 ] aa - не правильно, не надо запоминать ничего Как избавиться от этих «неправильных» запоминаний? Заранее спасибо всем, кто ответит. Это сообщение отредактировал(а) alexeis1 - 4.11.2006, 20:24 |
|||
|
||||
| apook |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
надо ввести проверку на срвпадение индексов
-------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 7 Всего: 18 |
надо поразмыслить, и внутренний цикл начинать не с нуля...
|
|||
|
||||
| apook |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
C нуля с нуля Суть в том что каждый символ первого массива пропускается через все символы второго столько раз сколько символов в первом массиве на Cи как то лучше выглядит:
Это сообщение отредактировал(а) alexeis1 - 4.11.2006, 20:19 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||
|
|||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 7 Всего: 18 |
apook,
а где у автора речь идет о двух массивах? |
|||
|
||||
| apook |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 794 Регистрация: 12.7.2006 Репутация: 10 Всего: 23 |
И точно тогда как то не понятно зачем его сравнивать с собой
Теперь понял фишку вот код на Cи понравитя можно переделать в Pas
Это сообщение отредактировал(а) alexeis1 - 4.11.2006, 20:30 -------------------- Мои руки из дуба, голова из свинца ну и пусть ... |
||||
|
|||||
| ARAV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.10.2006 Репутация: нет Всего: нет |
Огромное всем спасибо за быстрые и полезные советы!
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |