Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на тему Текстовые файлы"
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
neZvezda
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные выражение слов в предложение

Вот нашла в инете похожую задачку, но в Паскале не идет. Объясните. Файл
F создаю. Непонятно, что такое ***********

var f:text;
s:string;
i,j,k:integer;
m:set of char;
begin write('***************************************************');
assign(f,'F11.txt');
reset(f);
m:=[' '..'п'];
writeln('Такие слова :');
while not(eof(f)) do
begin readln(f,s);
for i:=1 to length(s) do
begin k:=0;
for j:=1 to length(s) do
if (s[i] in m)and(s[j] in m)and(s[i]=s[j])
then k:=k+1;
if k=1 then write(s[i],' ');
end;
end;
close(f);
end.


volvo
Цитата
Вот нашла в инете похожую задачку, но в Паскале не идет.
И не пойдет. Эта программа делает совсем не то, что записано в условии. Вот она, чуть-чуть подправленная ;)
var f, f_out:text;
s: string;
i: integer;

prev_word, curr_word: string;

const
{ символы русского языка }
letters = ['А' .. 'П', 'Р' .. 'Я', 'а' .. 'п', 'р' .. 'я'];

begin
assign(f, 'F11.txt');
reset(f);

assign(f_out, 'f12.txt');
rewrite(f_out);

prev_word := '';
while not(eof(f)) do begin
readln(f, s);

i := 1;
while i <= length(s) do begin

while not (s[i] in letters) and (i <= length(s)) do begin
if s[i] in ['.', '!'] then prev_word = '';
write(f_out, s[i]); inc(i);

end;

curr_word := '';
while (s[i] in letters) and (i <= length(s)) do begin
curr_word := curr_word + s[i]; inc(i)
end;

if curr_word = prev_word then
else begin
write(f_out, curr_word);
prev_word := curr_word;
end;

end;

end;
close(f_out);
close(f);
end.
AJTopper
А задание не дано понять ????? А????

Сегодня шёл дождь. дождь был сильным

Сечёшь ?
volvo
А вот грубить не надо. Я это тоже умею... Во первых, какого ты влез в чужую тему? Умный больно? Тогда предложи свой вариант! angry.gif

Во вторых, для тех кто на танке, повторяю задание:
Цитата
В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком)
Тебе все понятно? Могу расшифровать:
Цитата
Сегодня шёл дождь. дождь был сильным
Это 2 (два!!!) предложения. Я понятно выражаюсь, или еще что-то неясно?
AJTopper
Цитата(volvo @ 26.10.2005 0:06)
А вот грубить не надо. Я это тоже умею... Во первых, какого ты влез в чужую тему? Умный больно? Тогда предложи свой вариант!  angry.gif

Во вторых, для тех кто на танке, повторяю задание: Тебе все понятно? Могу расшифровать:
Это 2 (два!!!) предложения. Я понятно выражаюсь, или еще что-то неясно?


Да расслабься ты :no:

Закрой глаза на 2 минуты .... вытяни руки ...

Напрягаться очень вредно ;)
neZvezda
может по теме все-таки поговорим?

Спасибо за решение!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.