Delphi-Quellcode:
....
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
vokal, KonstNum: Integer;
Satz: String;
begin
vokal := 0;
KonstNum := 0;
// Groß-/Kleinschreibung ignorieren
Satz := AnsiLowerCase(EdtSatz.Text);
vokal :=0;
KonstNum :=0;
for i:=1 to length(satz) do
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
inc(vokal)
else
inc(KonstNum);
LblVokNum.Caption := IntToStr(vokal);
LblKonstNum.Caption := IntToStr(KonstNum);
end;
....
durchlaufen wir mal den Satz: " Hallo du! " mit dem code:
dann erkennt er 3 x Vokal: a o u
aber er erkennt 6x Konsonat: H L L Leerzeichen D !
der fehler ist Hier:
Delphi-Quellcode:
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
inc(vokal)
else
inc(KonstNum);
jedes Zeichen was kein Vokal ist, ist ein Konsonant.
das müsste so aussehen:
Delphi-Quellcode:
if (satz[i] in ['a', 'e', 'i', 'u', 'o']) then
inc(vokal)
else
if satz[i] in ['a'..'z'] then
inc(KonstNum);