Einzelnen Beitrag anzeigen

Benutzerbild von Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

CaseCorrection d. Permutataion / BruteForce d. 2. Dimension

  Alt 29. Jun 2007, 18:07
Hallöchen ich bins wieder

Ich versuche alle Möglichkeiten von %s zu finden. Aber nich wie gewöhlich a..z sondern a..A

Mein ungefährer Ansatz:
Ich nehme an der "Mod" Operator "verrechnet" im wahrsten Sinne de Worts die 2. Spalte aus der Beispiel Matix.
Oder wie seht Ihr das?

Delphi-Quellcode:
program Demo;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function CaseCorrection(var AStr: String; ACharToCase: Integer): String;
var
  S: String;
  X: Integer;
begin
  if ACharToCase > Length(AStr) then
    ACharToCase := ACharToCase mod Length(Astr);

  S := AStr[ACharToCase];
  if S = LowerCase(S) then
    S := UpperCase(S)
    else
    S := LowerCase(S);

  Insert(S, AStr, ACharToCase);
  Delete(AStr, ACharToCase+1, 1);
  Result := Trim(AStr);
end;

const
  StrToCorrection = 'ABC';
  // aBC, abC, abc
  // AbC, Abc, aBc
  // AbC, ABc, ABC
var
  S: String;
  I, iCount: Integer;
begin
  S := StrToCorrection;
  iCount := Length(StrToCorrection) * Length(StrToCorrection);

  for I := 1 to iCount do
    writeln( CaseCorrection(S, I) );

  readln;
end.
Harry
Gruß Harry
www.H-Soft.info
  Mit Zitat antworten Zitat