задача 3 урок 16
Primary tabs
Вспомогательная задача (можно решить, просто используя одномерные массивы):
Пользователь вводит 4 целых числа, считаем все их координатами на прямой, а именно:
первые два числа - начало и конце отрезка 1
вторые два - начало и конец отрезка 2
Задача: напишите подпрограмму, которая определит какой отрезок является пересечением этих двух заданных отрезков (если это пересечение вообще есть).
Решение
program task3_lesson16; type arrTwo = array[1..2, 1..2] of integer; procedure per(a: arrTwo); begin if ((a[1][2] <= a[2][1]) or (a[2][2] <= a[1][1])) then write('pereseceniya net') else if ((a[1][2] > a[2][1]) and (a[1][2] <= a[2][2]) and (a[1][1] <= a[2][1])) then write(a[2][1], ' ', a[1][2]) else if ((a[2][2] > a[1][1]) and (a[2][2] <= a[1][2]) and (a[1][1] >= a[2][1])) then write(a[1][1], ' ', a[2][2]) else if ((a[1][1] >= a[2][1]) and (a[1][2] <= a[2][2])) then write(a[1][1], ' ', a[1][2]) else if ((a[1][1] <= a[2][1]) and (a[2][2] <= a[1][2])) then write(a[2][1], ' ',a[2][2]); end; var a: arrTwo; i, j, n: integer; begin for i := 1 to 2 do begin writeln('vvedite koordinati'); for j := 1 to 2 do begin readln(n); a[i][j] := n; end; end; per(a); readln end.
Консоль
vvedite koordinati 5 10 vvedite koordinati -5 7 5 7
- Log in to post comments
- 2232 reads
vedro-compota
Sun, 10/31/2021 - 12:40
Permalink
if () then
_____________
матфак вгу и остальная классика =)
vedro-compota
Sun, 10/31/2021 - 12:41
Permalink
per(a: arrTwo);
-- переделать на 4 аргумента целого типа
_____________
матфак вгу и остальная классика =)
Gurgen
Mon, 11/01/2021 - 00:13
Permalink
Заменил процедуру на Функцию
Заменил процедуру на Функцию которая получает 4 аргумента и возвращает координаты отрезка
пересечения
Gurgen
Mon, 11/01/2021 - 00:17
Permalink
Можно ли result := 2 элемента
Можно ли result := 2 элемента массива сразу!, что-то вроде result := [1,2]; Возможно? и если да, то как это писать?
vedro-compota
Wed, 11/03/2021 - 18:58
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)