Решение в PascalABC.NET 3.4*** этот файл мы должны назвать nekkit20.pas ****** после его компиляции будет создан модуль ***unit nekkit20;type tra=(string,integer);function RomeToArab(s:string):integer;// Перевод римских чисел (не больших MMMCMXCIX) в арабскиеbegin var ar:='IVXLCDM'; var aa:=Arr(1,5,10,50,100,500,1000); var n:=0; Result:=0; foreach var c in s do begin var c1:=n; n:=aa[Pos(c,ar)-1]; Result+=n+(n>c1?-2*c1:0) end;end;function Equal(r:array of string; a:array of integer):sequence of tra;// Возвращает последовательность кортежей// из массива римских чисел (массив r),// для которых есть соответствие в массиве арабских чисел (массив a) begin foreach var q in r do begin var n:=RomeToArab(q); if a.IndexOf(n)>-1 then yield((q,n)) endend;end.*** а это другой файл с любым именем, кроме nekkit20 ****** он обращается к молулю nekkit20 ***uses nekkit20;begin var sr:=Arr('DXVIII','LXIII','MII','XIV','LXXXVIII','CXCVI'); var ar:=Arr(14,98,196,1002,518,64,87); var R:=Equal(sr,ar); if R.Count=-1 then Writeln('Нет совпадений') else foreach var t in R do Writeln(t[0],' = ',t[1])end.*** Контрольный пример ***DXVIII = 518MII = 1002XIV = 14CXCVI = 196