Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с xor разобраться


pumberman ©   (2004-11-14 08:43:00) 

почему a xor b не работает в паскале?
a и b одинаковой длины. это строки. почему?

а вообще надо решить задачу такую:
“Арагорн очень обрадовался лодкам, ибо он все еще не мог решить, по какому берегу вести Отряд. Остальные Хранители тоже приободрились. Впереди их ждали великие опасности, в этом ни один из них не сомневался; ну а все-таки плыть навстречу опасностям гораздо приятней, чем тащиться пешком. Всеобщей радости не разделял лишь Сэм: он был уверен, что речные лодки гораздо опаснее диких кобылиц (которых, как он думал, вообще не бывает).”
Осторожный Сэм даже решил лично выбрать ту лодку, на которой поплывёт он. Сэм долго ходил по берегу, с недоверием изучая хрупкие на вид суда и аккуратно переписывая названия каждой из них. Последняя лодка ему понравилась больше... Он придирчиво её осмотрел, и решил, что если уж суждено плыть, то лучше на этой. Но вышла незадача — вечером Сэм понял, что как раз  название этой лодки на радостях и не записал. Он вернулся на берег — и понял, что лодки уже как-то переставлены — правда, ни одна не исчезла и не появилась. Повторять розыски просто не было сил. “Садовая твоя голова, Сэм”, — ругался он на себя, но надо было что-то делать. Сэм переписал названия всех лодок, надеясь потом найти ту, которой нет в первом списке. Но беда не приходит одна — по дороге назад он умудрился перетасовать листы этих двух списков.          
Необходимо найти в получившемся большом списке выбранную лодку.


SergP   (2004-11-15 00:06:00) [1]


>  [11] dim- ©   (14.11.04 20:40)
> Может я чего не понял, но у него получилось, что все названия
> лодок повторяются дважды, кроме одной (та которую выбрали).
> Можно же пробежать по списку и выбрать ту что одна


поXORить проще и быстрее. В результате то что встречается четное кол-во раз не повлияет на сам результат. Т.е. если имеется только одно название встречающееся нечетное кол-во раз  то мы в конце получим именно его.


dim-   (2004-11-14 20:40:00) [2]

Может я чего не понял, но у него получилось, что все названия лодок повторяются дважды, кроме одной (та которую выбрали). Можно же пробежать по списку и выбрать ту что одна


pumberman   (2004-11-14 13:42:00) [3]

спасибо, товарищь Defunct (хорошо, что не все такие как Ksergey). в общем-то большой список всех лодок не помещается в память, но все-таки кое-что помгло


Defunct   (2004-11-14 12:10:00) [4]

[8]

Гендальф еще забыл указать что если список начинается с нуля, то последний элемент будет с индексом - length - 1

for I:=0 to Length(List)-1 do


Defunct   (2004-11-14 12:08:00) [5]

Гендальф предлагает сл. пример.

Var List : Array of String; { Большой список всех лодок }

// Вначале проксорим все первые буквы
// (ведь названия лодок обязательно включают хотя бы одну букву),
// так мы найдем первую букву искомого названия:

Var Ch : Char;

Ch := #0;
for I:=0 to Length(List) do Ch := Char(Byte(Ch) xor Byte(List[i][1]));

// здесь Ch содержит букву с которой начинается название лодки

// Дальше все зависит от Вас, господин, СЭМ


KSergey   (2004-11-14 10:40:00) [6]

> [6] pumberman   (14.11.04 10:38)
> конечно


Ну продолжай пробовать по-тихому.

> вы издеваетесь чтоли? :)

Да нет, просто развлекаюсь.


pumberman   (2004-11-14 10:38:00) [7]

конечно :))). вы издеваетесь чтоли? :)


KSergey   (2004-11-14 10:33:00) [8]

> [4] pumberman   (14.11.04 10:00)
> вот она ошибка. блин. он даже чары xor не хочет

А ты пробовал?


pumberman   (2004-11-14 10:00:00) [9]

- Что же там написано, Фродо?
- var a,b, lodka : string; lodka := a xor b...
- Этого я и боялся! Паскаль! - Гэндальф в ужасе и с воем бросился прочь...

вот она ошибка. блин. он даже чары xor не хочет


KSergey   (2004-11-14 09:58:00) [10]

> [2] pumberman   (14.11.04 08:59)

Ты задачу решать пробовал? Если да - пиши сюда, будем ошибку искать (если есть). Если не пробовал - тогда тебе в пункт платных услуг.


pumberman   (2004-11-14 08:59:00) [11]

да, так написано. ну напиши решение на си, если хочешь :)


KilkennyCat   (2004-11-14 08:49:00) [12]

- Что же там написано, Фродо?
- var a,b, lodka : string; lodka := a xor b...
- Этого я и боялся! Паскаль! - Гэндальф в ужасе и с воем бросился прочь...


Наверх

Титульная страница Поиск, карта сайта Написать письмо