Pascal ABC.net - модулиДаны два массива натуральных чисел. В одном из

Pascal ABC.net - модули
Даны два массива естественных чисел. В одном из их числа записаны в десятичной системе счисления, в приятелем в римской. Выписать числа, которые встречаются и в том, и в приятелем массиве, либо сообщить об их неимении. В случае положительного ответа итог представить в римской и десятичной системах счисления.

Решить с внедрением модулей спомощью подпрограмм (или несколько подпрограмм), а позже обратиться из собственной программки к этому модулю

Помогите, завтра заключительный денек !)

Задать свой вопрос
1 ответ
Решение в 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+(ngt;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)gt;-1 then yield((q,n))
  end
end;

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 = 518
MII = 1002
XIV = 14
CXCVI = 196

Женя Сердин
thank you!!
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт