задача 2 урок 16
Primary tabs
Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:
первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Решение
program lesson16;
type
arrTwo = array[1..2, 1..2] of integer;
function find(a: arrTwo) : boolean;
begin
if ((a[1][1] <= a[2][1]) and (a[2][2] <= a[1][2])) or ((a[2][1] <= a[1][1]) and (a[1][2] <= a[2][2])) then
result := true
else
result := false;
end;
var
a: arrTwo;
i, j, n: integer;
flag : boolean;
begin
for i := low(a) to high(a) do
begin
writeln('perviy otrezok ', i);
for j := low(a[i]) to high(a[i]) do
begin
readln(n);
a[i][j] := n;
end;
end;
flag := find(a);
if flag then
write('odin orezok vnutri drugogo')
else
write('otrezki ne vlogeni drug v gruga');
readln
end.Консоль №1
perviy otrezok 1 14 20 perviy otrezok 2 1 5 otrezki ne vlogeni drug v gruga
Консоль №2
perviy otrezok 1 1 10 perviy otrezok 2 -6 100 odin orezok vnutri drugogo
- Log in to post comments
- 2666 reads
vedro-compota
Sun, 10/31/2021 - 12:37
Permalink
function find(a: arrTwo) :
-- лучше переделать на сигнатуру на прием 4 целых чисел
_____________
матфак вгу и остальная классика =)
Gurgen
Sun, 10/31/2021 - 23:26
Permalink
переделал ф-цию
переделал ф-цию
program lesson16; type arrTwo = array[1..2, 1..2] of integer; function find(x1, y1, x2, y2: integer) : boolean; begin if ((x1 <= x2) and (x2 <= y1)) or ((x2 <= x1) and (x1 <= y2)) then result := true else result := false; end; var a: arrTwo; i, j, n: integer; flag : boolean; begin for i := low(a) to high(a) do begin writeln('perviy otrezok ', i); for j := low(a[i]) to high(a[i]) do begin readln(n); a[i][j] := n; end; end; flag := find(a[1][1], a[1][2], a[2][1], a[2][2]); if flag then write('peresekautsy') else write('NE peresekautsya'); readln end.vedro-compota
Wed, 11/03/2021 - 18:53
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)