Einfach an die Aufgabenstellung halten, offensichtlich soll der Umgang mit dyn. Array geübt werden:
Zitat:
Schreib ein Programm welches ein eingegebenes Wort buchstabenweise in ein dyn. Array einliest.
Delphi-Quellcode:
type
TCharDynArray = array of Char;
function StringToDynArray(const AValue: string): TCharDynArray;
begin
// Strings beginnen bei Index 1, Arrays bei 0 => wichtiges Lernziel
SetLength(Result, Length(AValue));
for i := 0 to Length(Result) - 1 do
Result[i] := AValue[i + 1];
end;
Zitat:
Nach Eingabe eines Buchstabens soll ausgegeben werden wie oft dieser Buchstabe im eingegebenen Wort vorkommt.
Delphi-Quellcode:
// Array-Parameter immer als "const" oder "var" übergeben, sonst wird beim Funktionsaufruf eine Kopie angelegt
function GetBuchstabenAnzahl(const ACharDynArray: TCharDynArray; AValue: Char): Integer;
begin
Result := 0;
for i := 0 to Length(ACharDynArray) - 1 do
begin
if ACharDynArray[i] = AValue then
Result := Result + 1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: TCharDynArray;
s: string;
n: Integer;
begin
// Text der durchsucht werden soll
s := edit1.text;
if Length(s) = 0 then
begin
MessageBox('Geben Sie einen Text an der durchsucht werden soll!', Caption);
Exit;
end;
a := StringToDynArray(s);
// Buchstabe der gesucht wird
s := edit2.text;
if Length(s) = 0 then
begin
MessageBox('Geben Sie einen Buchstaben an der gesucht werden soll!', Caption);
Exit;
end;
if Length(s) > 1 then
begin
MessageBox('Geben Sie nur einen Buchstaben an der gesucht werden soll!', Caption);
edit2.text := '';
Exit;
end;
n := GetBuchstabenAnzahl(a, s[1]);
s := Format('Der Buchstabe %s ist %d mal enthalten.', [s, n]);
MessageBox(s, Caption);
end;