06.04.2008, 18:32
общий
это ответ
Здравствуйте, Хмелев Андрей Борисович!
Идентификаторы в Турбо Паскале - это имена констант, переменных, меток, типов, объектов, процедур, функций, модулей, программ и полей в записях. Идентификаторы могут иметь произвольную длину, но значащими (уникальными в области определения) являются только первые 63 символа.
Идентификатор всегда начинается буквой, за которой могут следовать буквы и цифры. Напомню, что буквой считается также символ подчеркивания, поэтому идентификатор может начинаться этим символом и даже состоять только из одного или нескольких символов подчеркивания. Пробелы и специальные символы алфавита не могут входить в идентификатор.
Если уж до конца, то идентификаторами не могут быть зарезрвированные слова, их вроде 48 штук. Но как сравнивать строку еще и с ними, я не придумал. Если по условию это необходимо, значит программу нужно доделывать. То, что я написал, в приложении.
Приложение:
uses crt;const mnb=[‘A‘..‘z‘,‘_‘]; {буквы+знак подчеркивания} mnc=[‘0‘..‘9‘]; {цифры}var s:string[63]; {заданная строка} i,k:integer;beginclrscr;write(‘s:‘);readln(s);k:=0;for i:=1 to length(s) do{проверяем выполняются ли все условия, оговоренные в определении идентификатора}if (s[1] in mnb)and((s[i] in mnb) or(s[i] in mnc))then k:=k+1;if k=length(s) then Writeln(‘Stroca-identifikator!‘)else Writeln(‘Stroca- ne identifikator!‘);readlnend.