|
|
zadach313.PAS |
|
{* Задача 313 *}Unit ZADACH313;Interface Implementation Begin writeln('Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2 содержит не более 30 слов, которые разделены запятыми. Эти слова образуют пары: каждое второе является синонимом первого. Заменить в файле f1 те слова, которые можно, их синонимами. Результат поместить в новый файл.'); End. Program zadach313; Uses zadach313.pas; {* Эту строку можно удалить *} Uses crt; {* Подключение модулей *} Const {* Предопределенные *} pr = [' ', '.', ', ', '?', '!', ':', '(', ')',#9,#10,#13]; Var {* Объявление переменных *} s : char; f1 : text; f2 : text; f3 : text; slovo : String; sin1 : Array [1..15] Of String; sin2 : Array [1..15] Of String; i : integer; k : integer; Begin clrscr; {* Очистка экрана *} assign(f1, 'c:f1.txt'); {* Подключение к файлу 'c:f1.txt' через переменную f1 *} reset(f1); {* Открытие файла для чтения *} assign(f2, 'c:f2.txt'); {* Привязка переменной f2 к файлу 'c:f2.txt' *} reset(f2); {* Чтение из файла через переменную f2 *} assign(f3, 'c:f3.txt'); {* Связывание f3 с файлом 'c:f3.txt' *} rewrite(f3); {* Открытие файла для записи *} i := 1; While Not(EOF(f2)) Do Begin read(f2, s); If ord(s) In [128..143] Then s := chr(ord(s) + 32); If ord(s) In [144..159] Then s := chr(ord(s) + 80); If Not(s In pr) And Not EOF(f2) Then slovo := slovo + s Else Begin If slovo'' Then Begin If (i Mod 2) 0 Then sin1[round(i / 2 + 0.5)] := slovo Else sin2[round(i / 2)] := slovo; i := i + 1; slovo := ''; End; End; End; While Not(EOF(f1)) Do Begin read(f1, s); If ord(s) In [128..143] Then s := chr(ord(s) + 32); If ord(s) In [144..159] Then s := chr(ord(s) + 80); If Not(s In pr) And Not EOF(f1) Then slovo := slovo + s Else Begin For i := 1 To 15 Do {* Переменная i увеличивается с 1 до 15 *} Begin If slovo = sin1[i] Then Begin slovo := sin2[i]; k := 1; End; Else k := 0; If (slovo = sin2[i]) And (k = 0) Then slovo := sin1[i]; End; write(f3, slovo, s); slovo := ''; End; End; close(f1); {* Закрытие файла *} close(f2); {* Файл f2 будет закрыт *} close(f3); {* Закрыть файл f3 *} 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
|