Дан файл с текстом, где каждое предложение занимает строку файла. Переставить слова в обратном порядке в каждом предложении, создав новый файл

code: #pascal
program fh;
var f,g:text;
    i,p,n:integer;
    m:array [1..100] of string;
    s:string;
 
begin
assign(f,'in.txt'); reset(f);
assign(g,'out.txt'); rewrite(g);
 
while not eof(f) do begin    {считываем ВЕСЬ файл}
readln(f,s);    {считываем очередную строку}
i:=0;  {ставим счётчик слов на 0}
 
repeat     {*********предложение разбиваем на слова и записываем в массив}
inc(i); {увеличиваем счётчик текущего ПРЕДЛОЖЕНИЯ}
p:=pos(' ',s);  {смотрим где находится пробел}
m[i]:=copy(s,1,p-1);  {записываем текущее слово в массив}
delete(s,1,p); {то слово, которое заприсали в массив - удаляем}
until p=0; {****************}
 
n:=i+1;   {конец массива}
if s[length(s)]='.' then  {если строчка заканчивается точкой}
begin m[n]:=copy(s,1,length(s)-1); m[1]:=m[1]+'.' {то эту точку перемещаем на 1 слово}
end else m[n]:=s;  {а если нет точки - то просто его записываем в массив}
 
writeln(g);;
for i:=n downto 1 do write(g,m[i],' '); {идём с конца массива в начало и записываем слова в обратном порядке}
end;
writeln('PEREZAPISANO...');
readln;
close(f);  close(g);
end.      
Поделиться:

Похожие статьи: