IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Русские и английские слова, помогите решить задачу
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


В общем смысл задачи такой. Имеется текст из русских, английских букв, чисел, знаков препинания и пробелов. Русские слова это любые последовательности только из русских букв,английские аналогично. Все русские слова необходимо переместить в один текстовый файл, английские в другой. Числа, знаки препинания и пробелы переносить не надо.

Вот пример как должна работать прога:

Текст 1.
Стекло в 1345 year ьвап' мебель rhtr 53463'' ' hjnроим4пhff4hg65

Текст 2(русский)
Стекловьвапмебель

Текст 2(English)
yearrhtr

Если кому не влом, помогите плиз!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Разбиваешь строку на слова и проверяешь, состоит ли слово только из символов кириллицы (тогда его в один файл), или только из латиницы (значит, в другой файл)... Если есть что-то еще - то не записывать никуда...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


не совсем понятно:
ьвап' состоит не только из русских букв, однако мы ту часть, которая есть русские буквы, переносим
а из
hjnроим4пhff4hg65
мы проимп не выделяем.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Действительно.
Даже если ввести уточнение: не "русские буквы", а "символы, используемые в русском языке", все равно в ответе фгурировать должно "Стекловьвап'мебель", а не "Стекловьвапмебель".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






А если ввести уточнение, что слова разделяются НЕ только пробелами, а еще и другими разделителями (причем разделителей может быть больше одного)? Кто сказал, что ' не может быть разделителем?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Вопрос в другом - кто сказал, что может?
По условию вообще нет такого понятия как разделитель. Следовательно, словом следует считать ЛЮБУЮ последовательность русских букв, встреченных в тексте. В том числе и из одного символа.
Откуда следует уточненный алгоритм: все русские буквы помещаем в один файл, английские - в другой, а все остальное - игнорируем.
Кто вообще придумал выделять из текста слова? Если в выходные файлы их предполагается помещать без разделителей, то это совершенно излишне.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Кто вообще придумал выделять из текста слова?
Собственно, я придумал. А что, у тебя с этим какие-то проблемы? Ты здесь вообще каким боком решаешь, что автору подойдет, а что - нет? Или ты - его личный адвокат и представитель?

Твои ОБЩИЕ слова в КАЖДОЙ теме порядком поднадоели, знаешь? Я тоже могу ВЕЗДЕ писать "Что сделал сам?" и говорить, что то что предлагают другие - НЕ НУЖНО, не предлагая ничего взамен... И придираться к словам я тоже умею, теперь у тебя будет шанс в этом убедиться dry.gif


P.S.
Цитата
Откуда следует уточненный алгоритм: все русские буквы помещаем в один файл, английские - в другой, а все остальное - игнорируем.
Угу... Как же...

Цитата(Автор)
Текст 1.
Стекло в 1345 year ьвап' мебель rhtr 53463'' ' hjnроим4пhff4hg65

Текст 2(русский)
Стекловьвапмебель
ВСЕ русские буквы присутствуют в Текст 2, правда... Ах, ну да... andriano же так удобнее, естественно надо сделать, как ОН сказал, а не как просит автор...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(volvo @ 29.12.2007 22:24) *

Собственно, я придумал. А что, у тебя с этим какие-то проблемы? Ты здесь вообще каким боком решаешь, что автору подойдет, а что - нет? Или ты - его личный адвокат и представитель?
Я не решаю. Я просто умею читать и делюсь своими впечатлениями от прочитанного.
Цитата

Твои ОБЩИЕ слова в КАЖДОЙ теме порядком поднадоели, знаешь? Я тоже могу ВЕЗДЕ писать "Что сделал сам?" и говорить, что то что предлагают другие - НЕ НУЖНО, не предлагая ничего взамен... И придираться к словам я тоже умею, теперь у тебя будет шанс в этом убедиться dry.gif
"Общие слова", говоришь? "Ничего не предлагая?
Цитата

P.S.
Угу... Как же...
Вот этот твой комментарий относится КАК РАЗ к одному из моих КОНКРЕТНЫХ предложений.
Нехорошо в одном и том же сообщении противоречить самому себе.
Цитата

ВСЕ русские буквы присутствуют в Текст 2, правда... Ах, ну да... andriano же так удобнее, естественно надо сделать, как ОН сказал, а не как просит автор...
Да, примеры ПРОТИВОРЕЧАТ опубликованному условию. Что дальше? Будем выяснять отношения между собой или будем выяснять, что автору темы нужно на самом деле?

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Да, извините, ьвап' не переносится никуда. А разделитель есть - пробел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Можно сделать так:
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.



Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Айра @ 3.01.2008 23:41) *

Можно сделать так:
Можно и так, только я бы конструкцию:
      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);

- хотя последнее спорно..
Но я бы делал проверку иначе, думаю.. smile.gif

И еще замечание: русские буквы не во всех кодировках представляют связное множество..

Сообщение отредактировано: Lapp -


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
русские буквы не во всех кодировках представляют связное множество
С латинскими, заданными в такой форме, тоже возможны баги, кстати (между прописными и строчными буквами есть еще "посторонние" 6 символов):
s := 'start finish begin` 98989898 end';
и begin` тоже запишется в файл, хотя и не должно... Лучше все-же латиницу разбить на 2 интервала...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


У меня, когда в FPC работаю русские буквы вообще вот так выглядят: ЇаЁўҐв (привет) sad.gif

Цитата
русские буквы не во всех кодировках представляют связное множество..
Лучше все-же латиницу разбить на 2 интервала...

Глупый вопрос: как определить, какая у меня кодировка и как в ней располагаются эти буквы? Нехочется дальше сталкиваться с такими проблемами..

to Lapp: первую конструкцию заменила (+ процедура удаления тоже несколько изменилась)..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Айра @ 4.01.2008 16:37) *
и как в ней располагаются эти буквы?
самый простой способ, ИМХО, распечатать все символы в цикле с изменяющимся кодом...
        for i:=0 to 255 do
writeln(i:3, '=', chr(i));
а затем сравнить с таблицами...(особый случай , когда есть проблемы с неизвестностю кодировки терминала...)
ну, или посмотреть дукументацию...

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Айра, сделай, например, так:
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) выводи.... если именно они нужны, а не только порядок.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Гы)) В двух компиляторах разные таблицы:
Прикрепленное изображение
Предположение: может как раз таки из-за того, что у АЗС (прикольно)) у FPC и Windows разные таблицы мне первый всегда какие-то каракули в файлы записывает?

to compiler:
Цитата
а затем сравнить с таблицами
: ссылочку не дашь? smile.gif

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Айра @ 4.01.2008 20:22) *
to compiler:
: ссылочку не дашь? smile.gif
на википедию? smile.gif у меня в локалке отучают ходить на википедию через инет(=>ссылку на конкретную страницу дать тяжко). зайди на нее и введи в поиске win 1251, а затем CP866 и сравни со своими таблицами...

зы
насколько я знаю, кодировка задается не компилятором а средой разработки(IDE)

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Гость






Цитата
В двух компиляторах разные таблицы:
Естественно... TPW выдает тебе таблицу для Windows-1251, а FPC - для Кодовой страницы 866
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Пасибо)) теперь хоть знаю как их звать))

О!! нашла метод борьбы с каракулями: открываю файл в commander'e кнопкой F3 и выбираю ASCII (кодировка DOS) Ура!!! yahoo!.gif но все равно не очень удобно((...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(Айра @ 4.01.2008 21:03) *
но все равно не очень удобно((...
ИМХО, проще использовать одну среду и не "морочити собi цим голову ", как сказал Ющенко...smile.gif

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 13:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name