![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Geophysist |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
В общем смысл задачи такой. Имеется текст из русских, английских букв, чисел, знаков препинания и пробелов. Русские слова это любые последовательности только из русских букв,английские аналогично. Все русские слова необходимо переместить в один текстовый файл, английские в другой. Числа, знаки препинания и пробелы переносить не надо.
Вот пример как должна работать прога: Текст 1. Стекло в 1345 year ьвап' мебель rhtr 53463'' ' hjnроим4пhff4hg65 Текст 2(русский) Стекловьвапмебель Текст 2(English) yearrhtr Если кому не влом, помогите плиз! |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Разбиваешь строку на слова и проверяешь, состоит ли слово только из символов кириллицы (тогда его в один файл), или только из латиницы (значит, в другой файл)... Если есть что-то еще - то не записывать никуда...
|
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
не совсем понятно:
ьвап' состоит не только из русских букв, однако мы ту часть, которая есть русские буквы, переносим а из hjnроим4пhff4hg65 мы проимп не выделяем. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
andriano |
![]()
Сообщение
#4
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Действительно.
Даже если ввести уточнение: не "русские буквы", а "символы, используемые в русском языке", все равно в ответе фгурировать должно "Стекловьвап'мебель", а не "Стекловьвапмебель". |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
А если ввести уточнение, что слова разделяются НЕ только пробелами, а еще и другими разделителями (причем разделителей может быть больше одного)? Кто сказал, что ' не может быть разделителем?
|
andriano |
![]()
Сообщение
#6
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Вопрос в другом - кто сказал, что может?
По условию вообще нет такого понятия как разделитель. Следовательно, словом следует считать ЛЮБУЮ последовательность русских букв, встреченных в тексте. В том числе и из одного символа. Откуда следует уточненный алгоритм: все русские буквы помещаем в один файл, английские - в другой, а все остальное - игнорируем. Кто вообще придумал выделять из текста слова? Если в выходные файлы их предполагается помещать без разделителей, то это совершенно излишне. |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Кто вообще придумал выделять из текста слова? Собственно, я придумал. А что, у тебя с этим какие-то проблемы? Ты здесь вообще каким боком решаешь, что автору подойдет, а что - нет? Или ты - его личный адвокат и представитель?Твои ОБЩИЕ слова в КАЖДОЙ теме порядком поднадоели, знаешь? Я тоже могу ВЕЗДЕ писать "Что сделал сам?" и говорить, что то что предлагают другие - НЕ НУЖНО, не предлагая ничего взамен... И придираться к словам я тоже умею, теперь у тебя будет шанс в этом убедиться ![]() P.S. Цитата Откуда следует уточненный алгоритм: все русские буквы помещаем в один файл, английские - в другой, а все остальное - игнорируем. Угу... Как же... Цитата(Автор) Текст 1. ВСЕ русские буквы присутствуют в Текст 2, правда... Ах, ну да... andriano же так удобнее, естественно надо сделать, как ОН сказал, а не как просит автор...Стекло в 1345 year ьвап' мебель rhtr 53463'' ' hjnроим4пhff4hg65 Текст 2(русский) Стекловьвапмебель Сообщение отредактировано: volvo - |
andriano |
![]()
Сообщение
#8
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
Собственно, я придумал. А что, у тебя с этим какие-то проблемы? Ты здесь вообще каким боком решаешь, что автору подойдет, а что - нет? Или ты - его личный адвокат и представитель? Цитата Твои ОБЩИЕ слова в КАЖДОЙ теме порядком поднадоели, знаешь? Я тоже могу ВЕЗДЕ писать "Что сделал сам?" и говорить, что то что предлагают другие - НЕ НУЖНО, не предлагая ничего взамен... И придираться к словам я тоже умею, теперь у тебя будет шанс в этом убедиться ![]() Цитата P.S. Угу... Как же... Нехорошо в одном и том же сообщении противоречить самому себе. Цитата ВСЕ русские буквы присутствуют в Текст 2, правда... Ах, ну да... andriano же так удобнее, естественно надо сделать, как ОН сказал, а не как просит автор... Сообщение отредактировано: andriano - |
Geophysist |
![]()
Сообщение
#9
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, извините, ьвап' не переносится никуда. А разделитель есть - пробел.
|
Айра |
![]()
Сообщение
#10
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Можно сделать так:
var s,s1: string;
f1,f2: text;
i,j: integer;
R,E: set of char;
ru,en,dr: boolean;
begin
R:=['А'..'я'];
E:=['A'..'z'];
writeln('введите строку');
readln(s);
assign(f1, 'rus.txt');
rewrite(f1);
assign(f2, 'eng.txt');
rewrite(f2);
while length(s)<>0 do
begin
s1:='';
dr:=false; // наличие других символов
ru:=false; // наличие русских символов
en:=false; // наличие латинских символов
i:=Pos(' ',s);
if i>0 then s1:=Copy(s,1,i-1)
else s1:=s;
for j:=1 to length(s1) do
begin
if s1[j] in R then ru:=true
else if s1[j] in E then en:=true
else dr:=true;
end;
if dr=false then
begin
if ru and (not en) then write(f1, s1);
if (not ru) and en then write(f2, s1);
end;
if i>0 then delete(s,1,i)
else delete(s,1,length(s));
end;
close(f1);
close(f2);
end.
Сообщение отредактировано: Айра - |
Lapp |
![]()
Сообщение
#11
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Можно сделать так: while (s[i]<>' ') and (i<=length(s)) do
begin
s1:=s1+s[i];
inc(i);
end;
- заменил бы на такую: i:=Pos(' ',s);
if i>0 then s1:=Copy(s,1,i-1) else s1:=s;
А выражение типа: if s1[j] in R then ru:=true
- на вот такое: ru:= ru or (s1 in R);
- хотя последнее спорно.. Но я бы делал проверку иначе, думаю.. ![]() И еще замечание: русские буквы не во всех кодировках представляют связное множество.. Сообщение отредактировано: Lapp - -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Цитата русские буквы не во всех кодировках представляют связное множество С латинскими, заданными в такой форме, тоже возможны баги, кстати (между прописными и строчными буквами есть еще "посторонние" 6 символов):s := 'start finish begin` 98989898 end';
и begin` тоже запишется в файл, хотя и не должно... Лучше все-же латиницу разбить на 2 интервала... |
Айра |
![]()
Сообщение
#13
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
У меня, когда в FPC работаю русские буквы вообще вот так выглядят: ЇаЁўҐв (привет)
![]() Цитата русские буквы не во всех кодировках представляют связное множество.. Лучше все-же латиницу разбить на 2 интервала... Глупый вопрос: как определить, какая у меня кодировка и как в ней располагаются эти буквы? Нехочется дальше сталкиваться с такими проблемами.. to Lapp: первую конструкцию заменила (+ процедура удаления тоже несколько изменилась).. |
compiler |
![]()
Сообщение
#14
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
и как в ней располагаются эти буквы? самый простой способ, ИМХО, распечатать все символы в цикле с изменяющимся кодом...
for i:=0 to 255 do
writeln(i:3, '=', chr(i));
а затем сравнить с таблицами...(особый случай , когда есть проблемы с неизвестностю кодировки терминала...)ну, или посмотреть дукументацию... Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
мисс_граффити |
![]()
Сообщение
#15
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Айра, сделай, например, так:
var i: integer;
begin
for i:=32 to 255 do
begin
if (i-32) mod 10=0 then //чтобы было по 10 символов в строке
writeln;
write(char(i), ' ');
end;
readln;
end.
ну и сами коды (i) выводи.... если именно они нужны, а не только порядок. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Айра |
![]()
Сообщение
#16
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
|
compiler |
![]()
Сообщение
#17
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
to compiler: на википедию? : ссылочку не дашь? ![]() ![]() зы насколько я знаю, кодировка задается не компилятором а средой разработки(IDE) Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
Цитата В двух компиляторах разные таблицы: Естественно... TPW выдает тебе таблицу для Windows-1251, а FPC - для Кодовой страницы 866 |
Айра |
![]()
Сообщение
#19
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Пасибо)) теперь хоть знаю как их звать))
О!! нашла метод борьбы с каракулями: открываю файл в commander'e кнопкой F3 и выбираю ASCII (кодировка DOS) Ура!!! ![]() |
compiler |
![]()
Сообщение
#20
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
но все равно не очень удобно((... ИМХО, проще использовать одну среду и не "морочити собi цим голову ", как сказал Ющенко...![]() Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
![]() ![]() |
![]() |
Текстовая версия | 21.04.2025 13:30 |