Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> INC для строки, Реализация задачи по комбинаторике 
:(
    Опции темы
jonimimoni
Дата 1.9.2015, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 10
Регистрация: 28.9.2007

Репутация: нет
Всего: нет



Добрый день.
Необходимо реализовать функцию INC но для СТРОКИ. 
Например: необходимо получить все возможные комбинации (размещение из n по k, где n=33, k=5 ) из массива ALPHABET='абвгдеёжзийклмнопрстуфхцчшщъыьэюя'  без повторений. n и k могут меняться.
Возможно INC не самый точный аналог, но устранить повторения - дело плёвое.
Код не привожу в силу его несостоятельности.

PM MAIL   Вверх
Poseidon
Дата 1.9.2015, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(jonimimoni @  1.9.2015,  17:48 Найти цитируемый пост)
Необходимо реализовать функцию INC но для СТРОКИ
Что делает Inc для целых - известно. Что должно делать для строк? Следующую букву возвращать?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
jonimimoni
Дата 1.9.2015, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 10
Регистрация: 28.9.2007

Репутация: нет
Всего: нет



Цитата(Poseidon @ 1.9.2015,  17:57)
Следующую букву возвращать?

например есть строка ирнпавю, после, необходимо получить ирнпавя, но следующее увеличение даёт уже увеличение предпоследней буквы ирнпавя и тут начинается цирк, индексы теряются - функция ломается... Я уже не говорю про первый символ в слове.
PM MAIL   Вверх
Poseidon
Дата 1.9.2015, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Код

procedure IncRusStr(var S: string);
var
  ChangeChr: Char;
  Index: Word;
begin
  Index := S.Length-1;

  while (S.Chars[Index] = 'Я') or (S.Chars[Index] = 'я') do
    Dec(Index);

  ChangeChr := S.Chars[Index];
  ChangeChr := Succ(ChangeChr);

  S := Copy(S, 1, Index) + ChangeChr + Copy(S, Index+2, S.Length-Index-1);
end;

Что делать в случае строки 'яяяяя' и т.п. придумай сам. Так же следует отдельно обрабатывать букву 'ё', если она нужна.


Это сообщение отредактировал(а) Poseidon - 1.9.2015, 19:15


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0848 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.