Что даст на выходе данная программа? (главный вопрос) можно еще и краткое объяснение этой программы(желательно) program v1z2 var a,b,a1,b1: real; procedure sd(x,y: real; var p,q: real); begin p: =(x+y)/2; q: =(x-y)/2; end; begin a: =2; b: =-4; sd(a,b,a1,b1); writeln('a=',a,'b=',b,'a1=',a1,'b1=',b1); sd(a,b,b1,a1); writeln('a=',a,'b=',b,'a1=',a1,'b1=',b1); sd(b,a,a1,b1); writeln('a=',a,'b=',b,'a1=',a1,'b1=',b1); end.
В программе присутствует функция, предназначенная для поиска полусуммы и полуразности двух чисел.
Приведённый в задании код выполняет функцию три раза, изменяя параметры входящие и выходящие.
Стоит заметить, что при вызове функции, аргументы 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