Перевести код с языка 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.
Объяснение кода листинга программы
- Создается запись с тремя полями типа Integer с именем
m
. - Создается функция
cmp
с двумя параметрами-константамиx
иy
типаm
, возвращающая значение типа Boolean. - В функции
cmp
происходит сравнение значений поляl
в переменныхx
иy
. - Создается функция
min
с двумя параметрами типаInteger
, возвращающая значение типаInteger
. - В функции
min
происходит сравнение значений переменныхx
иy
, возвращается минимальное из них. - Создается процедура
swp
с двумя параметрами-переменнымиx
иy
типаm
, а также локальной переменнойt
типаm
. - В процедуре
swp
происходит обмен значений переменныхx
иy
через временную переменнуюt
. - Объявляются глобальные переменные: массив
d
из трех элементов типаm
, переменнаяt
типаm
, переменнаяc
типаInteger
, и переменные-флагиp0
иp2
типаBoolean
. - В цикле происходит инициализация каждого элемента массива
d
их индексами и значениями, считываемыми с клавиатуры. - Происходит сравнение и, если требуется, обмен значений элементов массива
d
с использованием функцииcmp
и процедурыswp
. - Происходит проверка условий и вывод соответствующих результатов на экран в зависимости от значений полей структур массива
d
и переменных-флаговp0
иp2
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д