Перевести код с языка C++ на язык Паскаль - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите написать в паскаль данную программу
using namespace std; 
 
struct m { int n; int l; int r; } d[3]; 
 
bool cmp(const m &x, const m &y) { return x.l < y.l; } 
 
int main() { 
    for (int c = 0; c < 3; ++c) { 
        d[c].n = c + 1; 
        cin >> d[c].l >> d[c].r; 
    } 
    sort(d, d + 3, cmp); 
    if (d[0].r >= d[1].l && (d[1].r >= d[2].l || d[0].r >= d[2].r)) { 
        cout << 0; 
    } else { 
        bool p0 = false, p2 = false; 
        if (d[1].r + d[0].r - d[0].l >= d[2].l) p0 = true; 
        if (d[0].r + d[2].r - d[2].l >= d[1].l) p2 = true; 
        if (p0 && p2) cout << min(d[0].n, d[2].n); 
        else if (p0) cout << d[0].n; 
        else if (p2) cout << d[2].n; 
        else cout << -1; 
    } 
}

Решение задачи: «Перевести код с языка C++ на язык Паскаль»

textual
Листинг программы
type m = record n, l, r: Integer; end;
function  cmp(const x, y: m): Boolean;
begin
  cmp:=x.l<y.l;
end;
function  min(x, y: Integer): Integer;
begin
  if x<y then min:=x else min:=y;
end;
procedure swp(var x, y: m);
var t: m;
begin
  t:=x; x:=y; y:=t;
end;
var
  d: array [0..2] of m;
  t: m;
  c: Integer;
  p0, p2: Boolean;
begin
  for c:=Low(d) to High(d) do with d[c] do begin
    n:=c+1; Read(l,r);
  end;
  if cmp(d[1],d[0]) then swp(d[1],d[0]);
  if cmp(d[2],d[1]) then swp(d[2],d[1]);
  if cmp(d[1],d[0]) then swp(d[1],d[0]);
  if (d[0].r>=d[1].l) and ((d[1].r>=d[2].l) or (d[0].r>=d[2].r))
  then WriteLn(0)
  else begin
    p0:=d[1].r+d[0].r-d[0].l>=d[2].l;
    p2:=d[0].r+d[2].r-d[2].l>=d[1].l;
    if p0 and p2 then WriteLn(min(d[0].n,d[2].n))
    else if p0   then WriteLn(d[0].n)
    else if p2   then WriteLn(d[2].n)
    else              WriteLn(-1);
  end;
end.

Объяснение кода листинга программы

  1. Создается запись с тремя полями типа Integer с именем m.
  2. Создается функция cmp с двумя параметрами-константами x и y типа m, возвращающая значение типа Boolean.
  3. В функции cmp происходит сравнение значений поля l в переменных x и y.
  4. Создается функция min с двумя параметрами типа Integer, возвращающая значение типа Integer.
  5. В функции min происходит сравнение значений переменных x и y, возвращается минимальное из них.
  6. Создается процедура swp с двумя параметрами-переменными x и y типа m, а также локальной переменной t типа m.
  7. В процедуре swp происходит обмен значений переменных x и y через временную переменную t.
  8. Объявляются глобальные переменные: массив d из трех элементов типа m, переменная t типа m, переменная c типа Integer, и переменные-флаги p0 и p2 типа Boolean.
  9. В цикле происходит инициализация каждого элемента массива d их индексами и значениями, считываемыми с клавиатуры.
  10. Происходит сравнение и, если требуется, обмен значений элементов массива d с использованием функции cmp и процедуры swp.
  11. Происходит проверка условий и вывод соответствующих результатов на экран в зависимости от значений полей структур массива d и переменных-флагов p0 и p2.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы