|
|
strings27.PAS |
|
{* Задача 27 *}Unit STRINGS27;Interface Implementation Begin writeln('Задан текст, состоящий из строк произвольной длины. Строки разделяются одним или несколькими символами, называемыми разделителями. Разделители одинаковы для всего текста. Текст заканчивается комбинацией двух специальных символов, отличных от разделителя. Выполнить над текстом последовательность действий, указанную в задании. а) Определить порядковые номера, считая от начала текста, определенных слогов, которые задаются в исходных данных; б) сформировать новый текст, в котором каждый такой слог заключен в кавычки. '); End. Program strings27; Uses strings27.pas; {* Эту строку можно удалить *} Uses crt; {* Вызов внешних функций *} Const {* Постоянные значения *} n = 120; {Максимальное количество строк, читаемое из файла} Var {* В работе нам потребуются переменные: *} fin : Text; fout : Text; {Входной и выходной файлы} s : Array [1..n] Of String; {Текст - массив строк} substr : String; {Искомый слог - подстрока} i : integer; k : integer; p : integer; counter : integer; start : integer; cumulative_len : integer; Begin clrscr; {* Очищаем экран *} assign(fin, 'input.txt'); {Открываем входной файл} reset(fin); {* Подготовка переменной fin для чтения из файла *} assign(fout, 'output.txt'); {Открываем выходной файл} rewrite(fout); {* Открытие файла для записи *} k := 0; {Количество строк во входном файле} While (Not eof(fin) And (k 0 Then Begin insert('"', s[i], start + p + length(substr)); insert('"', s[i], start + p); writeln(cumulative_len, ' ', start, ' ', p, ' ', counter); writeln('=>', cumulative_len + start + p - 2 * counter, ' '); inc(start, p + length(substr) + 2); {* Увеличиваем start, p + length(substr) + 2 на 1 *} inc(counter); {* Прибавим к counter единицу *} End; Until p = 0; inc(cumulative_len, length(s[i]) - 2 * counter); {* Увеличиваем cumulative_len, length(s[i]) - 2 * counter на 1 *} writeln(fout, s[i]); End; End; Repeat Until keypressed; {* Цикл, пока не нажата клавиша *} close(fin); {закрываем файлы} close(fout); {* Закрыть файл fout *} End..... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|