|
|
bgg46.PAS |
|
{* Задача 46 *}Unit BGG46;Interface Implementation Begin writeln('Файл input.dat содержит несколько строк текста. Слова в текс- те могут разделяться пробелами и знаками препинания. Переписать текст в файл output.dat, удалив из текста слова, содержащие две подряд идущие гласные или две подряд идущие согласные буквы.'); End. Program bgg46; Uses bgg46.pas; {* Эту строку можно удалить *} Var {* Объявление переменных *} ff : text; tt : text; i : integer; j : integer; a : String; s : String; sog : Set Of 'a'..'z'; gla : Set Of 'a'..'z'; k : boolean; Procedure dva(y : String); Begin If ((y[1] In sog)And(y[2] In sog))Or((y[1] In gla)And(y[2] In gla)) Then k := false; End; Begin sog := ['a', 'e', 'i', 'o', 'u', 'y']; gla := ['q', 'w', 'r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm']; assign(ff, 'c:/input.dat'); {* Привязка переменной ff к файлу 'c:/input.dat' *} reset(ff); {* Подготовка переменной ff для чтения из файла *} assign(tt, 'c:/output.dat'); {* Связывание tt с файлом 'c:/output.dat' *} rewrite(tt); {* Открытие файла для записи *} k := true; While Not eof(ff) Do {* Если в файле ещё есть данные, то продолжаем *} Begin readln(ff, a); a := a + ' '; For i := 1 To length(a) Do {* Переменная i увеличивается с 1 до length(a) *} If a[i]' ' Then s := s + a[i] Else Begin For j := 1 To length(s) - 1 Do {* Увеличиваем j от 1 до length(s) с шагом 1 *} dva(copy(s, j, 2)); If k Then write(tt, s + ' '); s := ''; k := true; End; writeln(tt); End; close(ff); {* Закрытие файла *} close(tt); {* Закрытие файла *} 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
|