Строка в паскале, неверные идентификаторы и вывод их номеров - Pascal
Формулировка задачи:
Ввести строку символов, в которой задана последовательность идентификаторов (синтаксис pascal), отделенных друг от друга пробелами. Вывести номера неверных идентификаторов.
у мну получается вывести номера некоректных символов в строке:
помогите плиз чтобы выводила прога не номера некоректных символов, а номера идентификаторов в которых они расположены.
Program xxx; uses crt; Const possible : set of char=['0'..'9', 'a'..'z', 'A'..'Z', '_', ' ']; numbers : set of char=['0'..'9']; var str: string; i: byte; Begin ClrScr; writeln ('BBeguTe cTpoKy'); readln (str); for i:=1 to length(str) do begin if not (str[i] in possible) then writeln ('not correctly element ',i); if (i=1) and (str[i] in numbers) then writeln ('not correctly element ', i); if (str[i] in numbers) and (str[i-1]=' ') then writeln ('not correctly element ', i); end; readln; End.
Добавлено через 1 час 6 минут 0 секунд
P.S. идентификатор = имя . может состоять из букв латинского алфавита, цифр и знака подчеркивания. Не может начинаться с цифры, и не может включать другие символы.
Добавлено через 35 секунд
=( Решение задачи: «Строка в паскале, неверные идентификаторы и вывод их номеров»
textual
Листинг программы
program kkk; uses crt; const possible:set of char=['0'..'9','a'..'z','A'..'Z','_']; var count,i,j:integer; f:boolean; st,buf:string; slova:array[1..100]of string; begin clrscr; readln(st); count:=1; repeat if (st[1]=' ') or (length(st)=0) then while st[1]=' ' do delete(st,1,1) else begin while (st[1]<>' ') and (length(st)>0) do begin buf:=buf+st[1]; delete(st,1,1); end; slova[count]:=buf; buf:=''; inc(count); end; until (length(st)=0) and (length(buf)=0); for i:=1 to count-1 do begin f:=true; if (slova[i][1]>='0') and (slova[i][1]<='9') then f:=false else begin for j:=1 to length(slova[i]) do if not(slova[i][j] in possible) then begin f:=false; break; end; end; if not f then write(i,' '); end; readln; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д