Пожалуйста, напишите программу на паскале, даю 50 баллов Во входном файле записан русский текст. Найти в тексте слова длиной не менее шести букв, содержащие более половины букв следующего слова, записать их заглавными буквами и...

Пожалуйста, напишите программу на паскале, даю 50 баллов Во входном файле записан русский текст. Найти в тексте слова длиной не менее шести букв, содержащие более половины букв следующего слова, записать их заглавными буквами и указать после каждого такого слова в скобках найденные буквы. Полученный текст записать в выходной файл. Весь текст, кроме найденных слов, должен остаться неизменным, включая и знаки препинания.
Гость
Ответ(ы) на вопрос:
Гость
Попробуй Program PascalGuru; var s:string;    f,t:text; function preobr(s:string):string;var i,j,p,n,sered:integer;    gl,zp,slovo:string;    m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи';  p:=pos(' ',s); i:=0;        repeat        inc(i);        slovo:=copy(s,1,p-1);        m[i]:=slovo;        delete(s,1,p);        p:=pos(' ',s);        until p=0;        n:=i+1;        m[n]:=s;    for i:=1 to n do     begin    s:=m[i];       if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s);     sered:=(p div 2)+1;    if (not odd(p)) or (p<3) then continue;     if pos(s[1],gl)=0       then continue;     if pos(s[sered],gl)=0   then continue;     if pos(s[p],gl)=0       then continue;      s[1]:=UpCase(s[1]);    s[sered]:=UpCase(s[sered]);    s[p]:=UpCase(s[p]);     m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')';     end;         s:='';     for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end;  beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do      begin      readln(f,s);      writeln(t, preobr(s) );      end;  writeln('Файл успешно записан...'); close(f);close(t);readln;end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы