посмотрел по поиску...вроде такой задачи нету..если я плохо смотрел то сорри (
По правилам пунктуации пробел может стоять после, а не перед каждым из сле-дующих знаков: . , ; : ! ? ) ] } +; перед, а не после знаков: ( [ {. Заданный текст проверить на соблюдение этих правил и при необходимости исправить. Вместо пробела может быть пере-вод строки или знак табуляции.
Дож
21.05.2005 15:23
Как ты хочешь хранить текст? В виде массива(если да, то пользуйся типом STRING).
volvo
21.05.2005 15:26
Дож, и что, это приближает как-то к решению? Не надо постить просто так; ясно, что при работе со строками (или текстом) будет использоваться тип String. А вот что со строкой делать, написАть сможешь? Как определить нарушение правописания и исправить его?
Ex1Le
21.05.2005 15:41
ребята помогите пожалуйста.... чтобы получить автомат ( а на экзамене я явно задачи не решу) мне надо решить эту и еще парочку.... с парочкой думаю разберусь а вот с этой...даже представления не имею как решать...
volvo
21.05.2005 15:45
Ах, это тебе для автомата... Ну тогда, мил человек, приводи код, который сделал, и задавай по нему конкретные вопросы. ЗА ТЕБЯ (да еще и для получения экзамена автоматом), тебе это никто делать не будет. :no:
Ex1Le
21.05.2005 15:47
в этом то вся проблема...я не знаю как делать проверку и исправлять это...
Дож
21.05.2005 16:29
Цитата
ЗА ТЕБЯ (да еще и для получения экзамена автоматом), тебе это никто делать не будет.
Почему? я могу сделать...
volvo
21.05.2005 16:42
Дож, только (если будешь делать) не выкладывай исходник сразу. Начни с алгоритма, натолкни на мысль, и дай человеку подумать. Все же речь идет об экзамене автоматом.
Дож
21.05.2005 16:46
:yes: естественно
Ex1Le
21.05.2005 17:20
жду мыслю
volvo
21.05.2005 17:26
Ну, вот тебе первая подсказка: решение "в лоб" - в строке явно проверяешь при помощи Pos наличие ЗАПРЕЩЕННОЙ комбинации, и если она есть - удаляешь ее (Delete) и вставляешь (Insert) соответствующую ей разрешенную...
Для упрощения работы можно создать массив разрешенных и запрещенных комбинаций символов.
Ex1Le
25.05.2005 2:19
нифига не получается.... приведи пример как функцией Pos пользоваться когда перед и когда после....
volvo
25.05.2005 2:36
Все просто:
const
n = 2;
zapret: array[1 .. n] ofrecord
_from: string[2]; { Это - запрещенная комбинация }
_to: string[2]; { Это - соответствующая ей разрешенная }end =
((_from:' .'; _to:'. '),
(_from:' ,'; _to:', '));
var
s: string;
i, p: byte;
begin
s := 'begin .end ,none.';
writeln('before: ', s);
for i := 1to n dobegin
p := pos(zapret[i]._from, s);
if p > 0thenbegin
delete(s, p, 2); insert(zapret[i]._to, s, p);
end;
end;
writeln('after: ', s)
end.
это - почти полная программа... Что надо изменить? Сделать проход по строке не 1 раз для каждой запрещенной комбинации, а ПОКА она встречается в строке. И только потом переходить к следующей запрещенной комбинации.
Ex1Le
25.05.2005 3:06
s := 'begin .end ,none.'; поясни пожалуйста эту строчку....
volvo
25.05.2005 3:14
Это - строка, В КОТОРОЙ ты проверяешь синтаксис... Хочешь - напиши
s := 'privet ,privet .privet';
Это тебе больше нравится? И в следующий раз сначала ЗАПУСТИ программу, а потом (если это то, что нужно) спрашивай. А в том, что ты НЕ запускал, я уверен - если бы программа отработала, ты бы увидел результаты ее работы и вопрос отпал бы сам собой.
Ex1Le
25.05.2005 4:45
запускать то запускал...наверно уже все... это приговор....все спасибо...все доделал....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.