@jfheins
Die Lösung ist ja interessant, unabhängig davon, das immer 1 als Ergebnis gezeigt wird.
Insbesondere hier ein Beispiel für die Verwendung von Include.
Hier der Code (von jfheins) lauffähig mit den/dem Fehler/n:
Delphi-Quellcode:
program test3;
{$APPTYPE CONSOLE}
uses SysUtils;
// Dies ist unser ErgebnisTyp:
type TCharTyp = (Ziffer, Zeichen, Andere);
type TStringTyp = set of TCharTyp;
function CheckStr(Str:string):TStringTyp;
var
i:Integer;
begin
// "Fehlerbehandlung"
if Str = '' then
begin
Result := [];
exit;
end;
for i:=1 to Length(Str) do
begin
if str[i] in ['0'..'9'] then
Include(Result, Ziffer)
else if str[i] in ['a'..'z','A'..'Z'] then
Include(Result, Zeichen)
else
Include(Result, Andere);
if Result = [Ziffer, Zeichen, Andere] then
break;
end;
end;
begin
//Zum Testen:
Writeln(Ord(checkstr('') = []));readln;
Writeln(Ord(Ziffer in checkstr('190')));readln;
writeln(Ord(Zeichen in checkstr('az')));readln;
Writeln(Ord([Zeichen, Ziffer] = checkstr('az10')));readln;
Writeln(Ord([Zeichen, Ziffer] <= checkstr('az10 !?.,;:-_<>')));readln;
end.
@R2009 + @Neutral General:
EXIT ist wohl die bessere Wahl. (Bin aus der Übung)
Styleguide lesen? Ok. Aber dies sei erlaubt:
Niemand wird gezungen einen Kommantar abzugeben oder sich meines kurzen Codes anzunehmen.
Seid so nett, bleibt beim Thema. Danke!