Задача Pascal №3945
Дана последовательность слов. В каждом из них от 3 до 10 латинских букв; между словами - один пробел; за последним словом - точка. Вывести в текстовый файл все слова, преобразовав их по правилу: если слово нечетной длины, то заменить среднюю букву на цифру.
var
st, tmp : string;
i : integer;
f : text; a : byte; begin
st := 'ноль один два три четыре пять шесть семь восемь девять.'; writeln('Дана последовательность слов:'); writeln(st);
{ создать файл }
assign(f, 'test.txt');
rewrite(f); { цикл - пока длина строки больше нуля, то обработка строки }
while length(st) > 0 do begin { ищем позицию пробела или точки - это означает конец слова }
a := pos(' ',st); if a = 0 then a := pos('.',st);
{ записываем найденное слово в переменную tmp } tmp := copy(st, 1, a-1); { из последовательности слов st, удаляем найденное слово } delete(st, 1, a); { обработка самого слова - если длина не четная, то заменяем букву }
if (length(tmp) mod 2) <> 0 then begin { находим позицию середины слова }
a := (length(tmp) div 2) + 1; { удаляем из слова одну среднюю букву }
delete(tmp, a, 1); { на ее место вставляем любое число }
insert('5',tmp,a); end;
{ записываем слово в файл }
writeln(f,tmp); end; close(f); writeln('Последовательность слов обработана и записана в файл!'); readln; end.
|