|
|
zadach303.PAS |
|
{* Задача 303 *}Unit ZADACH303;Interface Implementation Begin writeln('Даны два текстовых файла f1 и f2. Файл f1 содержит произвольный текст. Слова в тексте разделены пробелами и знаками препинания. Файл f2 содержит не более 30 слов, которые разделены запятыми. Эти слова образуют пары: каждое второе является синонимом первого. Заменить в файле f1 те слова, которые можно, их синонимами. Результат поместить в новый файл. '); End. Program zadach303; Uses zadach303.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'); {* Подключение к файлу 'c:f2.txt' через переменную f2 *} reset(f2); {* Открытие файла для чтения *} assign(f3, 'c:f3.txt'); {* Подключение к файлу 'c:f3.txt' через переменную f3 *} 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); {* Файл 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
|