Вид отношений, предполагающий связь между объектами. Например, Вы - часть класса, Солнце - звезда, входящая в нашу солнечную систему, вода - одна из жидкостей.
КомпозицияВид отношений, предполагающий наличие одного объекта у другого. Например, сердце - часть Вашего организма, колесо - часть велосипеда, Ваш вопрос - часть этого сервиса. При этом производный объект (тот, который является часть другого) зависит от базового, то есть, если базовый уничтожится, то уничтожится и производный. Действительно, сердце без всего Вашего организма не выполняет никаких функций, на колесе Вы не уедете и на вопрос Вам никто не ответит.
АгрегацияЭто почти тот же самый вид отношений, что и композиция, но в данном случае производный объект не зависит от жизни базового объекта. То есть, Ваше сердце сможет откачивать что-то, на колесе Вы всё же худо-бедно поедете, а на Ваш вопрос, возможно, кто-то и ответит.
В программе присутствует функция, предназначенная для поиска полусуммы и полуразности двух чисел.
Приведённый в задании код выполняет функцию три раза, изменяя параметры входящие и выходящие.
Стоит заметить, что при вызове функции, аргументы a и b копируются в функции в переменные a и b, а a1 и b1 - это переменные, предназначенные для возврата значений p и q соответственно.
Первое выполнение функцииa (x) = 2, b (y) = -4
p (a1) = (x + y) / 2 = (2 + (-4)) / 2 = -2 / 2 = -1
q (b1) = (x - y) / 2 = (2 - (-4)) / 2 = 6 / 2 = 3
Выводa = 2, b = -4, a1 = -1, b1 = 3
Второе выполнение функции(изменили возвращаемые переменные)a (x) = 2, b (y) = -4
p (b1) = (x + y) / 2 = (2 + (-4)) / 2 = -2 / 2 = -1
q (a1) = (x - y) / 2 = (2 - (-4)) / 2 = 6 / 2 = 3
Выводa = 2, b = -4, a1 = 3, b1 = -1
Третье выполнение функции(изменили входные данные)a (x) = -4, b (y) = 2
p (a1) = (x + y) / 2 = (-4 + 2) / 2 = -2 / 2 = -1
q (b1) = (x - y) / 2 = (-4 - 2) / 2 = -6 / 2 = -3
Выводa = 2, b = -4, a1 = -1, b1 = -3