Получать слова нужной длины при перестановке букв в указанном словеDelphi , Синтаксис , Текст и СтрокиПолучать слова нужной длины при перестановке букв в указанном слове
Оформил: DeeCo { Definition: Permutation A permutation is an arrangement of n objects, arranged in groups of size r without repetition where order is important. P(n,r) = n! / (n-r)! Example: Find all two-letter permutations of the letters "ABC" n = ABC r = 2 Output: AB AC BA BC CA CB } { Definition: Permutation Eine Permutation ist eine Anordnung von n Objekten ohne Wiederholung. Dabei spielt die Reihenfolge der Elemente in den Mengen keine Rolle. P(n,r) = n! / (n-r)! Beispiel: Finde alle 2-Buchstaben Kombinationen von "ABC" n = ABC r = 2 Ergebnis: AB AC BA BC CA CB } { The following is a console Program: Choose File, New, Console Application } program Permute; {$APPTYPE CONSOLE} uses SysUtils; var R, Slen: Integer; procedure P(var A: string; B: string); var J: Word; C, D: string; begin { P(N,N) >> R=Slen } if Length(B) = SLen - R then begin Write(' {' + A + '} '); {Per++} end else for J := 1 to Length(B) do begin C := B; D := A + C[J]; Delete(C, J, 1); P(D, C); end; end; var Q, S, S2: string; begin S := ' '; S2 := ' '; while (S <> '') and (S2 <> '') do begin Writeln(''); Writeln(''); Write('P(N,R) N=? : '); ReadLn(S); SLen := Length(S); Write('P(N,R) R=? : '); ReadLn(S2); if s2 <> '' then R := StrToInt(S2); Writeln(''); Q := ''; P(Q, S); end; end. Перевод контента на русский язык: Это консольная программа Delphi, которая генерирует все перестановки заданного строки с указанной длиной. Вот разбивка кода: Процедура
Основной программный код
Имущества
1. Программа может быть сделана более пользовательской friendly, добавив обработку ошибок для недопустимого ввода.
2. Вместо использования жесткого формата вывода ( Альтернативное решение Вот пример реализации алгоритма генерации перестановок в Delphi с использованием рекурсивной функции:
В этом коде используется рекурсивная функция Описывается программное решение для перестановки букв в указанном слове, чтобы получить слова необходимой длины. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |