![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
garry_m |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
Народ! Пожалуйста помогите решить задачу!
Дана непустая последовательность слов, составленных из цифр и латинских букв, разделенных произвольным числом пробелов. Написать процедуру, которая считывает слово из заданной последовательности и определяет, является ли оно синтаксически корретным идентификатором Паскаля. |
![]() ![]() |
garry_m |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 37 Пол: Мужской Репутация: ![]() ![]() ![]() |
ОК! Значит для этой задачи (из всех слов удалить цифры и символы подчеркивания) начало будет таким...
Код: Код uses crt; var txt:string; mat:array [1..31] of string; isc:string; sch,i,n:integer; begin clrscr; {Naznachenije nachalnih parametrov} for i:=1 to 31 do mat[i]:=''; i:=1;n:=0;mat[31]:='0'; repeat writeln ('Naberite posledovatelnost iz slov,'); writeln('ne previschajuschih 8-m simvolov, i ne bolee 50 slov.'); writeln ('Ili nazhmite Enter dlja vvoda posledovatelnosti po umolchaniju'); writeln ('(Sjesch eche etih mjagkih francuzkih bulok, da vipej chaju.)'); readln(txt); {Proverka na pustotu vvodimogo texta u okonchanije na tochku} if txt='' then txt:='Sjesch eche etih mjagkih francuzkih bulok, da vipej chaju.'; if pos('.',txt)=0 then writeln('Vi zabili postavit tochku.'); until pos('.',txt)<>0; sch:=1; {Udalenije lishnih probelov} repeat if (txt[sch]=' ') and (txt[sch+1]=' ') then begin delete(txt,sch,1);{Udalenije lishnego probela} end else sch:=sch+1; until txt[sch]='.'; sch:=1; {Rasstanovka slov v massiv} repeat {Poisk okonchanija slova} repeat if txt[sch]<>' ' then sch:=sch+1; until (txt[sch]=' ') or (txt[sch]='.'); {Zanesenije najdennogo slova v massiv} mat[i]:=copy(txt,n+1,sch-n-1); i:=i+1;{Nomer slova} n:=sch;{Nachalnoje polozhenije} sch:=sch+1; until (txt[sch]='.') or (i=30); {Vivod posledovatelnosti} writeln('Nabrannaja vami posledovatelnost:'); writeln (txt); {Vivod posledovatelnosti s odinochnimi probelami mezhdu slovami} writeln(''); n:=31; for sch:=2 to i-1 do if length(mat[sch])>10 then isc:=isc+mat[sch]+' '{Iskluchenije slov dlina kotorih bolee 8-mi simvolov} else {Udalenije cifr i simvolov podcherkivanija} * * *** * **** * * * * * * **** *** * **** * * * * * * * *** *** * write('Dlja prodolzhenija nazhmite ENTER...'); readln; end. Как должна выглядеть процедура, которая удаляет цифры и символы подчеркивания? |
![]() ![]() |
![]() |
Текстовая версия | 9.09.2025 7:32 |