Param30. Описать функцию IsIdent($$S$$) целого типа, проверяющую, является ли строка $$S$$ допустимым идентификатором, то есть непустой строкой, которая содержит только латинские буквы, цифры и символ подчеркивания «_» и не начинается с цифры. Если $$S$$ является допустимым идентификатором, то функция возвращает $$0$$. Если $$S$$ является пустой строкой, то возвращается $$-1$$, если $$S$$ начинается с цифры, то возвращается $$-2$$. Если $$S$$ содержит недопустимые символы, то возвращается номер первого недопустимого символа. Проверить с помощью функции IsIdent пять данных строк.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
program Param30; type St=String; var S:St; i:integer; Function IsIdent(S:St):integer; var i,temp:integer; begin temp:=0; if length(s)>0 then if (s[1] in ['a'..'z','_']) then begin for i:=length(S) downto 2 do if not(s[i] in ['0'..'9','a'..'z','_']) then temp:=i; end else temp:=-2 else temp:=-1; IsIdent:=temp; end; begin for i:=1 to 5 do begin Write('S:'); Readln(S); Writeln(IsIdent(S)); end; end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии: