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

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

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

Помогите написать в паскаль данную программу
Листинг программы
  1. using namespace std;
  2. struct m { int n; int l; int r; } d[3];
  3. bool cmp(const m &x, const m &y) { return x.l < y.l; }
  4. int main() {
  5. for (int c = 0; c < 3; ++c) {
  6. d[c].n = c + 1;
  7. cin >> d[c].l >> d[c].r;
  8. }
  9. sort(d, d + 3, cmp);
  10. if (d[0].r >= d[1].l && (d[1].r >= d[2].l || d[0].r >= d[2].r)) {
  11. cout << 0;
  12. } else {
  13. bool p0 = false, p2 = false;
  14. if (d[1].r + d[0].r - d[0].l >= d[2].l) p0 = true;
  15. if (d[0].r + d[2].r - d[2].l >= d[1].l) p2 = true;
  16. if (p0 && p2) cout << min(d[0].n, d[2].n);
  17. else if (p0) cout << d[0].n;
  18. else if (p2) cout << d[2].n;
  19. else cout << -1;
  20. }
  21. }

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

textual
Листинг программы
  1. type m = record n, l, r: Integer; end;
  2. function  cmp(const x, y: m): Boolean;
  3. begin
  4.   cmp:=x.l<y.l;
  5. end;
  6. function  min(x, y: Integer): Integer;
  7. begin
  8.   if x<y then min:=x else min:=y;
  9. end;
  10. procedure swp(var x, y: m);
  11. var t: m;
  12. begin
  13.   t:=x; x:=y; y:=t;
  14. end;
  15. var
  16.   d: array [0..2] of m;
  17.   t: m;
  18.   c: Integer;
  19.   p0, p2: Boolean;
  20. begin
  21.   for c:=Low(d) to High(d) do with d[c] do begin
  22.     n:=c+1; Read(l,r);
  23.   end;
  24.   if cmp(d[1],d[0]) then swp(d[1],d[0]);
  25.   if cmp(d[2],d[1]) then swp(d[2],d[1]);
  26.   if cmp(d[1],d[0]) then swp(d[1],d[0]);
  27.   if (d[0].r>=d[1].l) and ((d[1].r>=d[2].l) or (d[0].r>=d[2].r))
  28.   then WriteLn(0)
  29.   else begin
  30.     p0:=d[1].r+d[0].r-d[0].l>=d[2].l;
  31.     p2:=d[0].r+d[2].r-d[2].l>=d[1].l;
  32.     if p0 and p2 then WriteLn(min(d[0].n,d[2].n))
  33.     else if p0   then WriteLn(d[0].n)
  34.     else if p2   then WriteLn(d[2].n)
  35.     else              WriteLn(-1);
  36.   end;
  37. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы