Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная

Задача Pascal №3945

Оцените материал
(1 Голосовать)

Задача 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.
Прочитано 7625 раз

Авторизация



Счетчики