Консультация № 130815
06.04.2008, 15:24
0.00 руб.
0 3 1
Уважаемые эксперты !!! Помогите !!!мне в турбо Паскале надо написать программу по сортировке и поиску: выяснить является ли произвольная сивольная строка идентификатором ( мне сказали что прогамму писать надо использую какой-то String) .
Заранее спасибо!

Приложение:
Если возможно , хотя бы примерно напишите текст программы ( я в этой теме полный дуб)

Обсуждение

давно
Профессор
401888
1232
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.
давно
Старший Модератор
31795
6196
07.04.2008, 11:20
общий
<b>Пупорев Юрий Борисович</b>При таком определении множества в него попадают ещё и "[", "", "]", "^" и " ‘ ".
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Профессор
401888
1232
07.04.2008, 11:30
общий
Прошу прощения за ляп. Если автор вопроса еще заглянет сюда, то нужно вместо строки const mnb=[‘A‘..‘z‘,‘_‘]; написать const mnb=[‘A‘..‘Z‘,‘a‘..‘z‘,‘_‘];
Форма ответа