Readkey; {Затримка зображення на екрані}

End.

ЗАДАЧА № 381

Умова: У даному тексті замінити всі символи «:» на символи «-» і навпаки.

Розв‘язання. Для виконання заміни в тексті одного символу іншим слід знайдений символ (або групу символів) спочатку вилучити процедурою insert, а потім з тієї ж самої позиції вставити бажаний символ (або групу символів). Зверніть увагу на те, що команди розгалуження повинні бути обов’язково вкладеними, тому що якщо ми знайдемо символ «:»і виконаємо заміну, то на його місці з’явиться символ «-», який теж підлягає заміні (для символу «-» міркування будуть такими самими).

У результаті текст після закінчення роботи програми відтвориться у початковому вигляді. Програма має вигляд:

Program Example_381;

Uses crt;

Var і:word; {і - змінна циклу} St:string; {St - даний текст}

Begin

Clrscr;

Write(‘Введіть текст: ‘);

Readln(St);

For i:=1 to length(St) do

If St[i] = ‘:’ Then

Begin Delete (St, i, 1) ; Insert (‘-’St,1) ; End

Else

If St[i]=’-’ Then

begin Delete(St,i,1); Insert(‘:’,St,1); end;

Writeln(‘Результуючий рядок: ‘,St);

Readkey;

End.

ЗАДАЧА №382

Умова: У даному тексті замінити всі символи «.» на послідовність символів «...». Якщо у тексті зустрічаються підряд три крапки, то залишати їх без змін.

Розв’язання: В цій задачі після виконання замін збільшується довжина рядка, причому після шуканого символу становиться такий самий. Тому, якщо цикл організувати, як і в попередньому випадку, весь текст, починаючи з першої крапки, замшиться на крапки (подумайте чому). Тому в цій задачі доцільно скористатися циклом з передумовою, що дозволяє змінну циклу змінювати на будь-який крок (а не тільки на одиницю, як в циклі з параметром). Для того, щоб не виконувати заміну у випадку наявності трьох крапок в тексті, будемо перевіряти не тільки поточну, а й наступну за нею позицію (не забудьте при цьому про можливість виходу за межі рядка!!!). Останній символ рядка тут перевірятиметься окремо.

Зверніть увагу, що у випадку, коли довжина результуючого рядка буде складати більш ніж 255 символів, зайві символи будуть втрачатися. Для спрощення задачі ми їх не враховуємо, але для сильних учнів можна запропонувати організувати збереження цих символів у додатковому рядочку. Програма, що реалізує описаний алгоритм, має вигляд:

Program Example_382 ;

Uses crt;

Var i:word; {i - змінна циклу} St: string; {St — даний текст}

Begin

Clrscr;

Write(‘Введіть текст: ‘);

Readln(St); i:=1;

While i<length(St) do

Begin

If (St[i]=’.’) and (St[i+1]<>’.’) Then

begin Insert(*..’,St,i+l); i:=i+2; end;

i:=i+1;

End;

If St[length(St)]=’.’ Then St:=St+’..’;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату