Задача 5 Урок 16
Primary tabs
Пользователь вводит N (N Напишите подпрограмму, которая определит - есть ли у них общее пересечение, и если есть - вычислит координаты отрезка-пересечения.
program u16z5; type ar = array[1..5, 1..2] of integer;//увеличил массив из 4 задачи br = array[1..2] of integer; var a: ar; b: br; q: boolean; i: integer; procedure f1(c, d :integer; var b :br; var q :boolean); //поиск пересечения begin if (c <= b[1]) and (d <= b[2]) or (c <= b[2]) and (d >= b[1]) then q := true else q := false; if q then begin if c > b[1] then b[1] := c; if d < b[2] then b[2] := d; end; end; procedure r1(a :ar; var b :br; var q :boolean); //запись результата var i, c, d :integer; begin b[1] := a[1, 1]; b[2] := a[1, 2]; for i := 2 to high(a) do begin c := a[i, 1]; d := a[i, 2]; f1(c, d, b, q); if not q then break; end; end; procedure r2(b :br; q :boolean); //процедура вывода begin if not q then writeln('He peresek') else writeln('Peresek : ', b[1], ' ', b[2]); end; begin q := false; for i := 1 to high(a) do begin writeln('Vvedite tochky 1 otrezka ',i); readln(a[i, 1]); writeln('Vvedite tochky 2 otrezka ',i); readln(a[i, 2]); end; writeln(); writeln('Otrezku'); for i := 1 to high(a) do begin writeln(a[i, 1], ' ', a[i, 2]); end; r1(a, b, q); r2(b, q); readln(); end.
- Log in to post comments
- 756 reads
vedro-compota
Sun, 01/29/2023 - 13:26
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)