Proc3. Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X + Y)/2 и среднее геометрическое GMean = \sqrt{X * Y} двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа). С помощью этой процедуры найти среднее арифметическое и среднее геометричеQское для пар (A, B), (A, C), (A, D), если даны A, B, C, D.
Решение:
В питоне нет как такового понятия процедуры. Есть функции которые могут возвращать None. Также изменять значение переменных, которые передаются функции в виде параметров, идеологически не верно. Я вижу два обходных решения передавать массивы и использовать Глобальные переменные. Это всё плохо!
Переделываем процедуруMean(X, Y, AMean, GMean) в функции AMean(X, Y) и GMean(X, Y).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import math def AMean(X,Y): return (X + Y)/2 def GMean(X, Y): return math.sqrt(X*Y) print('A: ') A = float(input()) print('B: ') B = float(input()) print('C: ') C = float(input()) print('D: ') D = float(input()) print(AMean(A,B),' ',GMean(A,B)) print(AMean(A,C),' ',GMean(A,C)) print(AMean(A,D),' ',GMean(A,D)) |
Решаем с помощью передачи массивов, как параметров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import math def Mean(X,Y,AMean,GMean): AMean[0] = (X + Y)/2 GMean[0] = math.sqrt(X*Y) print('A: ') A = float(input()) print('B: ') B = float(input()) print('C: ') C = float(input()) print('D: ') D = float(input()) AMean,GMean =[0],[0] Mean(A,B,AMean,GMean) print(AMean[0],' ',GMean[0]) Mean(A,C,AMean,GMean) print(AMean[0],' ',GMean[0]) Mean(A,D,AMean,GMean) print(AMean[0],' ',GMean[0]) |
Другие задачи из раздела Proc можно посмотреть здесь.
Комментарии: